US20260037258A1
METHOD AND APPARATUS FOR PROCESSING MULTIMEDIA DATA FLOWS BY DECOUPLING AVSTREAM DRIVER FROM MULTIMEDIA DATA FLOWS AND USING USERSPACE-DRIVEN DATA FLOW MODEL
Publication
Application
Classifications
IPC Classifications
CPC Classifications
Applicants
MEDIATEK INC.
Inventors
Chun-Chuan Yang, Xilei Huang
Abstract
A computing device includes a machine-readable medium and a processing circuit. The machine-readable medium stores instructions. The processing circuit loads and executes the instructions. The instructions include a Windows operating system, an AVStream driver, and a multimedia data flow model. The AVStream driver is executable within the Windows operating system, wherein each AVStream pin of the AVStream driver is defined to be decoupled from multimedia data flows. The multimedia data flow model is executable within the Windows operating system, wherein the multimedia data flow model is used to deal with at least the multimedia data flows in a processing style adopted in a non-Windows operating system when being executed.
Figures
Description
BACKGROUND
[0001]The present invention relates to processing multimedia data flows, and more particularly, to a method and apparatus for processing multimedia data flows by decoupling a Windows AVStream driver from the multimedia data flows and using a userspace-driven data flow module.
[0002]Conventional data flow models may be categorized into kernel-driven data flow models and userspace-driven data flow models. Regarding a kernel-driven data flow model, data flows are triggered by the kernel, and the user space only receives the data flows delivered from the kernel. Regarding a userspace-driven data flow model, data flows are triggered by the user space, and the kernel provides the data flows requested by the user space. Since a framework of the kernel-driven data flow model does not match a framework of the userspace-driven data flow model, directly replacing the kernel-driven data flow model by the userspace-driven data flow model may be unworkable in most cases. Thus, there is a need for an innovative design which allows the userspace-driven data flow model supported by a first operating system to be implemented in a second operating system that originally supports the kernel-driven data flow model.
SUMMARY
[0003]One of the objectives of the claimed invention is to provide a method and apparatus for processing multimedia data flows by decoupling a Windows AVStream driver from the multimedia data flows and using a userspace-driven data flow module. For example, each AVStream pin of a Windows AVStream driver is decoupled from multimedia data flows, and a multimedia data flow module that deals with the multimedia data flows operates in a processing style adopted in a non-Windows operating system.
[0004]According to a first aspect of the present invention, an exemplary computing device is disclosed. The exemplary computing device includes a machine-readable medium and a processing circuit. The machine-readable medium is configured to store instructions. The processing circuit is configured to load and execute the instructions. The instructions include a Windows operating system; an AVStream driver, executable within the Windows operating system, wherein each AVStream pin of the AVStream driver is defined to be decoupled from multimedia data flows; and a multimedia data flow model, executable within the Windows operating system, wherein the multimedia data flow model is configured to deal with at least the multimedia data flows in a processing style adopted in a non-Windows operating system when being executed.
[0005]According to a second aspect of the present invention, an exemplary data processing method is disclosed. The exemplary data processing method includes: executing an AVStream driver within a Windows operating system; decoupling each AVStream pin of the AVStream driver from multimedia data flows; and executing a multimedia data flow model within the Windows operating system, to deal with at least the multimedia data flows in a processing style adopted in a non-Windows operating system.
[0006]These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007]
[0008]
[0009]
DETAILED DESCRIPTION
[0010]Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms “include” and “comprise” are used in an open-ended fashion, and thus should be interpreted to mean “include, but not limited to . . . ”. Also, the term “couple” is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
[0011]
[0012]The AVStream driver 114 is executable within the Windows operating system 112. More specifically, the AVStream driver 114 is executed in a kernel space 124 of the Windows operating system 112. In this embodiment, the AVStream driver 114 may create one or more AVStream pins 115_1-115_N (N≥1), where each AVStream pin of the AVStream driver 114 is defined to be decoupled from multimedia data flows DS. This means that these AVStream pins 115_1-115_N (N≥1) do not directly depend on the specific content and structure of the multimedia data flows DS when operating and processing data. In other words, the design and functionality of the AVStream pins 115_1-115_N are not fixed for specific types or formats of data flows, but are versatile and capable of handling various types of data flows. For example, the multimedia data flows DS may be camera-related data flows (e.g. video data and/or video-related meta data) derived from data output by a hardware camera module (not shown). Hence, in this embodiment, the AVStream pins 115_1-115_N may not be particularly tied to the camera-related data flows. Furthermore, since AVStream pins 115_1-115_N are not dependent on specific content of data flows, they can receive and process multimedia data flows from different sources, such as video, audio, or other forms of data produced by various types of hardware devices. This design allows AVStream pins 115_1-115_N (N≥1) to process data more flexibly and independently, improving the modularity and scalability of the system. More specifically, decoupling allows the various part of the AVStream driver 114 to be developed and maintained independently, meaning that the pin processing logic can be replaced or updated separately without affecting other parts, thereby enhancing the modularity of the system. As new multimedia formats and data types emerge, the decoupled design enables the AVStream driver 114 to be more easily extended to support these new formats without the need for large-scale changes to existing system, thus improving the system's scalability. Additionally, because the decoupled pins are not limited by specific data flow formats, they can more easily collaborate with different software and hardware components.
[0013]The multimedia data flow model 116 is executable within the Windows operating system 112. For example, the multimedia data flow model 116 may be a 2-stage data flow model including a first stage 118 and a second stage 120, where the first stage 118 is executed in the kernel space 124 of the Windows operating system 112, and the second stage 120 is executed in a user space 122 of the Windows operating system 112. In this embodiment, the multimedia data flow model 116 is configured to deal with at least the multimedia data flows DS in a processing style adopted in a non-Windows operating system when being executed within the Windows operating system 112. For example, the non-Windows operating system may be a Linux-based operating system such as an Android operating system, and the processing style may be in compliance with a video for Linux version two (V4L2) style.
[0014]The Windows operating system 112 requires the use of the AVStream driver 114 (which is part of a kernel-driven data flow model), and the AVStream driver 114 is required to create at least one AVStream pin 115_1-115_N (N≥1). For example, the AVStream driver 114 may create only a single AVStream pin 115_1 (N=1) to meet the minimum requirements of the Windows operating system 112. However, the Windows operating system 112 has no constraints on the type of information delivered over the at least one AVStream pin 115_1-115_N (N≥1). Based on such observations, the present invention proposes decoupling each AVStream pin 115_1-115_N (N≥1) of the AVStream driver (which is a vender-specific driver) 114 executed in the kernel space 124 of the Windows operating system 112 from the multimedia data flows (e.g., camera related data flows) DS, thereby allowing the multimedia data flow model (which may include vender-specific software modules) 116 to deal with at least the multimedia data flows DS in a processing style (e.g., Android/Linux V4L2 style) distinct from the Windows AVStream style.
[0015]For better comprehension of technical features of the present invention, comparison between a typical Android data flow design, a typical Windows data flow design, and a proposed data flow design is illustrated in
[0016]The sub-diagram (B) of
[0017]The sub-diagram (C) of
[0018]
[0019]Regarding the kernel space 312 of the Windows operating system, multiple drivers are executed. For example, the drivers may include a kernel streaming driver (ks.sys) 342 that supports kernel-mode processing of streamed data, a sensor front end driver (sensor front end.sys) 344 for accessing the SFE 330, a stage-1 ISP driver (ISP1.sys) 346 for accessing ISP1 332, a stage-2 ISP driver (ISP2.sys) 348 for accessing ISP2 334, and a software module 308 that includes core functions such as ISP1 hardware control and ISP2 hardware control, where the software module 308 is built from compiling a same source code of a software module executed within an Android/Linux operation system.
[0020]As shown in
[0021]Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Claims
What is claimed is:
1. A computing device comprising:
a machine-readable medium, configured to store instructions; and
a processing circuit, configured to load and execute the instructions, wherein the instructions comprise:
a Windows operating system;
an AVStream driver, executable within the Windows operating system, wherein each AVStream pin of the AVStream driver is defined to be decoupled from multimedia data flows; and
a multimedia data flow model, executable within the Windows operating system, wherein the multimedia data flow model is configured to deal with at least the multimedia data flows in a processing style adopted in a non-Windows operating system when being executed.
2. The computing device of
3. The computing device of
4. The computing device of
5. The computing device of
6. The computing device of
7. A data processing method comprising:
executing an AVStream driver within a Windows operating system;
decoupling each AVStream pin of the AVStream driver from multimedia data flows; and
executing a multimedia data flow model within the Windows operating system, to deal with at least the multimedia data flows in a processing style adopted in a non-Windows operating system.
8. The data processing method of
9. The data processing method of
10. The data processing method of
11. The data processing method of
12. The data processing method of