CN111970552A - Method and system for playing DVB panoramic video stream in real time based on set top box - Google Patents
Method and system for playing DVB panoramic video stream in real time based on set top box Download PDFInfo
- Publication number
- CN111970552A CN111970552A CN202010771690.6A CN202010771690A CN111970552A CN 111970552 A CN111970552 A CN 111970552A CN 202010771690 A CN202010771690 A CN 202010771690A CN 111970552 A CN111970552 A CN 111970552A
- Authority
- CN
- China
- Prior art keywords
- display
- memory
- memory block
- top box
- state
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000007726 management method Methods 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 14
- 238000009877 rendering Methods 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 4
- 230000002195 synergetic effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
- H04N21/4586—Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6112—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving terrestrial transmission, e.g. DVB-T
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
The invention provides a method and a system for playing DVB panoramic video stream in real time by a set top box, wherein the system comprises a main control unit, a shared memory management unit, a state scheduling unit, a cache adjusting unit and the set top box with the DVB function; the memory area is established through the shared memory management unit and shared by the set-top box decoding module and the display module, the decoding module provides decoded video key frames under the synergistic effect of other units, the display module performs 3D spherical modeling, and the video key frames are used as textures and are rendered on the spherical model for display. The invention solves the problem that the DVB panoramic video stream can not be directly played on the set-top box in real time, the time precision can reach millisecond level, and the method is suitable for various video services taking panoramic video live broadcast as a carrier; the memory configuration requirement of the set top box end is reduced. And a pure software implementation mode is adopted, the existing intelligent set top box can be modified in a software upgrading mode, and the real-time service of the DVB panoramic video stream is brought to thousands of households.
Description
Technical Field
The invention belongs to the technical field of video transmission, and particularly relates to a method and a system for playing a panoramic video stream transmitted on a set top box of a terminal in real time based on a DVB (digital video broadcasting) channel.
Background
Panoramic video covers an all-around view angle range, and is a main application in Virtual Reality (VR).
Compared with the shortage of bandwidth of an IP broadband network of telecommunication, the DVB-based broadcast and television broadcasting network has the advantages that a full frequency point has 1G in-house bandwidth (QAM64), a single frequency point can transmit 36-38Mbps video stream, and the bandwidth problem of real-time transmission of ultra-high definition panoramic video (4K) can be solved. The ultra-high-definition panoramic video is transmitted through the DVB broadcast channel, and the panoramic video service is provided for 2 hundred million users of radio and television operators by using a mode of a television live broadcast channel, so that the method is an excellent way for virtual reality floor popularization and commercialization.
In recent years, broadcasting and television operators provide set-top box terminals for service presentation and interaction at a user side, the set-top box terminals are gradually transited from high-definition set-top boxes to intelligent set-top boxes based on TVOS or Android, the intelligent set-top boxes are generally provided with 4K decoders and GPU modules, 4K panoramic video streams can be decoded, rendered and displayed, and meanwhile, 3DOF interaction of angle adjustment can be performed by using a set-top box remote controller; the intelligent set-top box for broadcasting and TV generally has a dual-mode structure of coaxial broadcast network access and IP broadband network access, can directly support panoramic video playing from an IP broadband channel, and the set-top box needs to go through a series of processes such as frequency locking, table searching, descrambling, decoding, displaying and the like when playing video stream signals transmitted from a DVB broadcast network.
DVB video playing does not consider a service scene of a panoramic video stream, and an improvement scheme in the prior art also has the problems of time loss on the second level and incapability of rendering and displaying in real time, so that the prior art still needs to be developed.
Disclosure of Invention
The technical problem to be solved by the invention is as follows: a method and a system for playing DVB panoramic video stream in real time are provided, which are used for solving the problem that the DVB panoramic video stream cannot be played in real time on a set top box at present.
In order to solve the technical problems, the invention adopts the technical scheme that:
the invention provides a method for playing DVB panoramic video stream in real time based on a set top box, which comprises the following steps:
the shared memory management unit determines the size of the memory block unit according to the resolution information and the color space of the panoramic video stream, determines the number of the memory blocks according to the use condition of the memory resources of the set top box, and the display module sequentially applies for the memory blocks to form a memory area;
the main control unit initializes a set top box live broadcast related module and constructs a play production line; the live broadcast relevant module comprises a frequency locking module, a table searching module, a descrambling module and a decoding module, and an output buffer area of the decoding module is set as the memory area;
the main control unit enables the playing pipeline, starts a data stream, and the state scheduling unit coordinates two tasks of frame taking and display sending;
and the set top box display module receives the video frames in the memory blocks of the display tasks, and renders the video frames as textures on the spherical model for users to watch and interact.
Further, the shared memory management unit determines the size of the memory block unit according to the resolution information and the color space of the panoramic video stream, and includes the steps of:
Sb=W×H×B
wherein: w is the width of the panoramic video stream, H is the height of the panoramic video stream, B is the number of bytes of a single pixel, and Sb is the size of the memory block unit.
Further, the determining the number of the memory blocks according to the use condition of the memory resources of the set top box, and the sequentially applying for the memory blocks by the display module to form a memory area, includes:
obtaining the size Sm of the spare memory resources of the current set top box, comparing the size Sb of the memory block units, and calculating the number S of the memory blocks according to the following modes:
the upper limit of S is: [ (Sm-Sb x 2)/Sb ] + 2;
the lower limit of S is 3;
and according to the size Sb of the memory blocks and the number S of the memory blocks, sequentially initiating application of the memory blocks with the size of S Sb by a display module to form a memory area.
Further, the memory blocks in the memory area are organized by linear numbers, the numbers are marked as NUM, and the NUM ranges are: and 0 to S-1, the memory area sequentially records the address, decoding state and display state of each memory block.
Further, the main control unit enables the playing pipeline, starts the data stream, and the state scheduling unit further includes before coordinating the two tasks of frame fetching and display:
the state scheduling unit initializes the memory area, sets the decoding state of each memory block to R, sets the display state of each memory block to D, and starts two tasks of frame fetching and display sending.
Further, the coordinating the frame fetching task and the display sending task by the state scheduling unit includes:
setting a frame taking queue, recording the frame taking queue as DQ, wherein the frame taking queue stores the number NUM of each memory block, and the decoding state and the display state of each memory block;
setting a display sending container, which is marked as WL, and storing the serial number NUM of each memory block, the decoding state and the display state of each memory block by the display sending container;
the frame fetching task blocking type continuously obtains an output video frame of the decoding module, analyzes the address of the output video frame, namely the address of a memory block in a memory area, positions a corresponding memory block number NUM, adds the memory block number NUM into a frame fetching queue, and sets the decoding state of the memory block number NUM as A;
and (3) the display task blocking type continuously judges the number of elements of the frame taking queue, if the frame taking queue is not empty, the head element of the frame taking queue, namely the memory block number NUM, is obtained, the cache adjusting unit is used for judging the synchronization information of the decoding module, and the operation is carried out according to the synchronization result.
Further, the determining, by the cache adjusting unit, the synchronization information of the decoding module, and performing an operation according to a synchronization result includes:
if the synchronization information is PLAY, and corresponding to audio and video synchronization, the memory block corresponding to the memory block number NUM is delivered to a display module, the display state of the memory block is set to be Q, and the memory block is listed from the frame fetching queue and added into a display container;
if the synchronous information is REPEAT, if the corresponding video is faster than the audio, the synchronous information is repeatedly polled until the synchronous information is updated to PLAY;
if the synchronous information is DISCARD DISCARD and the corresponding video is slower than the audio, dequeuing the element from the frame taking queue and adding the dequeued element into a display sending container;
traversing the display sending container by the display sending task, if the display state of the element is D, releasing the memory block delivery decoding module corresponding to the memory block number NUM, setting the decoding state of the memory block to be R, and deleting the element from the display sending container;
and judging the element number of the display sending container by the display sending task, if not, initiating the memory block of the display module to repeat the application work through the shared memory management unit, and setting the display state of the memory block to be D.
The invention also provides a system for playing the DVB panoramic video stream in real time based on the set top box, which comprises a main control unit, a shared memory management unit, a state scheduling unit, a cache adjusting unit and the set top box with the DVB function;
the master control unit is used for scheduling the shared memory management unit, the state scheduling unit and the cache adjusting unit, coordinating DVB (digital video broadcasting) live broadcast related resources of the set top box and connecting spherical rendering display of the panoramic video;
the shared memory management unit is used for elastically applying and managing memory blocks to form a memory area which is shared by the set top box decoding module and the display module;
the state scheduling unit is used for starting two tasks of frame taking and display sending, and coordinating the acquisition of the video frames and the delivery of the display module by adopting state scheduling based on a container queue type;
the buffer adjustment unit and the auxiliary state scheduling unit correct rendering display based on the synchronous information and optimize uniform speed display at millisecond level.
The invention has the beneficial effects that: the method and the system for playing the DVB panoramic video stream in real time based on the set top box solve the problem that the DVB panoramic video stream cannot be directly played on the set top box in real time, have the time precision reaching millisecond level, and are suitable for various video services taking panoramic video live broadcast as a carrier. The invention adopts an elastic memory sharing mode, and can still normally operate under the condition that the memory resources of the set-top box are in shortage, thereby reducing the memory configuration requirement of the set-top box end. And a pure software implementation mode is adopted, and the existing large number of intelligent set top boxes can be modified in a software upgrading mode, so that the real-time service of the DVB panoramic video stream is brought to thousands of households.
Drawings
Fig. 1 is a functional block diagram illustrating the functions of each component and core.
Fig. 2 is a main step diagram illustrating the important steps of the present invention.
FIG. 3 is a diagram illustrating an organization of memory regions
Fig. 4 is a state scheduling diagram describing a scheduling method of a state scheduling unit.
Fig. 5 is a step diagram of a frame fetching task, which describes a step flow of the frame fetching task.
Fig. 6 is a schematic diagram of the transmission and display correction based on the synchronization judgment, describing a method for correcting the synchronization information by the transmission and display.
FIG. 7 is a display task step diagram illustrating the flow of the display task steps.
Detailed Description
In order to explain technical contents, structural features, and objects and effects of the present invention in detail, the following detailed description is given with reference to the accompanying drawings in conjunction with the embodiments.
As shown in fig. 1 and fig. 2, the present invention provides a method for playing DVB panoramic video stream in real time based on a set-top box, which includes:
the shared memory management unit determines the size of the memory block unit according to the resolution information and the color space of the panoramic video stream, determines the number of the memory blocks according to the use condition of the memory resources of the set top box, and the display module sequentially applies for the memory blocks to form a memory area;
the main control unit initializes a set top box live broadcast related module and constructs a play production line; the live broadcast relevant module comprises a frequency locking module, a table searching module, a descrambling module and a decoding module, wherein an output buffer area of the decoding module is set as the memory area;
the main control unit enables the playing pipeline, starts a data stream, and the state scheduling unit coordinates two tasks of frame taking and display sending;
and the set top box display module receives the video frames in the memory blocks of the display tasks, and renders the video frames as textures on the spherical model for users to watch and interact.
Referring to fig. 3, a schematic diagram of a memory area is shown, where the size Sb of a memory block unit is uniformly set to be W × H × B according to resolution information (width is denoted as W and height is denoted as H) and a color mode (number of bytes per pixel is denoted as B) agreed by a DVB channel front-end panoramic video service; preferably, if the decoding module of the set-top box can provide the resolution information and the color mode of the DVB channel video stream, the shared memory management unit may dynamically set the size Sb of the memory block during operation.
And according to the use condition of the memory resources of the set top box, the display module elastically applies for the memory blocks to form a memory area.
Obtaining the size (marked as Sm) of the spare memory resource of the current set top box, comparing the size Sb of the memory blocks, calculating the number (marked as S) of the memory blocks according to the following mode, wherein the upper limit of S is as follows: [ (Sm-Sb x 2)/Sb ] +2, where, adding 2 is to consider the multi-buffer mechanism of the display module, the lower limit of S is 3; preferably, the number S of memory blocks may be flexibly selected, and when the configuration of the set-top box memory is low, the lower limit may be selected, that is: only 3 memory blocks are needed, and the panoramic video can be played normally in real time.
According to the size Sb of the memory blocks and the number S of the memory blocks, the display module sequentially initiates applications of the memory blocks with the size of S Sb to form a memory area, the memory blocks in the memory area are organized by linear numbers, the numbers are recorded as NUM, and the NUM range is as follows: 0 to S-1; the memory area records the address, decoding state and display state of each memory block in sequence.
The decoding state of the memory block is a binary state, and is occupied (denoted as state a) and released (denoted as state R).
If the memory block is occupied, the memory block is used by a decoding module, and the decoding module can output a video frame to the memory block; when the memory block is released, the memory block is released by the decoding module, and the decoding module does not output the video frame to the memory block any more; the decoding module should first occupy the memory block, then output the video frame for the display module to consume, and then release the memory block.
The display state of the memory block is a binary state, which is the acquisition (recorded as state D) and the transmission (recorded as state Q), respectively.
The display module of the acquisition module applies for occupying the memory block for display consumption; the memory block is sent to display system for consumption and subsequent rendering output.
Before the main control unit enables the play pipeline and starts the data stream, the state scheduling unit coordinates two tasks of frame fetching and display sending, the method also comprises the following steps:
the state scheduling unit initializes the memory area, sets the decoding state of each memory block to R, sets the display state of each memory block to D, and starts two tasks of frame fetching and display sending; furthermore, the frame fetching task is used for the memory area to obtain the output video frame of the set top box decoding module; and the display sending task is used for sending the video frames stored in the memory block to the display module and performing post-rendering display.
Referring to fig. 4, a state scheduling diagram of the present invention, in which a state scheduling unit coordinates the frame fetching task and the display sending task, includes:
setting a frame taking queue, recording the frame taking queue as DQ, wherein the frame taking queue stores the number NUM of each memory block, and the decoding state and the display state of each memory block;
setting a display sending container, recording the display sending container as WL, and storing the serial number NUM of each memory block, the decoding state and the display state of each memory block by the display sending container;
the frame fetching task blocking type continuously obtains an output video frame of a decoding module, analyzes a video frame address, namely the address of a memory block in a memory area, positions a corresponding memory block number NUM, adds the memory block into a frame fetching queue, and sets the decoding state of the memory block as A; fig. 5 is a diagram illustrating the steps of the framing task.
As shown in fig. 7, a display task sending step diagram is shown, where a display task sending blocking type continuously determines the number of elements in a frame fetching queue, if not empty, a frame fetching queue head element, that is, a memory block number NUM is obtained, a cache adjusting unit is used to determine synchronization information of a decoding module, and an operation is performed according to a synchronization result;
if the synchronization information is PLAY and corresponds to audio and video synchronization, the memory block corresponding to the memory block number NUM is delivered to a display module, the display state of the memory block is set to be Q, and the memory block is listed from the frame fetching queue and added into a display sending container;
if the synchronous information is REPEAT, and the corresponding video is faster than the audio, then REPEAT polling the synchronous information until the synchronous information is updated to PLAY;
if the synchronous information is DISCARD DISCARD and the corresponding video is slower than the audio, dequeuing the element from the frame taking queue and adding the dequeued element into a display sending container; FIG. 6 is a schematic diagram of the display correction.
Then, traversing a display task through a display container, if the display state of an element is D, releasing the memory block delivery decoding module corresponding to the memory block number NUM, setting the decoding state of the memory block to be R, and deleting the element from the display container; and judging the element number of the display sending container by the display sending task, if not, initiating the memory block of the display module to repeat the application work through the shared memory management unit, and setting the display state of the memory block to be D.
Examples
Taking a set top box with a Haisi Hi3798CV200 as a main chip, 2GB as a memory and 4.4 android operating system as an example, a specific implementation is described below for a panoramic video stream of 4KP30(3840x2160, code rate 35Mbps, and ARGB8888 as a display mode).
The memory block size is determined, and according to the panoramic video stream information in the embodiment, W is 3840, H is 2160, and B is 4, and the memory block size is 3840 × 2160 × 4 bytes, that is, 33177600 bytes, about 31.64 MB.
Determining the number of the memory blocks, wherein the minimum number of the memory blocks is 3, calculating the upper limit of the number of the memory blocks according to the memory resource condition of the current set top box, and selecting the flexible number without loss of generality, wherein the memory space of about 506.25MB is occupied by taking the number of the memory blocks as an example.
The display module sequentially applies for memory blocks through an interface of native _ window _ queue _ buffer _ and _ wait to form a linear memory area, NUM (number) is 16 and is numbered from 0 to 15, and the memory area stores addresses, decoding states and display states of the corresponding memory blocks.
The main control unit initializes the set-top box live broadcast related module, comprising: frequency locking, table searching, descrambling, decoding modules and constructing a playing pipeline. When the set-top box decoding module is initialized, the External Buffer function of the Haisi chip decoding module is utilized to set the output Buffer area of the decoding module as the linear memory area, and the size of the output Buffer area is set as 16, so that the memory sharing of the display module and the decoding module is realized.
The state scheduling unit initializes the memory area, sets the decoding state of each memory block to R, sets the display state of each memory block to D, and starts two tasks of frame fetching and display sending.
The main control unit enables the playing pipeline and starts the data stream.
The status scheduling unit creates a frame fetch queue DQ and a presentation container WL.
And the frame fetching task uses an HI _ UNF _ VO _ Acquireframe interface to obtain a video frame in a blocking mode, analyzes the memory address of the video frame once the video frame is obtained, checks the linear number NUM of the video frame, puts the linear number NUM into a DQ queue, and sets the decoding state of the DQ queue to be A.
Sending a display task to block and continuously judge the element number of a DQ queue, if the DQ queue is not empty, obtaining a DQ queue head element (memory block number NUM), and obtaining Haisi decoding module synchronization information through a HIMPISYNCVidJudge interface by using a cache adjusting unit, wherein the following three synchronization information situations can occur along with the playing of a panoramic video live stream.
The synchronization information is SYNC _ PROC _ PLAY, and if the synchronization information is corresponding to PLAY, the memory block corresponding to the memory block number NUM is delivered to a display module (queue buffer), the display state of the memory block is set to be Q, and the memory block is listed from DQ and added into WL; when the display module is delivered, the time averaging can be carried out by taking 3 frames as a group of units, namely, the delivery speed is controlled to be 33.33ms for one frame, so that the rendering of the post-stage display is smoother, and the user experience is smoother;
if the synchronization information is SYNC _ PROC _ REPEAT, corresponding to REPEAT, the synchronization information is polled repeatedly until the synchronization information is updated to PLAY;
the synchronization information is SYNC _ PROC _ DISCARD, and if the element corresponds to DISCARD, the element is dequeued from DQ and added to WL.
And traversing the WL by the display task, if the display state of the element is D, releasing the memory block delivery decoding module corresponding to the memory block number NUM, setting the decoding state of the memory block to be R, and deleting the element from the WL.
And the display sending task judges the number of WL elements, if not, the shared memory management unit initiates the memory block of the display module to repeat the application work, and the display state of the memory block is set to be D.
A display module (combined with OpenGL) of the set top box adopts a timing display mode or a dirty data refreshing mode, and renders video frames of the shared memory blocks as textures to a spherical model for users to watch and interact.
In summary, the method and system for playing the DVB panoramic video stream in real time by the set top box provided by the invention: the method solves the problem that the DVB panoramic video stream cannot be directly played on the set top box in real time, the time precision can reach millisecond level, and the method is suitable for various video services taking panoramic video live broadcast as a carrier. The invention adopts an elastic memory sharing mode, and can still normally operate under the condition that the memory resources of the set-top box are in shortage, thereby reducing the memory configuration requirement of the set-top box end. And a pure software implementation mode is adopted, and the existing large number of intelligent set top boxes can be modified in a software upgrading mode, so that the real-time service of the DVB panoramic video stream is brought to thousands of households.
The above description is only an embodiment of the present invention, and not intended to limit the scope of the present invention, and all modifications of equivalent structures and equivalent processes performed by the present specification and drawings, or directly or indirectly applied to other related technical fields, are included in the scope of the present invention.
Claims (8)
1. A method for playing DVB panoramic video stream in real time based on a set top box is characterized in that the method comprises the following steps:
the shared memory management unit determines the size of the memory block unit according to the resolution information and the color space of the panoramic video stream, determines the number of the memory blocks according to the use condition of the memory resources of the set top box, and the display module sequentially applies for the memory blocks to form a memory area;
the main control unit initializes a set top box live broadcast related module and constructs a play production line; the live broadcast relevant module comprises a frequency locking module, a table searching module, a descrambling module and a decoding module, and an output buffer area of the decoding module is set as the memory area;
the main control unit enables the playing pipeline, starts a data stream, and the state scheduling unit coordinates two tasks of frame taking and display sending;
and the set top box display module receives the video frames in the memory blocks of the display tasks, and renders the video frames as textures on the spherical model for users to watch and interact.
2. The method according to claim 1, wherein the shared memory management unit determines the size of the memory block unit according to the resolution information and the color space of the panoramic video stream, and the method comprises the steps of calculating the size of the memory block unit:
Sb=W×H×B
wherein: w is the width of the panoramic video stream, H is the height of the panoramic video stream, B is the number of bytes of a single pixel, and Sb is the size of the memory block unit.
3. The method according to claim 2, wherein the determining the number of the memory blocks according to the use status of the memory resources of the set-top box, and the sequentially applying for the memory blocks by the display module to form a memory area comprises:
obtaining the size Sm of the spare memory resources of the current set top box, comparing the size Sb of the memory block units, and calculating the number S of the memory blocks according to the following modes:
the upper limit of S is: [ (Sm-Sb x 2)/Sb ] + 2;
the lower limit of S is 3;
and according to the size Sb of the memory blocks and the number S of the memory blocks, sequentially initiating application of the memory blocks with the size of S Sb by a display module to form the memory area.
4. The method according to claim 3, wherein the memory blocks in the memory area are organized by linear numbers, the numbers are denoted as NUM, and the NUM ranges are: and 0 to S-1, the memory area sequentially records the address, decoding state and display state of each memory block.
5. The method for playing DVB panoramic video stream in real time according to claim 1, wherein the enabling of the playing pipeline by the main control unit, the starting of the data stream, and the coordination of the two tasks of frame fetching and display sending by the state scheduling unit further comprise:
the state scheduling unit initializes the memory area, sets the decoding state of the memory block to R, sets the display state of the memory block to D, and starts two tasks of frame fetching and display sending.
6. The method for playing DVB panoramic video stream in real time according to claim 1, wherein the status scheduling unit coordinates the frame fetching task and the display delivering task, and comprises:
setting a frame fetching queue, recording the frame fetching queue as DQ, wherein the frame fetching queue stores the serial number NUM of the memory block and the decoding state and the display state of the memory block;
setting a display sending container, which is marked as WL, and storing the serial number NUM of the memory block and the decoding state and the display state of the memory block by the display sending container;
obtaining an output video frame of a decoding module continuously in a frame fetching task blocking mode, analyzing the video frame address, namely the address of a memory block in a memory area, positioning a corresponding memory block number NUM, adding the memory block into a frame fetching queue, and setting the decoding state of the memory block to be A;
and (3) sending a display task to perform blocking type continuous judgment on the number of elements of the frame taking queue, if the number of the elements is not empty, obtaining a DQ queue head element, namely a memory block number NUM, judging the synchronization information of a decoding module by using a cache adjusting unit, and performing operation according to a synchronization result.
7. The method for playing DVB panoramic video stream in real time according to claim 6, wherein the using the buffer adjustment unit to determine the synchronization information of the decoding module and perform the operation according to the synchronization result comprises:
if the synchronization information is PLAY, and corresponding to audio and video synchronization, the memory block corresponding to the memory block number NUM is delivered to a display module, the display state of the memory block is set to be Q, and the memory block is listed from the frame fetching queue and added into the display sending container;
if the synchronous information is REPEAT, if the corresponding video is faster than the audio, the synchronous information is repeatedly polled until the synchronous information is updated to PLAY;
if the synchronous information is DISCARD DISCARD and the corresponding video is slower than the audio, dequeuing the element from the frame taking queue and adding the dequeued element into the display sending container;
traversing the display sending container by the display sending task, if the display state of the element is D, releasing the memory block delivery decoding module corresponding to the memory block number NUM, setting the decoding state of the memory block to be R, and deleting the element from the display sending container;
and judging the element number of the display sending container by the display sending task, if not, initiating the memory block of the display module to repeat the application work through the shared memory management unit, and setting the display state of the memory block to be D.
8. A system for playing DVB panoramic video stream in real time based on a set top box is characterized by comprising a main control unit, a shared memory management unit, a state scheduling unit, a cache adjusting unit and a set top box with a DVB function;
the master control unit is used for scheduling the shared memory management unit, the state scheduling unit and the cache adjusting unit, coordinating DVB (digital video broadcasting) live broadcast related resources of the set top box and connecting spherical rendering display of the panoramic video;
the shared memory management unit is used for elastically applying and managing memory blocks to form a memory area which is shared by the set top box decoding module and the display module;
the state scheduling unit is used for starting two tasks of frame taking and display sending, and coordinating the acquisition of the video frames and the delivery of the display module by adopting state scheduling based on a container queue type;
the buffer adjustment unit and the auxiliary state scheduling unit correct rendering display based on the synchronous information and optimize uniform speed display at millisecond level.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010771690.6A CN111970552A (en) | 2020-08-04 | 2020-08-04 | Method and system for playing DVB panoramic video stream in real time based on set top box |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010771690.6A CN111970552A (en) | 2020-08-04 | 2020-08-04 | Method and system for playing DVB panoramic video stream in real time based on set top box |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111970552A true CN111970552A (en) | 2020-11-20 |
Family
ID=73363403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010771690.6A Pending CN111970552A (en) | 2020-08-04 | 2020-08-04 | Method and system for playing DVB panoramic video stream in real time based on set top box |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111970552A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114222166A (en) * | 2021-09-29 | 2022-03-22 | 重庆创通联达智能技术有限公司 | Multi-path video code stream real-time processing and on-screen playing method and related system |
CN115037974A (en) * | 2022-06-14 | 2022-09-09 | 中山亿联智能科技有限公司 | Set top box supporting multi-mode switching |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160007086A1 (en) * | 2013-02-25 | 2016-01-07 | Saronikos Trading And Services, Unipessoal Lda | Method for Selecting and Displaying Television Programs Transmitted Through an Internet Network, and Related Apparatus and System |
CN106375844A (en) * | 2016-09-20 | 2017-02-01 | 威睿科技(武汉)有限责任公司 | VR panoramic live video transmission gateway and method |
WO2017198143A1 (en) * | 2016-05-18 | 2017-11-23 | 中兴通讯股份有限公司 | Video processing method, video playback method, set-top box, and vr apparatus |
CN108289231A (en) * | 2017-06-20 | 2018-07-17 | 深圳市佳创视讯技术股份有限公司 | A kind of panorama player of fusion |
CN110475122A (en) * | 2018-05-10 | 2019-11-19 | 腾讯科技(深圳)有限公司 | Method and device for live video stream broadcasting |
-
2020
- 2020-08-04 CN CN202010771690.6A patent/CN111970552A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160007086A1 (en) * | 2013-02-25 | 2016-01-07 | Saronikos Trading And Services, Unipessoal Lda | Method for Selecting and Displaying Television Programs Transmitted Through an Internet Network, and Related Apparatus and System |
WO2017198143A1 (en) * | 2016-05-18 | 2017-11-23 | 中兴通讯股份有限公司 | Video processing method, video playback method, set-top box, and vr apparatus |
CN106375844A (en) * | 2016-09-20 | 2017-02-01 | 威睿科技(武汉)有限责任公司 | VR panoramic live video transmission gateway and method |
CN108289231A (en) * | 2017-06-20 | 2018-07-17 | 深圳市佳创视讯技术股份有限公司 | A kind of panorama player of fusion |
CN110475122A (en) * | 2018-05-10 | 2019-11-19 | 腾讯科技(深圳)有限公司 | Method and device for live video stream broadcasting |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114222166A (en) * | 2021-09-29 | 2022-03-22 | 重庆创通联达智能技术有限公司 | Multi-path video code stream real-time processing and on-screen playing method and related system |
CN114222166B (en) * | 2021-09-29 | 2024-02-13 | 重庆创通联达智能技术有限公司 | Multi-channel video code stream real-time processing and on-screen playing method and related system |
CN115037974A (en) * | 2022-06-14 | 2022-09-09 | 中山亿联智能科技有限公司 | Set top box supporting multi-mode switching |
CN115037974B (en) * | 2022-06-14 | 2023-08-25 | 中山亿联智能科技有限公司 | Set top box supporting multi-mode switching |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3002471B2 (en) | Program distribution device | |
CN105721921B (en) | A kind of adaptive selection method of multiwindow Video Decoder | |
US7046677B2 (en) | Method and apparatus for time-multiplexed processing of multiple digital video programs | |
EP1708506B1 (en) | Rapid media channel changing mechanism and access network node comprising same | |
US5646693A (en) | Memory utilization for video decoding and display with 3:2 pull-down | |
RU2378765C1 (en) | Device and method for receiving multiple streams in mobile transmission system | |
KR20030071481A (en) | System and methods for providing video-on-demand services for broadcasting systems | |
JPH10294757A (en) | Optimization method for band width to transmit compressed video data stream | |
CN101248666A (en) | Demanding system and method using dynamic broadcast scheduling | |
CN101132521A (en) | Method and device for switching IPTV channels | |
CN111970552A (en) | Method and system for playing DVB panoramic video stream in real time based on set top box | |
CN109218748A (en) | Video transmission method, device and computer readable storage medium | |
Salters | Memory-fast DRAMs for sharper TV | |
CN102547228A (en) | High-definition network video monitoring system based on local storage and resolution hierarchical transmission | |
KR20080004561A (en) | Rapid media channel changing mechanism and access network node comprising same | |
US20020026501A1 (en) | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices | |
CN104735410B (en) | A kind of narrow bandwidth video transmission method and system lower than 4K/S | |
CN103686077A (en) | Double buffering method applied to realtime audio-video data transmission of 3G wireless network | |
CN116419018A (en) | Vehicle-mounted multi-screen simultaneous display method based on USB wired screen projection | |
CN104010204B (en) | Image information processing method and device | |
CN112887742B (en) | Live stream processing method, device, equipment and storage medium | |
Yun et al. | Architectures for multi-source multi-user video compositing | |
US7890651B2 (en) | Sending content from multiple content servers to clients at time reference points | |
US8151308B1 (en) | Modifying the behavior of a multimedia transport system in response to detected capabilities of a client system | |
CN204681528U (en) | A kind of obtain the short-sighted frequency of TV programme and by network share system |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201120 |
|
RJ01 | Rejection of invention patent application after publication |