A demultiplexing and filtering PAT data distribution method

By using a filter engine in a digital TV set-top box for hardware resource management and data distribution, we solve the problem of understanding the high cost of reusing hardware resources and waste of resources, achieving more efficient data filtering and shorter playback startup time.

CN115633220BActive Publication Date: 2025-04-25HANGZHOU NATCHIP SCI & TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211274373.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-10-18
Publication Date
2025-04-25
Estimated Expiration
2042-10-18

AI Technical Summary

Technical Problem

In digital TV set-top boxes, demultiplexing hardware resources is expensive, and applying for hardware resources takes a long time and requires large caches, resulting in waste of resources and extended playback startup time.

Method used

Through the filtering engine, the demultiplexed data filtering channel is managed to implement the same hardware resources for data with the same PID, and the data distribution technology is used to allow tasks that need to obtain the same PID data to read data directly from the virtual data channel.

Benefits of technology

Save understanding the use of multiplexed hardware resources, reduce hardware cache applications, shorten hardware resource allocation time, improve data filtering efficiency, shorten playback startup time, and improve user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115633220B_ABST
    Figure CN115633220B_ABST
Patent Text Reader

Abstract

The present invention discloses a demultiplexing and filtering PAT data distribution method. The set-top box first starts the conditional reception task and applies for a data filtering channel from the filtering engine; if the program needs to be updated, the channel search task is started again, and the channel search task applies for a data filtering channel from the filtering engine. If the filtering engine receives only one request for a PAT data filtering channel, when the hardware resources are not occupied, the hardware resources are allocated to the request, and the conditional reception task reads data through a physical data filtering channel; if two requests are received, when the hardware resources are not occupied, the filtering engine allocates hardware and software resources to the requests of the conditional reception task and the channel search task respectively, and the filtering engine reads data from the physical data filtering channel and copies it to a virtual data filtering channel; the conditional reception task and the channel search task read data through physical and virtual data filtering channels respectively. The present invention saves the occupation of demultiplexing hardware resources and reduces the hardware resource allocation time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention belongs to the technical field of digital set-top boxes, and in particular relates to a method for distributing PAT data for demultiplexing and filtering digital television set-top boxes. Background Art

[0002] Program Specific Information (PSI) is the basic information source for digital video broadcasting (DVB) services. All DVB-related services need to obtain the necessary information of the service through PSI before they can be carried out. PSI describes the content carried by the transport stream, including the description of the basic streams that construct each program and the description of the program itself. All PSI information is broadcast from the central system in the form of a table, which contains the physical characteristics and program information of the entire broadcast network. If you need to implement various DVB services, extracting the information required by the service from PSI is the basis.

[0003] The DVB standard has defined various table filtering methods. Each table has a unique packet identifier (PID). Different sub-tables in the same table have unique table identifiers (TID). Therefore, the most basic method to filter PSI information is to filter the required table by PID and TID. In addition, even if filtering is performed once by PID and TID, sometimes the amount of information is still too large. Therefore, the DVB standard stipulates that the required table can be further accurately filtered by matching the header information of the table. The basic principle of filtering PSI information is: match PID, TID and header information to obtain the required table. Generally speaking, the PSI filtering system in the set-top box needs to be composed of hardware demultiplexing and filtering engine methods.

[0004] Since PSI carries all the service information of the entire DVB, there will inevitably be multiple services that require the same table information. For example, searching for TV programs requires obtaining program information from PAT (Program Association Table, which defines all programs in the current TS stream, and its PID is 0x0000. It is the root node of PSI. To search for programs, you must start from the PAT table) and PMT (Program Map Table, which specifies the PID of one or more programs) in PSI; CA (Conditional Access, which is an application based on a hybrid cryptographic system, and its main function is to prevent illegal intrusion into the digital broadcasting network and allow authorized users to watch specific programs while unauthorized users cannot watch) services also require PAT, PMT, CAT, ECM, and EMM information. Each table filter requires a demultiplexing hardware resource. If a table larger than the hardware resource is filtered at the same time, it is necessary to wait for the previous table to be filtered before filtering the next table. If there are many tables with the same PID, resources will be wasted. Therefore, how to save demultiplexing hardware resources to filter PSI table data with the same PID is an important issue in the design of set-top box systems. When filtering PSI / SI, you need to pay attention to the following features: the same PSI data needs to be used by multiple services; each PSI data filter requires hardware demultiplexing resources, and adding a hardware resource increases the cost. Summary of the invention

[0005] The purpose of the present invention is to provide a method for distributing PAT data for demultiplexing and filtering of digital TV set-top boxes in order to solve the problems of high cost of demultiplexing hardware resources, long time required for applying for hardware resources and large buffer required in the field of set-top boxes.

[0006] The method of the present invention comprises applying for a PAT data filtering channel and releasing the PAT data filtering channel.

[0007] The application PAT data filtering channel is specifically:

[0008] Step (1) The set-top box waits for the user to send a program play instruction;

[0009] Step (2) The set-top box receives a program play instruction sent by the user and starts a conditional access task, which applies to the filtering engine for a data filtering channel of the association table PAT whose program packet identifier PID is 0x0000;

[0010] Step (3) The set-top box determines whether the program needs to be updated. If it needs to be updated, the set-top box starts the channel search task, which applies to the filtering engine for a data filtering channel of the association table PAT whose program packet identifier PID is 0x0000; if it does not need to be updated, the set-top box returns to step (1);

[0011] Step (4) If the filtering engine receives a request for a data filtering channel of a PAT with a PID of 0x0000, then step (5) is executed; if the filtering engine receives two requests for data filtering channels of a PAT with a PID of 0x0000, then step (10) is executed;

[0012] Step (5) The filtering engine determines whether the hardware resource is occupied. If not, the filtering engine allocates the hardware resource, i.e., the physical data filtering channel, to the request of the data filtering channel and executes step (6). If occupied, the allocation fails and the process returns to step (1).

[0013] Step (6) the filtering engine notifies the conditional receiving task to start data reading;

[0014] Step (7) The conditional receiving task requests the filtering engine to read data;

[0015] Step (8) The filtering engine reads data from the physical data filtering channel;

[0016] Step (9) The filtering engine sends data to the conditional reception task through the physical data filtering channel, and the conditional reception task reads the data; and step (15) is executed;

[0017] Step (10) The filtering engine determines whether the hardware resources are occupied. If not, the filtering engine allocates hardware resources, i.e., physical data filtering channels, to the request of the data filtering channel of the conditional reception task, and allocates software resources, i.e., virtual data filtering channels, to the request of the data filtering channel of the search task, and executes step (11); if occupied, the allocation fails, and the process returns to step (1);

[0018] Step (11) the filtering engine notifies the conditional reception task and the channel search task to start data reading;

[0019] Step (12) The conditional reception task and the channel search task respectively request the filtering engine to read data;

[0020] Step (13) The filter engine reads data from the physical data filter channel, caches it, and copies it to the virtual data filter channel;

[0021] Step (14) The filtering engine sends data to the conditional reception task through the physical data filtering channel, and the conditional reception task reads the data; the filtering engine sends data to the channel search task through the virtual data filtering channel, and the channel search task reads the data; and executes step (15);

[0022] Step (15) plays the program.

[0023] The release PAT data filtering channel is specifically:

[0024] Step (A) the set-top box waits for the user to send a program closing instruction;

[0025] Step (B) the set-top box receives the program closing instruction sent by the user, and all tasks send an instruction to release the data filtering channel to the filtering engine;

[0026] Step (C) If the filtering engine receives a request to release a data filtering channel of the PAT with PID 0x0000, step (D) is executed; if two requests to release a data filtering channel of the PAT with PID 0x0000 are received, step (E) is executed;

[0027] Step (D) the filtering engine releases the hardware resources, namely the physical data filtering channel; the filtering engine notifies the conditional receiving task of the successful release, and the conditional receiving task is closed; and step (F) is executed;

[0028] Step (E) The filtering engine first releases software resources, namely the virtual data filtering channel, and the filtering engine notifies the channel search task of successful release, and the channel search task is closed; then the hardware resources, namely the physical data filtering channel, are released, and the filtering engine notifies the conditional reception task of successful release, and the conditional reception task is closed; and step (F) is executed;

[0029] Step (F) is released successfully and the program is closed.

[0030] The method of the present invention adopts filtering engine technology, and performs hardware resource management on the demultiplexing data filtering channel through the filtering engine, thereby realizing the same PID using the same hardware resources, saving the demultiplexing hardware resource occupation, reducing the hardware cache application, and reducing the hardware resource allocation time. The filtering engine adopts data distribution technology, allowing tasks that need to obtain the same PID data to read data directly from the virtual data channel, improving the data filtering efficiency, enabling tasks to obtain data faster, thereby shortening the playback startup time, and providing users with a better experience. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] Figure 1 A schematic diagram of the process of applying for a PAT data filtering channel for the present invention;

[0032] Figure 2 A timing diagram for applying for a PAT data channel in the method of the present invention;

[0033] Figure 3 A timing diagram for obtaining PAT data in the method of the present invention;

[0034] Figure 4 The figure is a flow chart of releasing the PAT data filtering channel according to the present invention. DETAILED DESCRIPTION

[0035] A demultiplexing and filtering PAT data distribution method includes: applying for a PAT data filtering channel and releasing the PAT data filtering channel.

[0036] The specific process of applying for PAT data filtering channel is as follows Figure 1 As shown:

[0037] Step (1) The set-top box waits for the user to send a program play instruction;

[0038] Step (2) The set-top box receives a program play instruction sent by the user and starts a conditional access task, which applies to the filtering engine for a data filtering channel of the association table PAT whose program packet identifier PID is 0x0000;

[0039] Step (3) The set-top box determines whether the program needs to be updated. If it needs to be updated, the set-top box starts the channel search task, which applies to the filtering engine for a data filtering channel of the association table PAT whose program packet identifier PID is 0x0000; if it does not need to be updated, the set-top box returns to step (1);

[0040] Step (4) If the filtering engine receives a request for a data filtering channel of a PAT with a PID of 0x0000, then step (5) is executed; if the filtering engine receives two requests for data filtering channels of a PAT with a PID of 0x0000, then step (10) is executed;

[0041] Step (5) The filtering engine determines whether the hardware resource is occupied. If not, the filtering engine allocates the hardware resource, i.e., the physical data filtering channel, to the request of the data filtering channel and executes step (6). If occupied, the allocation fails and the process returns to step (1).

[0042] Step (6) the filtering engine notifies the conditional receiving task to start data reading;

[0043] Step (7) The conditional receiving task requests the filtering engine to read data;

[0044] Step (8) The filtering engine reads data from the physical data filtering channel;

[0045] Step (9) The filtering engine sends data to the conditional reception task through the physical data filtering channel, and the conditional reception task reads the data; and step (15) is executed;

[0046] Step (10) The filtering engine determines whether the hardware resources are occupied. If not, the filtering engine allocates hardware resources, i.e., physical data filtering channels, to the request of the data filtering channel of the conditional reception task, and allocates software resources, i.e., virtual data filtering channels, to the request of the data filtering channel of the search task, and executes step (11); if occupied, the allocation fails, and the process returns to step (1);

[0047] Step (11) the filtering engine notifies the conditional reception task and the channel search task to start data reading;

[0048] Step (12) The conditional reception task and the channel search task respectively request the filtering engine to read data;

[0049] Step (13) The filter engine reads data from the physical data filter channel, caches it, and copies it to the virtual data filter channel;

[0050] Step (14) The filtering engine sends data to the conditional reception task through the physical data filtering channel, and the conditional reception task reads the data; the filtering engine sends data to the channel search task through the virtual data filtering channel, and the channel search task reads the data; and executes step (15);

[0051] Step (15) plays the program.

[0052] Different services apply for virtual demultiplexing data filtering channels according to their needs. Data channels without the same packet identifier PID obtain resources from hardware demultiplexing, and data channels with the same PID obtain resources from the filtering engine. The working sequence diagram is as follows Figure 2 When the business needs to obtain data, it obtains data from the filtering engine according to different handles. The handle can indicate whether the engine obtains data from hardware resources. The working sequence diagram is as follows Figure 3 shown.

[0053] The specific process of releasing the PAT data filtering channel is as follows Figure 4 As shown:

[0054] Step (1) The set-top box waits for the user to send a program closing instruction;

[0055] Step (2) The set-top box receives the program closing instruction sent by the user, and all tasks send an instruction to release the data filtering channel to the filtering engine;

[0056] Step (3) If the filtering engine receives a request to release a data filtering channel of the PAT with PID 0x0000, then step (4) is executed; if two requests to release a data filtering channel of the PAT with PID 0x0000 are received, then step (5) is executed;

[0057] Step (4) The filtering engine releases hardware resources, namely, the physical data filtering channel; the filtering engine notifies the conditional reception task of successful release, and the conditional reception task is closed; and step (6) is executed;

[0058] Step (5) The filtering engine first releases software resources, i.e., the virtual data filtering channel, and the filtering engine notifies the channel search task of successful release, and the channel search task is closed; then the hardware resources, i.e., the physical data filtering channel, are released, and the filtering engine notifies the conditional reception task of successful release, and the conditional reception task is closed; and step (6) is executed;

[0059] Step (6) is released successfully and the program is closed.

Claims

1. A demultiplexing and filtering PAT data distribution method, comprising applying for a PAT data filtering channel and releasing the PAT data filtering channel; characterized in that: The application PAT data filtering channel is specifically: Step (1) The set-top box waits for the user to send a program play instruction; Step (2) The set-top box receives a program play instruction sent by the user and starts a conditional access task, which applies to the filtering engine for a data filtering channel of the association table PAT whose program packet identifier PID is 0x0000; Step (3) the set-top box determines whether the program needs to be updated. If it needs to be updated, the set-top box starts the channel search task, which applies to the filtering engine for a data filtering channel of the association table PAT whose program packet identifier PID is 0x0000; If no update is required, return to step (1); Step (4) If the filtering engine receives a request for a data filtering channel of a PAT with a PID of 0x0000, then step (5) is executed; if the filtering engine receives two requests for data filtering channels of a PAT with a PID of 0x0000, then step (10) is executed; Step (5) The filtering engine determines whether the hardware resource is occupied. If not, the filtering engine allocates the hardware resource, i.e., the physical data filtering channel, to the request of the data filtering channel and executes step (6). If occupied, the allocation fails and the process returns to step (1). Step (6) the filtering engine notifies the conditional receiving task to start data reading; Step (7) The conditional receiving task requests the filtering engine to read data; Step (8) The filtering engine reads data from the physical data filtering channel; Step (9) The filtering engine sends data to the conditional receiving task through the physical data filtering channel, and the conditional receiving task reads the data; Execute step (15); Step (10) The filtering engine determines whether the hardware resources are occupied. If not, the filtering engine allocates hardware resources, i.e., physical data filtering channels, to the request of the data filtering channel of the conditional reception task, and allocates software resources, i.e., virtual data filtering channels, to the request of the data filtering channel of the search task, and executes step (11); if occupied, the allocation fails, and the process returns to step (1); Step (11) the filtering engine notifies the conditional reception task and the channel search task to start data reading; Step (12) the conditional reception task and the channel search task respectively request the filtering engine to read data; Step (13) The filter engine reads data from the physical data filter channel, caches it, and copies it to the virtual data filter channel; Step (14) The filtering engine sends data to the conditional reception task through the physical data filtering channel, and the conditional reception task reads the data; the filtering engine sends data to the channel search task through the virtual data filtering channel, and the channel search task reads the data; and executes step (15); Step (15) playing the program; The release PAT data filtering channel is specifically: Step (A) the set-top box waits for the user to send a program closing instruction; Step (B) the set-top box receives the program closing instruction sent by the user, and all tasks send an instruction to release the data filtering channel to the filtering engine; Step (C) If the filtering engine receives a request to release a data filtering channel of the PAT with PID 0x0000, then step (D) is executed; if two requests to release a data filtering channel of the PAT with PID 0x0000 are received, then step (E) is executed; Step (D) the filtering engine releases the hardware resources, namely the physical data filtering channel; the filtering engine notifies the conditional receiving task of the successful release, and the conditional receiving task is closed; and step (F) is executed; Step (E) The filtering engine first releases software resources, namely the virtual data filtering channel, and the filtering engine notifies the channel search task of successful release, and the channel search task is closed; then the hardware resources, namely the physical data filtering channel, are released, and the filtering engine notifies the conditional reception task of successful release, and the conditional reception task is closed; and step (F) is executed; Step (F) is released successfully and the program is closed.

Citation Information

Patent Citations

  • Single frequency point quick channel search method of digital television

    CN101656842A

  • Method for filtering PSI / SI information of digital television set top box

    CN114640889A