CN106797388B - Cross-system multimedia data encoding and decoding method and device, electronic equipment and computer program product - Google Patents

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

Info

Publication number
CN106797388B
CN106797388B CN201680002827.3A CN201680002827A CN106797388B CN 106797388 B CN106797388 B CN 106797388B CN 201680002827 A CN201680002827 A CN 201680002827A CN 106797388 B CN106797388 B CN 106797388B
Authority
CN
China
Prior art keywords
decoding
multimedia data
coding
operating system
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680002827.3A
Other languages
Chinese (zh)
Other versions
CN106797388A (en
Inventor
李向远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd
Original Assignee
Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd filed Critical Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd
Publication of CN106797388A publication Critical patent/CN106797388A/en
Application granted granted Critical
Publication of CN106797388B publication Critical patent/CN106797388B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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

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

The application provides a cross-system multimedia data coding and decoding method, a device, electronic equipment and a computer program product, wherein the method comprises the following steps: in a first operating system, acquiring an encoding and decoding request for encoding and decoding multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication; in the second operating system, the multimedia data is obtained from the shared memory according to the offset address in the coding and decoding instruction; and coding and decoding the multimedia data according to the coding and decoding instruction, wherein the shared memory is in a readable and writable state for the first operating system and the second operating system. The method and the device improve the performance of the virtualization system and shorten the encoding and decoding processing time of the cross-system multimedia data.

Description

Cross-system multimedia data encoding and decoding method and device, electronic equipment and computer program product
Technical Field
The present application relates to the field of virtualization technologies, and in particular, to a method and an apparatus for encoding and decoding cross-system multimedia data, an electronic device, and a computer program product.
Background
The mobile terminal has become an important tool for users to work and live in daily life, and while the mobile terminal promotes the rapid development of the mobile internet, the mobile terminal becomes a new focus of cyber crime because the mobile terminal contains rich and diversified information (such as access of enterprise data, business communication, social network, financial management, games, and the like). For information security and privacy protection, mobile virtualization is a future development direction of mobile terminals.
Fig. 1 shows a schematic diagram of a virtualization system architecture implemented based on a Qemu/KVM (Kernel-based Virtual Machine) technology, where a hardware layer of the system is located at a bottom layer, and mainly includes a processor, a memory, an input/output device, and the like. Above the hardware layer is a virtualization layer, running a virtual machine monitor (abbreviated as VMM or Hypervisor). The main functions of the virtual machine monitor are: manages the real physical hardware platform and provides a corresponding virtual hardware platform for each guest virtual machine (i.e., guest machine). The virtualization system architecture may run a plurality of operating systems, such as a Linux operating system or an Android operating system, and generally includes a Host operating system (Host OS) and one or more Guest operating systems (Guest OSs), where the Host operating system runs on the Host (Host), the one or more Guest machines run on the Host operating system, and each Guest machine runs as an application program of the Host operating system, and may simulate a hardware device for the Guest operating system running on the Guest machine for the Guest operating system, and various application programs may run in the Guest operating system running on each Guest machine. In the virtualized system architecture, a plurality of operating systems can share the CPU, the memory and the input and output equipment provided by the hardware layer.
The isolation of a plurality of operating systems on a single terminal can be realized through the isolation brought by the virtualization technology, the process on each operating system is prevented from generating adverse effects on other operating systems, the typical application scenario is that the separation of an enterprise system and a personal system is realized on mobile equipment such as a mobile phone and the like through the virtualization technology, the potential harm brought to the enterprise by the process on the personal system is prevented, and the requirements of some enterprises with safety requirements on self-contained equipment (BYOD, Bring Young Own Device) are met.
With the deep development of multimedia application in life, each virtual machine of a terminal needs a multimedia codec, a client operating system in the prior art usually realizes software coding and decoding through a CPU, and the coding and decoding mode occupies a large amount of resources of the CPU of the current client and has high power consumption; and the client operating system can only realize software coding and decoding through a CPU, so that video files in various formats cannot be supported and are not smoothly played. When a certain client operating system needs other client operating systems or host operating systems to assist in completing multimedia data encoding and decoding processing, corresponding physical storage areas need to be allocated in the memory for buffer areas of multimedia frames in the client operating systems or the host operating systems respectively, and when the certain client operating system needs other systems to assist in performing cross-system multimedia data encoding and decoding processing, the content in the physical storage area corresponding to the buffer area of the client operating system multimedia frame needs to be copied to the physical storage area corresponding to the buffer area of the operating system multimedia frame assisting in performing encoding and decoding processing, and after the encoding and decoding processing is completed, the processing result needs to be copied back to the physical storage area corresponding to the buffer area of the client operating system multimedia frame initiating the encoding and decoding processing request.
The defects of the prior art are as follows:
when the cross-system multimedia data coding and decoding processing is carried out, copying of a large amount of data in different physical storage intervals is involved, on one hand, a large amount of computing resources and storage resources of a virtualization system architecture are occupied, the performance of a virtualization system is reduced, and on the other hand, the cross-system multimedia data coding and decoding processing time is prolonged.
Disclosure of Invention
The embodiment of the application provides a cross-system multimedia data coding and decoding method, a device, electronic equipment and a computer program product, which are mainly used for improving the performance of a virtualization system and shortening the coding and decoding processing time of multimedia data.
In one aspect, an embodiment of the present application provides a cross-system multimedia data coding and decoding method, where the method includes:
in a first operating system, acquiring an encoding and decoding request for encoding and decoding multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
in the second operating system, the multimedia data is obtained from the shared memory according to the offset address in the coding and decoding instruction; and coding and decoding the multimedia data according to the coding and decoding instruction, wherein the shared memory is in a readable and writable state for the first operating system and the second operating system.
In another aspect, an embodiment of the present application provides a cross-system multimedia data codec device, where the device includes: the front-end module is used for acquiring an encoding and decoding request for encoding and decoding multimedia data in a first operating system, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
the back end module is used for acquiring the multimedia data from the shared memory according to the offset address in the coding and decoding instruction in the second operating system; and coding and decoding the multimedia data according to the coding and decoding instruction, wherein the shared memory is in a readable and writable state for the first operating system and the second operating system.
In another aspect, an embodiment of the present application provides an electronic device, where the electronic device includes: a memory, one or more processors; and one or more modules 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 steps of any of the above-described methods.
In another aspect, the 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 embodied in a computer-readable storage medium, the computer program comprising instructions for causing the electronic device to perform the steps of any of the above-described methods.
The beneficial effects of the embodiment of the application are as follows:
in the application, when the multimedia data needs to be coded and decoded in the first operating system, the multimedia data can be sent to the second operating system through the shared memory so as to complete the coding and decoding processing of the multimedia data in the second operating system.
Drawings
Specific embodiments of the present application will be described below with reference to the accompanying drawings, in which:
FIG. 1 illustrates a prior art virtualization system architecture;
fig. 2 is a flow chart showing a mid-span system multimedia data encoding and decoding method according to an embodiment of the present application;
FIG. 3 is a diagram illustrating a virtualization system architecture applied to a mid-span system multimedia data encoding and decoding method according to an embodiment of the present application;
FIG. 4 is a schematic diagram of another virtualization system architecture applied to the cross-system multimedia data coding and decoding method in the embodiment of the present application;
FIG. 5 is a schematic diagram of another virtualization system architecture applied to the cross-system multimedia data coding and decoding method in the embodiment of the present application;
fig. 6 is a schematic structural diagram of a mid-span system multimedia data encoding and decoding device in the second embodiment of the present application;
fig. 7 shows a schematic structural diagram of an electronic device in the third embodiment of the present application.
Detailed Description
In order to make the technical solutions and advantages of the present application more apparent, the following further detailed description of the exemplary embodiments of the present application with reference to the accompanying drawings makes it clear that the described embodiments are only a part of the embodiments of the present application, and not an exhaustive list of all embodiments. And the embodiments and features of the embodiments in the present description may be combined with each other without conflict.
The inventor notices in the process of invention that: when the cross-system multimedia data coding and decoding processing is carried out, copying of a large amount of data in different physical storage intervals is involved, on one hand, a large amount of computing resources and storage resources of a virtualization system architecture are occupied, the performance of a virtualization system is reduced, and on the other hand, the cross-system multimedia data coding and decoding processing time is prolonged.
In order to overcome the defects, the application provides a cross-system multimedia data coding and decoding method, in a first operating system, when the multimedia data needs to be coded and decoded, the multimedia data can be sent to a second operating system through a shared memory so as to complete the coding and decoding processing of the multimedia data in the second operating system.
To facilitate the practice of the present application, the following description is given by way of example.
The first embodiment is as follows:
when the virtualized system architecture is started, Qemu may partition a specific address space in a memory, and use the address space as a shared memory that can be read and written by each operating system in the virtualized system architecture, for example, the shared memory may be created by a system call method. The shared memory space may be further partitioned to support access by multiple processes or threads. The size of the shared memory may be set by a developer and adapted to cross-system transfers that may be involved in the virtualized system architecture.
When the client operating system is started, the multimedia framework can acquire the relevant configuration information from the kernel layer of the client operating system for initialization, further acquire the address space of the shared memory mapped to the client operating system, and establish a synchronous control channel with Qemu.
In the host operating system, Qemu may trigger the multimedia framework in the host operating system to perform initialization similar to the guest operating system to obtain the address space where the shared memory is mapped to the host operating system, thereby establishing a connection with the cross-system shared memory.
Fig. 2 is a schematic flow chart of a cross-system multimedia data coding and decoding method according to an embodiment of the present application, and as shown in fig. 2, the cross-system multimedia data coding and decoding method includes:
step 101, in a first operating system, acquiring an encoding and decoding request for encoding and decoding multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
step 102, in the second operating system, obtaining the multimedia data from the shared memory according to the offset address in the coding and decoding instruction; coding and decoding the multimedia data according to the coding and decoding instruction, wherein the shared memory is in a readable and writable state for the first operating system and the second operating system;
step 103, feeding back the encoding and decoding processing result of the multimedia data to the shared memory in a second operating system; and in the first operating system, acquiring the coding and decoding processing result from the shared memory.
In step 101, after an application program in a first operating system initiates a request for encoding and decoding multimedia data, the multimedia data included in the request and needing encoding and decoding is stored in a shared memory that can be read and written by both the first operating system and a second operating system. The multimedia data may be multimedia data that actually needs to be coded and decoded, such as data that actually needs to be coded and decoded in a video file or an audio file, or may be a location of the multimedia data that actually needs to be coded and decoded in a memory and other information, such as a data format, a time stamp, a data size, and the like.
In a virtualization system architecture, a Buffer (Buffer) for encoding and decoding multimedia data is allocated to a first operating system, and when a physical memory corresponding to the Buffer is a shared memory that can be read and written by both the first operating system and a second operating system, the multimedia data in the first operating system can be directly written into the Buffer allocated to the first operating system based on address mapping. The kernel layer of the first operating system can map the shared memory to a user space of the first operating system; the first operating system may perform offset recording on the shared memory to which data is written, that is, record an offset address of a first address of a memory block to which multimedia data is currently written with respect to a first address of the entire shared memory area.
And generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction indicates what kind of coding and decoding processing needs to be performed on the delivered multimedia data by the second operating system, and may include a coding and decoding command function, related parameters and the like. And the offset address of the multimedia data in the shared memory is contained in the coding and decoding instruction and is sent to a second operating system together. The coding and decoding instruction can be sent to a second operating system based on cross-system communication modes such as QEMU PIPE, Socket or shared memory.
In some embodiments, the codec instruction is sent to the second operating system based on a shared memory approach.
Because the inter-system communication mode based on the shared memory is faster than the modes such as QEMU PIPE, Socket and the like, the transmission of the coding and decoding instructions between the first operating system and the second operating system based on the shared memory mode is faster, and the time for the inter-system multimedia data coding and decoding processing is further shortened.
In some embodiments, the sending the multimedia data to a shared memory includes: sending the multimedia data to a non-shared memory; and copying the multimedia data in the non-shared memory to the shared memory.
When the physical memory corresponding to the buffer area allocated to the first operating system can only be directly read and written by the first operating system but cannot be read and written by the second operating system, namely when the physical memory corresponding to the buffer area is a non-shared memory, the multimedia data which needs to be coded and decoded by the first operating system is stored in the physical memory corresponding to the buffer area, and then the multimedia data is copied into the shared memory which can be read and written by both the first operating system and the second operating system.
It should be understood that, in these cases, if the codec command is also transmitted across the system in the shared memory manner, the codec command needs to be written into the non-shared memory of the first operating system first, and then the codec command in the non-shared memory needs to be copied to the shared memory for the second operating system to obtain.
In step 102, the kernel layer of the second operating system may map the shared memory to a user space of the second operating system. After the second operating system obtains the coding and decoding instruction, the multimedia data can be read from the corresponding position of the shared memory according to the offset address in the coding and decoding instruction, and then the coding and decoding processing is performed on the multimedia data according to the coding and decoding instruction, so that a processing result is obtained. Specifically, in the second operating system, a driver of the codec may be called according to the codec command to drive the corresponding codec to complete the codec processing; the codec component can be loaded according to the codec instruction to complete the codec processing; the multimedia data may be further encoded and decoded by an OpenMAX Integration Layer (OpenMAX IL) in the second operating system according to the encoding and decoding instruction. The format and the specific content of the codec instructions may be different in the different situations described above.
It should be understood that, when the codec command is transferred from the first operating system to the second operating system based on the shared memory, the first operating system further needs to send the offset address of the codec command in the shared memory to the second operating system, so that the second operating system obtains the codec command from the shared memory according to the offset address of the codec command, and then further obtains the multimedia data.
In step 103, in the second operating system, after performing encoding and decoding processing on the multimedia data according to the encoding and decoding 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 encoding and decoding processing result is written into the shared memory, the position (head address offset address) of the processing result in the shared memory is recorded, and the offset address is sent to the first operating system based on cross-system communication modes such as QEMU PIPE, Socket, or shared memory, so that the first operating system can read data from the corresponding position of the shared memory through the offset address of the processing result. The processing result may be multimedia data after being subjected to encoding and decoding processing, such as video or audio data in a decoded video file or a compressed audio file, or may be a position of the multimedia data after being subjected to encoding and decoding processing in a memory and other information, such as a data format, a time stamp, a data size, and the like.
The first operating system is a guest operating system in a virtualized system architecture, and the second operating system is a host operating system in the virtualized system architecture.
In some embodiments, the step 101 is to, in a first operating system, obtain a codec request for a multimedia framework to call a codec to perform codec processing on multimedia data, where the codec request includes multimedia data that needs to be subjected to codec processing; sending the coding and decoding request to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication; in step 102, in a second operating system, the multimedia data is obtained from the shared memory according to the offset address in the encoding and decoding instruction; and calling a driver of the codec according to the coding and decoding instruction to perform coding and decoding processing on the multimedia data, wherein the shared memory is in a readable and writable state for both the first operating system and the second operating system.
Fig. 3 is a schematic diagram of a virtualization system architecture applied to a mid-span system multimedia data coding and decoding method according to an embodiment of the present application, where the virtualization 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 program, such as a video player, runs in the client operating system, and when the multimedia application program needs to perform encoding and decoding processing on some multimedia data, it issues a multimedia data encoding and decoding request to the multimedia framework, for example, when the video player plays a high definition video, it issues a video data decoding request to the multimedia framework.
In step 101, when a multimedia application running in a client operating system needs to perform codec processing on some multimedia data, a multimedia data codec request is issued to a multimedia framework, and the multimedia framework selects an appropriate codec for the multimedia data according to the type, format, resolution, or the like of the multimedia data to perform corresponding processing. And when the multimedia framework judges that the multimedia data needs to be correspondingly processed by a hardware codec, calling the hardware codec in the client operating system to generate an instruction for hardware codec of the multimedia data. In this embodiment, a multimedia framework in the client operating system may be OpenMAX or another existing multimedia framework, and when the multimedia framework is OpenMAX, the multimedia framework has one or more hardware codec components, and generates an instruction for performing hardware codec processing on multimedia data by calling each hardware codec Component.
The method comprises the steps that a real hardware codec does not exist in a client operating system, but a front end of a hardware codec driver is operated in a kernel layer of the client operating system, when the front end of the hardware codec driver receives an instruction that a multimedia framework calls a hardware codec component to perform hardware coding and decoding processing on multimedia data, the multimedia data needing the hardware coding and decoding processing is written into a shared memory, an offset address of the multimedia data in the shared memory is contained in the instruction, and the instruction is transmitted to a rear end of the hardware codec driver operated in the kernel layer of a host operating system in a cross-system communication mode.
In step 102, after receiving an instruction for performing hardware encoding and decoding processing on multimedia data sent by a hardware codec driver front end in the client operating system, the back end of the hardware codec driver running in the kernel layer of the host operating system obtains the multimedia data from the shared memory according to an offset address included in the instruction, and runs the driver of the hardware codec in the host operating system, so that the real hardware codec completes the hardware encoding and decoding processing on the multimedia data. The hardware codec Driver may be a V4L2Driver or the like.
In this embodiment, after the step 102, a step 103 of feeding back the processed multimedia data to the client operating system based on the shared memory may be further included; and feeding back the processed multimedia data to the multimedia framework in a client operating system.
After the hardware codec of the host operating system completes the encoding and decoding processing of the multimedia data, the rear end of the hardware codec driver in the host operating system can transmit the data subjected to the encoding and decoding processing to the front end of the hardware codec driver in the client operating system through the shared memory. The hardware codec driver front end in the client operating system can feed back the data after the codec processing to the multimedia framework after receiving the data, so that the multimedia framework feeds back the data after the codec processing to the multimedia application program which initiates the original codec request.
In this embodiment, taking the codec as a hardware codec as an example, that is, the multimedia framework in the client operating system determines that the codec request is a hardware codec request, and needs to call a driver of the hardware codec in the host operating system to drive the hardware codec to perform corresponding hardware codec processing, it should be understood that when the multimedia framework in the client operating system determines that the codec request is a software codec request, the host operating system may also perform corresponding software codec processing through the shared memory.
In some embodiments, in the step 101, in an OpenMAX integration layer of a first operating system, an encoding and decoding request for performing encoding and decoding processing on multimedia data, which is sent by an adaptation layer, is obtained, where the encoding and decoding request includes multimedia data that needs to be subjected to encoding and decoding processing; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication; in step 102, in the OpenMAX integration layer of the second operating system, the multimedia data is obtained from the shared memory according to the offset address in the encoding and decoding instruction; and loading a component of a coder-decoder according to the coding and decoding instruction to code and decode the multimedia data, wherein the shared memory is in a readable and writable state for both the first operating system and the second operating system.
Fig. 4 is a schematic diagram illustrating another virtualization system architecture applied to a mid-span system multimedia data encoding and decoding method in an embodiment of the present application, where the technical solution provided in this embodiment is applicable to an operating system using an OpenMAX multimedia framework. For example, the virtualization 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 program, such as a video player, runs in the client operating system, and when the multimedia application program needs to perform encoding and decoding processing on some multimedia data, it issues a multimedia data encoding and decoding request to the multimedia framework, for example, when the video player plays a high definition video, it issues a video data decoding request to the multimedia framework.
In step 101, after a multimedia application in a client operating system issues a codec request for performing codec processing on multimedia data, an adaptation layer of the client operating system may select an appropriate software or hardware codec for the multimedia data according to the type, format, resolution, or the like of the multimedia data. The number of codecs supporting the same format may be multiple, and may include a hardware codec and a software codec, and when adapting the codecs, the most suitable codec may be selected according to a preset rule, for example: selecting a software codec for a multimedia file with a low resolution requirement, selecting a hardware codec for a multimedia file with a high resolution requirement, and the like. After receiving an encoding and decoding request sent by an adaptation layer in an OpenMAX integration layer of a client operating system, generating an encoding and decoding instruction corresponding to the encoding and decoding request, writing multimedia data into a shared memory, including an offset address of the multimedia data in the shared memory in the encoding and decoding instruction, and transmitting the encoding and decoding instruction to a host operating system in a cross-system communication mode. 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 encoded and decoded by using the software codec in the client operating system; and the multimedia data of all the coding and decoding requests can be transmitted to the host operating system based on the shared memory.
In step 102, after obtaining a coding/decoding instruction sent by the client operating system, the host operating system obtains the multimedia data from the shared memory according to an offset address included in the coding/decoding instruction, and loads a component of a codec according to the coding/decoding instruction in an OpenMAX integration layer of the host operating system to perform coding/decoding processing on the multimedia data.
In some embodiments, an OpenMAX front end and an OpenMAX back end are respectively run in an OpenMAX integration layer of a client operating system and an OpenMAX integration layer of a host operating system, after an adaptation layer of the client operating system matches a suitable codec with a codec request of an application program, the OpenMAX front end generates a codec instruction according to the codec request of the suitable codec determined, writes multimedia data into a shared memory, includes an offset address of the multimedia data in the shared memory in the codec instruction, and transmits the codec instruction to the OpenMAX back end in the host operating system in a cross-system communication manner. After an OpenMAX back end in a host operating system receives a coding and decoding instruction sent by an OpenMAX front end, multimedia data are obtained from a shared memory according to an offset address contained in the instruction, and the coding and decoding instruction loads a corresponding coder-decoder in an OpenMAX integrated layer of the host operating system to code and decode the multimedia data.
In this embodiment, after the step 102, a step 103 of feeding back the processed multimedia data to the client operating system based on the shared memory may be further included; and feeding the processed multimedia data back to the adaptation layer in a client operating system.
After the OpenMAX integration layer of the host operating system loads software or a hardware codec finishes coding and decoding processing on the multimedia data, the host operating system can transmit the data subjected to coding and decoding processing to the OpenMAX front end in the client operating system through the OpenMAX rear end based on a shared memory, and the OpenMAX front end of the client operating system can feed back the data subjected to coding and decoding processing to the adaptation layer after receiving the data, and further feed back the data to the multimedia application program initiating the original coding and decoding request. In addition, after the host operating system OpenMAX integration layer loads software or a hardware codec finishes coding and decoding processing on the multimedia data, the processing result may also be directly sent to a multimedia application program in the host operating system for subsequent operation.
In some embodiments, the step 101 is, in a first operating system, acquiring an encoding and decoding request of a multimedia application program for performing encoding and decoding processing on multimedia data, where the encoding and decoding request includes multimedia data that needs to be subjected to encoding and decoding processing; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication; in step 102, in a second operating system, the multimedia data is obtained from the shared memory according to the offset address in the encoding and decoding instruction; and sending the coding and decoding instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that the OpenMAX integration layer in the second operating system performs coding and decoding processing on the multimedia data according to the coding and decoding instruction.
Fig. 5 is a schematic diagram illustrating another virtualization system architecture applied to a mid-span system multimedia data encoding and decoding method in an embodiment of the present application, where the technical solution provided in this embodiment is applicable to an Android multimedia framework standard, and the multimedia framework may specifically include Stagefright + OpenMAX or Opencore + OpenMAX. For example, the virtualization 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 program, such as a video player, runs in the client operating system, and when the multimedia application program needs to perform encoding and decoding processing on some multimedia data, it issues a multimedia data encoding and decoding request to the multimedia framework, for example, when the video player plays a high definition video, it issues a video data decoding request to the multimedia framework.
In step 101, when a multimedia application running in a client operating system needs to perform encoding and decoding processing on some multimedia data, a multimedia data encoding and decoding request is issued to a multimedia framework, where the encoding and decoding request includes the multimedia data that needs to be encoded and decoded. In a client operating system, a complete multimedia framework does not need to be operated to process the multimedia data according to the coding and decoding request, only a coding and decoding instruction needs to be generated according to the coding and decoding request, the multimedia data is written into a shared memory, an offset address of the multimedia data in the shared memory is contained in the coding and decoding instruction, and the coding and decoding instruction is transmitted to a host operating system in a cross-system communication mode.
In step 102, a complete OpenMAX integration layer is run in the host operating system, after a codec instruction transmitted by the client operating system based on the shared memory is received, the multimedia data is obtained from the shared memory according to an offset address included in the codec instruction, the codec instruction and the multimedia data to be processed by codec are sent to the OpenMAX integration layer in the host operating system, and the multimedia data is processed by the OpenMAX integration layer according to the codec instruction, which may include loading various software codec components to perform software codec processing; or loading various hardware codec components to drive the corresponding hardware codec to perform the hardware codec processing.
In some embodiments, in step 101, in an OMX adaptation layer of a Stagefright framework of a client operating system, a codec request for performing codec processing on multimedia data by a multimedia application is obtained, where the codec request includes multimedia data to be subjected to codec processing; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a host operating system based on cross-system communication; in step 102, in the host operating system OMX adaptation layer, the multimedia data is obtained from the shared memory according to the offset address in the coding and decoding instruction; and sending the coding and decoding instruction and the multimedia data to an OpenMAX integration layer in a host operating system, so that the OpenMAX integration layer in the host operating system performs coding and decoding processing on the multimedia data according to the coding and decoding instruction.
Taking an Android multimedia framework (Stagefright + OpenMAX) as an example of a virtualization system architecture, Stagefright in a host operating system and a client operating system respectively runs an OMX adaptation layer, and the adaptation layers respectively refer to a class OMXClient. In the OMX adaptation layer of the host operating system, the AwesomePlayer can call an OMX Client:: connect function, obtain MediaPlayerService through a binder mechanism, then create an instance of the OMX through the MediaPlayerService, enable the OMXClient in the host operating system to be used as an inlet of the OMX, and obtain the service provided by the OMX through the binder mechanism.
In a client operating system, creating a new OMXClient-like front end in an OMX adaptation layer of a Stagefright framework in the client operating system, wherein the OMXClient-like front end can provide a standard OMXClient-like interface for a multimedia application layer, a multimedia codec, or other types in other multimedia frameworks of android systems, generating a codec command according to the codec request after the OMXClient-like front end in the client operating system acquires a codec request for multimedia data codec processing of a multimedia application program, writing multimedia data into a shared memory, including an offset address of the multimedia data in the shared memory in the codec command, transmitting the codec command to an OMXClient back end in the OMX adaptation layer of a host operating system in a cross-system communication mode, and acquiring the multimedia data from the shared memory according to the offset address included in the codec command, and sending the coding and decoding instruction and the multimedia data to be coded and decoded to other services in a multimedia frame of a MediaPlayerservice, a MediaCodecservice or an android system through a Binder mechanism. In this embodiment, the OMXClient back end is used as an entry of an OMX adaptation layer OMX of the host operating system, so that the codec command and the multimedia data sent to the OMXClient front end in the client operating system can be sent to a complete OpenMAX integration layer running in the host operating system via the OMXClient back end, thereby completing the codec processing of hardware or software.
In this embodiment, information of a codec that performs codec processing on the multimedia data may be determined according to the codec request, so as to generate a codec command corresponding to the codec, where in step 102, the multimedia data may be obtained from the shared memory according to an offset address in the codec command; and sending the coding and decoding instruction and the multimedia data to an OpenMAX integration layer in a host operating system, so that the OpenMAX integration layer in the host operating system loads a component of the coder and the decoder according to the coding and decoding instruction to perform coding and decoding processing on the multimedia data.
For the Stagefright framework, all codecs supported by the guest operating system, including various hardware codecs and software codecs, may be stored in a pre-set configuration file. After an OMX adaptation layer OMXClient front end of a client operating system obtains a codec request sent by a multimedia application program, a Stagefright framework can determine a codec applicable to multimedia data according to the multimedia data needing codec processing, for example, select an appropriate software or hardware codec for the multimedia data according to the type, format, resolution and the like of the multimedia data, and generate a codec command corresponding to the codec.
After a decoding and coding instruction sent by a client operating system is obtained at the back end of a Stagefront framework OMX adaptation layer OMXClient of a host operating system, the multimedia data is obtained from the shared memory according to an offset address in the decoding and coding instruction, and the decoding and coding instruction and the multimedia data are sent to an OpenMAX integration layer in the host operating system, so that the OpenMAX integration layer loads appropriate software or hardware codec components according to the decoding and coding request to perform decoding and coding processing on the multimedia data.
In this embodiment, after the step 102, a step 103 of feeding back the processed multimedia data to the client operating system based on the shared memory may be further included; and feeding back the processed multimedia data to the multimedia application program in a client operating system.
After the encoding and decoding processing of the multimedia data is completed by the software or hardware codec of the host operating system, the OMXClient back end in the OMX adaptation layer of the host operating system can transmit the encoded and decoded data to the OMXClient front end in the OMX adaptation layer of the multimedia framework of the client operating system based on the shared memory, and the OMXClient front end in the OMX adaptation layer of the client operating system can feed back the encoded and decoded data to the multimedia application program initiating the original encoding and decoding request after receiving the encoded and decoded data.
In the above embodiment, Qemu creates a shared memory accessible to both the host operating system and the client operating system for multimedia at startup, creates a file node of the block of shared memory in the host operating system, and maps the block of shared memory to the client operating system, for example, to a memory space of a PCI (Peripheral Component Interconnect) device of the client operating system. A multimedia front end (e.g., a codec driver front end, an OpenMAX front end, or an OMXClient front end) in the client operating system obtains configuration information from the kernel layer, initializes the configuration information, and obtains a shared memory space allocated by Qemu, that is, obtains a first address of the shared memory in the client operating system. After a multimedia back end (for example, a codec driver back end, an OpenMAX back end, or an OMXClient back end) in the host operating system is started, a connection request of a front end corresponding to the multimedia back end is monitored, and when the front end is connected with the back end, the multimedia back end obtains a shared memory space according to the Qemu created file node mapping of the shared memory, that is, a first address of the shared memory in the host operating system is obtained. And then, the front end and the back end after connection establishment can realize cross-system transmission of multimedia data or coding and decoding instructions through the same block space in the shared memory through the first address and the same offset address of the shared memory in respective operating systems.
In the present embodiment, when the multimedia data needs to be coded and decoded in the first operating system, the multimedia data may be sent to the second operating system through the shared memory, so as to complete the coding and decoding of the multimedia data in the second operating system. The method can also transmit the coding and decoding instructions between the first operating system and the second operating system based on a shared memory mode, so that the time for coding and decoding the cross-system multimedia data is further shortened; when the physical storage area of the buffer area originally allocated by the first operating system is the unshared memory, the data written into the unshared memory can be copied into the shared memory so as to be conveniently read by the second operating system; in addition, the proposal also discloses that the kernel layer, the OpenMAX integration layer or the adaptation layer of the multimedia framework of the first operating system and the second operating system can realize the cross-system transmission of the multimedia data coding and decoding request based on the shared memory, can be adjusted according to the user requirement, and is more flexible.
Example two:
based on the same inventive concept, the embodiment of the present application further provides a cross-system multimedia data encoding and decoding apparatus, and because the principles of the apparatus for solving the problems are similar to the cross-system multimedia data encoding and decoding method, the implementation of the apparatus can refer to the implementation of the method, and repeated details are not repeated. As shown in fig. 6, the cross-system multimedia data codec device 200 includes:
a front-end module 201, configured to obtain, in a first operating system, an encoding and decoding request for encoding and decoding multimedia data, where the encoding and decoding request includes multimedia data that needs to be encoded and decoded; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
a back-end module 202, configured to, in the second operating system, obtain the multimedia data from the shared memory according to the offset address in the encoding and decoding instruction; and coding and decoding the multimedia data according to the coding and decoding instruction, wherein the shared memory is in a readable and writable state for the first operating system and the second operating system.
In some embodiments, the sending the codec instruction to the second operating system based on cross-system communication includes: and sending the coding and decoding instruction to a second operating system based on a shared memory mode.
In some embodiments, the sending the multimedia data to a shared memory includes: sending the multimedia data to a non-shared memory; and copying the multimedia data in the non-shared memory to the shared memory.
In some embodiments, in the first operating system, acquiring a codec request for codec processing of multimedia data, where the codec request includes the multimedia data that needs to be codec processed, includes:
in a first operating system, acquiring an encoding and decoding request for a multimedia framework to call an encoder and decoder to perform encoding and decoding processing on multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding processing;
the encoding and decoding processing of the multimedia data according to the encoding and decoding instruction comprises:
and calling a driving program of the coder-decoder according to the coding and decoding instruction to code and decode the multimedia data.
In some embodiments, the front-end module 201 is specifically configured to, in an OpenMAX integration layer of a first operating system, obtain an encoding and decoding request for performing encoding and decoding processing on multimedia data, where the encoding and decoding request includes multimedia data that needs to be subjected to encoding and decoding processing, and the encoding and decoding request is sent by an adaptation layer; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
the back-end module 202 is specifically configured to, in the second OpenMAX integration layer of the operating system, obtain the multimedia data from the shared memory according to the offset address in the coding and decoding instruction; and loading the components of the codec according to the coding and decoding instructions to perform coding and decoding processing on the multimedia data, wherein the shared memory is in a readable and writable state for both the first operating system and the second operating system.
In some embodiments, in the first operating system, acquiring a codec request for codec processing of multimedia data, where the codec request includes the multimedia data that needs to be codec processed, includes:
in a first operating system, acquiring an encoding and decoding request of a multimedia application program for encoding and decoding multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding;
the encoding and decoding processing of the multimedia data according to the encoding and decoding instruction comprises:
and sending the coding and decoding instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that the OpenMAX integration layer in the second operating system performs coding and decoding processing on the multimedia data according to the coding and decoding instruction.
In some embodiments, the back-end module 202 is further configured to, after the encoding and decoding of the multimedia data according to the encoding and decoding instruction, feed back an encoding and decoding result of the multimedia data to the shared memory;
the front-end module 201 is further configured to, in the first operating system, obtain the encoding and decoding processing result from the shared memory.
Example three:
based on the same inventive concept, the embodiment of the present application further provides an electronic device, and as the principle of the electronic device is similar to that of a cross-system multimedia data encoding and decoding method, the implementation of the method can be referred to, and repeated details are not repeated. As shown in fig. 7, the electronic device 300 includes: memory 301, one or more processors 302; and one or more modules 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 steps of any of the above-described methods.
In this embodiment, the electronic device may be a mobile phone, a tablet computer, a robot, or other intelligent devices.
Example four:
based on the same inventive concept, the present application also provides a computer program product for use in conjunction with an electronic device, the computer program product comprising a computer program embedded in a computer-readable storage medium, the computer program comprising instructions for causing the electronic device to perform the steps of any of the above-described methods.
For convenience of description, each part of the above-described apparatus is separately described as functionally divided into various modules. Of course, the functionality of the various modules or units may be implemented in the same one or more pieces of software or hardware when implementing the present application.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While the preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application.

Claims (14)

1. A method for encoding and decoding multimedia data across operating systems, the method comprising:
in a first operating system, acquiring an encoding and decoding request for encoding and decoding multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
in the second operating system, the multimedia data is obtained from the shared memory according to the offset address in the coding and decoding instruction; coding and decoding the multimedia data according to the coding and decoding instruction, wherein the shared memory is in a readable and writable state for the first operating system and the second operating system;
the sending the multimedia data to a shared memory includes:
sending the multimedia data to a non-shared memory;
and copying the multimedia data in the non-shared memory to the shared memory.
2. The method of claim 1, wherein sending the codec instruction to a second operating system based on cross-system communication comprises:
and sending the coding and decoding instruction to a second operating system based on a shared memory mode.
3. The method according to claim 1, wherein obtaining, in the first operating system, a codec request for codec processing of multimedia data, the codec request including multimedia data to be codec processed, comprises:
in a first operating system, acquiring an encoding and decoding request for a multimedia framework to call an encoder and decoder to perform encoding and decoding processing on multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding processing;
the encoding and decoding processing of the multimedia data according to the encoding and decoding instruction comprises:
and calling a driving program of the coder-decoder according to the coding and decoding instruction to code and decode the multimedia data.
4. The method of claim 1, wherein the method comprises:
in a first operating system OpenMAX integration layer, acquiring an encoding and decoding request for encoding and decoding multimedia data, which is sent by an adaptation layer, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
in the second operating system OpenMAX integration layer, obtaining the multimedia data from the shared memory according to the offset address in the coding and decoding instruction; and loading the components of the codec according to the coding and decoding instructions to perform coding and decoding processing on the multimedia data, wherein the shared memory is in a readable and writable state for both the first operating system and the second operating system.
5. The method according to claim 1, wherein obtaining, in the first operating system, a codec request for codec processing of multimedia data, the codec request including multimedia data to be codec processed, comprises:
in a first operating system, acquiring an encoding and decoding request of a multimedia application program for encoding and decoding multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding;
the encoding and decoding processing of the multimedia data according to the encoding and decoding instruction comprises:
and sending the coding and decoding instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that the OpenMAX integration layer in the second operating system performs coding and decoding processing on the multimedia data according to the coding and decoding instruction.
6. The method of claim 1, further comprising, after the codec processing the multimedia data according to the codec instruction:
feeding back the coding and decoding processing result of the multimedia data to the shared memory;
and in the first operating system, acquiring the coding and decoding processing result from the shared memory.
7. An apparatus for encoding and decoding multimedia data across operating systems, the apparatus comprising:
the front-end module is used for acquiring an encoding and decoding request for encoding and decoding multimedia data in a first operating system, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
the back end module is used for acquiring the multimedia data from the shared memory according to the offset address in the coding and decoding instruction in the second operating system; coding and decoding the multimedia data according to the coding and decoding instruction, wherein the shared memory is in a readable and writable state for the first operating system and the second operating system;
the sending the multimedia data to a shared memory includes:
sending the multimedia data to a non-shared memory;
and copying the multimedia data in the non-shared memory to the shared memory.
8. The apparatus of claim 7, wherein sending the codec instruction to a second operating system based on cross-system communication comprises:
and sending the coding and decoding instruction to a second operating system based on a shared memory mode.
9. The apparatus of claim 7, wherein in the first operating system, acquiring a codec request for codec processing of multimedia data, the codec request including multimedia data to be codec processed, comprises:
in a first operating system, acquiring an encoding and decoding request for a multimedia framework to call an encoder and decoder to perform encoding and decoding processing on multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding processing;
the encoding and decoding processing of the multimedia data according to the encoding and decoding instruction comprises:
and calling a driving program of the coder-decoder according to the coding and decoding instruction to code and decode the multimedia data.
10. The apparatus of claim 7, wherein:
the front-end module is specifically configured to obtain, in an OpenMAX integration layer of a first operating system, an encoding and decoding request for performing encoding and decoding processing on multimedia data, where the encoding and decoding request includes multimedia data that needs to be encoded and decoded; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding the multimedia data according to the coding and decoding request, wherein the coding and decoding instruction comprises an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system based on cross-system communication;
the back-end module is specifically configured to, in the second operating system OpenMAX integration layer, obtain the multimedia data from the shared memory according to the offset address in the coding and decoding instruction; and loading the components of the codec according to the coding and decoding instructions to perform coding and decoding processing on the multimedia data, wherein the shared memory is in a readable and writable state for both the first operating system and the second operating system.
11. The apparatus of claim 7, wherein in the first operating system, acquiring a codec request for codec processing of multimedia data, the codec request including multimedia data to be codec processed, comprises:
in a first operating system, acquiring an encoding and decoding request of a multimedia application program for encoding and decoding multimedia data, wherein the encoding and decoding request comprises the multimedia data needing encoding and decoding;
the encoding and decoding processing of the multimedia data according to the encoding and decoding instruction comprises:
and sending the coding and decoding instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that the OpenMAX integration layer in the second operating system performs coding and decoding processing on the multimedia data according to the coding and decoding instruction.
12. The apparatus of claim 7, wherein:
the back end module is further configured to feed back an encoding and decoding processing result of the multimedia data to the shared memory after the encoding and decoding processing of the multimedia data is performed according to the encoding and decoding instruction;
the front-end module is further configured to, in the first operating system, obtain the encoding and decoding processing result from the shared memory.
13. An electronic device, characterized in that the electronic device comprises:
a memory, one or more processors; and one or more modules 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 steps of the method of any of claims 1-6.
14. A computer storage medium having stored thereon a computer program comprising instructions for carrying out each step of the method according to any one of claims 1 to 6.
CN201680002827.3A 2016-12-29 2016-12-29 Cross-system multimedia data encoding and decoding method and device, electronic equipment and computer program product Active CN106797388B (en)

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 (2)

Publication Number Publication Date
CN106797388A CN106797388A (en) 2017-05-31
CN106797388B true CN106797388B (en) 2020-11-10

Family

ID=58952955

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (12)

* 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
CN110096624B (en) * 2019-04-26 2023-03-21 深圳前海微众银行股份有限公司 Encoding and decoding method and device, computer equipment and 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 (4)

* 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
CN101847105A (en) * 2009-03-26 2010-09-29 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN104023266A (en) * 2014-05-27 2014-09-03 烽火通信科技股份有限公司 Use method of communication coding-decoding assembly of android system
CN102981887B (en) * 2011-09-06 2016-07-06 联想(北京)有限公司 Data processing method and electronic equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907494B2 (en) * 2002-10-10 2005-06-14 International Business Machines Corporation Method and system of managing virtualized physical memory in a memory controller and processor system
US20060070069A1 (en) * 2004-09-30 2006-03-30 International Business Machines Corporation System and method for sharing resources between real-time and virtualizing operating systems
WO2011008205A1 (en) * 2009-07-15 2011-01-20 Hewlett-Packard Development Company, L.P. Shared video management subsystem

Patent Citations (4)

* 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
CN101847105A (en) * 2009-03-26 2010-09-29 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN102981887B (en) * 2011-09-06 2016-07-06 联想(北京)有限公司 Data processing method and electronic equipment
CN104023266A (en) * 2014-05-27 2014-09-03 烽火通信科技股份有限公司 Use method of communication coding-decoding assembly of android system

Also Published As

Publication number Publication date
WO2018119955A1 (en) 2018-07-05
CN106797388A (en) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106797388B (en) Cross-system multimedia data encoding and decoding method and device, electronic equipment and computer program product
US9635098B2 (en) Open platform, open platform access system, storage medium, and method for allowing third party application to access open platform
RU2745343C1 (en) Cloud desktop system and method of coding with compression of image sequences, and corresponding data storage
US9720712B2 (en) Physical/virtual device failover with a shared backend
US20200174669A1 (en) Management method and apparatus for multi-system shared memory
WO2018119711A1 (en) Multimedia encoding/decoding method and device for multi-operating system, and electronic device
KR20130011436A (en) System and method for providing cloud game service
US9191417B2 (en) Cross-process media handling in a voice-over-internet protocol (VOIP) application platform
CN109324903B (en) Display resource scheduling method and device for embedded system
US20130293557A1 (en) Server based graphics processing techniques
CN110928557B (en) Method, device and system for realizing migration of operating system
WO2018119611A1 (en) Multimedia data encoding/decoding method and device for multi-operating system, electronic device, and computer program product
CN107710720B (en) Cloud computing for mobile client devices
CN115988218B (en) Virtualized video encoding and decoding system, electronic equipment and storage medium
US10318343B2 (en) Migration methods and apparatuses for migrating virtual machine including locally stored and shared data
US20120266171A1 (en) Apparatus and method for carrying out a migration process of a virtual machine in a device
CN116320469B (en) Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN111209080A (en) Transparent transmission method for graphic processor
US10467078B2 (en) Crash dump extraction of guest failure
US20140055470A1 (en) Host Context Techniques for Server Based Graphics Processing
CN115981845A (en) Cloud multi-person collaboration and AR real-time collaboration method, device, medium and equipment
WO2018119616A1 (en) Multi-operating system multimedia data coding and decoding method and apparatus, electronic device and computer program product
CN105677481B (en) A kind of data processing method, system and electronic equipment
US20130343373A1 (en) Voice-over-internet protocol (voip) application platform
US9569241B2 (en) Sharing devices assigned to virtual machines using runtime exclusion

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant