This section is intended to introduce the reader to various aspects of art which may be related to various aspects of the present invention that are described below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
It is known to put user data into a digital television (TV) data stream. It is also known that closed captioning data may be obtained from user data. An improved method of processing closed captioning data in the form of user data is desirable.
In the drawings:
One or more specific embodiments of the present invention will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions may be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
In an exemplary embodiment of the present invention, when a video decoder finds a user data from a header, to find all user data in that header, the decoder checks the user data buffer and finds possibly an additional second and/or third item of user data.
A tuner block 102 tunes to selected frequency and delivers an MPEG transport stream to a transport stream demultiplexer (TSD) block 104, which de-multiplexes the MPEG transport digital stream into video data, audio data and other data (form example, a PES (packet element stream)). The video data and PES data is delivered to a video packet buffer 106. An MPEG video decoder 112 is used to decode the video data and to deliver the decoded video data to a display processor 116.
The MPEG video decoder 112 delivers the PES data, which it separated from the MPEG video data when decoding the video data, to a user data parser block 110. The PES data may comprise closed captioning data in the form of user data. The closed captioning data may be extracted by the user data parser block 110. The user data parser delivers the extracted closed captioning data to an analog video encoder block 108 and a graphic and on-screen display (OSD) generator block 114. The graphic and OSD generator block 114 delivers graphic and OSD data to the display generator 116. The display processor 116, which also receives decoded MPEG video data from the MPEG video decoder block 112, combines the graphic and OSD data with the MPEG video data into a digital display signal for display on a main display 118. In addition, the display processor 116 delivers video data to the analog video encoder 108.
The analog video encoder block 108 combines the closed captioning data with the video data received from the display processor 116 and makes a combined analog output signal available. In an exemplary embodiment of the present invention, the analog video encoder block 108 generates NTSC (or PAL) video with decoded video and closed captioning data on a vertical blanking interval (VBI). For film mode support, a buffer adapted to hold data corresponding to a frame after next may be used because iteration of the same data at two consecutive frames in the same field may be needed.
The format for closed captioning data in user data is defined in industry standards such as the Advanced Television Systems Committee (ATSC) standard ATSC 53 and the Electronic Industries Alliance (EIA) standard EIA708. Some formats include EIA608 closed captioning data. In an exemplary embodiment of the present invention, the closed captioning data delivered to the analog video encoder 108 comprises EIA608 closed captioning data.
In the process 200, a comparison of data in a buffer is made with a user data start code until there is no user data start code in the buffer. The user data structure is defined on each application standard, such as the closed captioning data structure defined in ATSC 53. By knowing the user data structure, the process 200 can identify the next user data start code easily.
The process shown in
If no current field buffer is available at block 204, a determination is made regarding whether a next field buffer is available at block 206. If a next field buffer is available at block 206, two bytes of closed captioning data are stored to the next field buffer at block 210. After the data is stored at block 210, the process ends at block 220.
If no next field buffer is available at block 206, a determination is made whether the data can be ignored at block 212. If the data can be ignored, it is dropped at block 216 and the process ends at block 220.
If the data cannot be ignored at block 212, a determination is made as to whether there is room for an additional buffer at block 214. If there is no room for an additional buffer, the data is dropped at block 216 and the process ends at block 220. If there is room for an additional buffer at block 214, two bytes of data are saved to a new after next field buffer at block 218 and the process ends at block 220.
If the current mode is not “none,” control is passed to a decoding subroutine at block 316 and the process ends at block 318.
If the current mode is other than “none” at block 304, a determination is made about whether an ATSC_id can be found after getting a user_data_start_code at block 306. If the ATSC_id is found at block 306 the current mode is determined to be ATSC_or_SCTE21 at block 310. Process flow then proceeds to the decoding subroutine at block 316 and the process ends at block 318.
If no ATSC_id is found at block 306, a determination is made about whether a user data type code of a predetermined value (for example, 0×0 3) can be found at block 308. If the predetermined user data type code is not found at block 308, the current mode of operation is set to “none” at block 314 and process flow continues to the decoding subroutine 316. Thereafter, the process ends at block 318.
If the predetermined user data type code is found at block 308, the current operating mode is set to SCTE20 at block 312. Process flow then proceeds to the decoding subroutine at block 316 and the process ends at block 318.
At block 404, a determination is made as to whether an ATSC_id is present. If no ATSC_id is present, a determination is made about whether a wait timer has expired at block 408. If the wait timer has not expired, the current mode of operation is kept and the process ends at block 426. If the wait timer has expired at block 408, the current mode of operation is set to “none” at block 410 and the process ends at block 426.
If an ATSC_id is present at block 404, a determination is made about whether the data includes a predetermined user data type code or group of user data type codes. In the exemplary embodiment shown in
If the predetermined user data type code is identified at block 406, processing continues based on the specific value of the user data type code. A determination is made about whether the user data type code is 3 at block 412. If the user data type code is determined to be 3 at block 412, process flow continues to block 418 where a decode ATSC type user data flag is initialized, along with the wait timer. The process then ends at block 426.
If the predetermined value of the user data type code is not 3 at block 412, the decoding mode of operation is set to SCTE21 and the wait timer is initialized at block 414. Process flow then proceeds to block 416, where a determination is made about whether the value of the predetermined user data type code is 4. If the predetermined user data type code is determined to be 4 at block 416, additional EIA—608 data is decoded at block 422 and the process ends at block 426.
If the predetermined value of the user data type code is not 4 at block 416, then a determination is made about whether the value of the user data type code is 5 at block 420. If the value of the user data type code is not 5 at block 420, the process ends at block 426. If the value of the user data type code is determined to be 5 at block 420, a decode operation is performed on luma_PAM_data at block 424. The process subsequently ends at block 426.
While the invention may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the invention as defined by the following appended claims.
This application claims priority based on U.S. Provisional Application Ser. No. 60/811,891 filed on Jun. 8, 2006, which is incorporated by reference as though completely set forth herein.
Number | Name | Date | Kind |
---|---|---|---|
5699124 | Nuber et al. | Dec 1997 | A |
5917559 | Um | Jun 1999 | A |
6097439 | Goldberg | Aug 2000 | A |
6348951 | Kim | Feb 2002 | B1 |
6373526 | Kessler et al. | Apr 2002 | B1 |
6961382 | Yu et al. | Nov 2005 | B1 |
7071993 | Kim | Jul 2006 | B2 |
7161631 | Katayama et al. | Jan 2007 | B2 |
7339992 | Chang et al. | Mar 2008 | B2 |
7391470 | Kim | Jun 2008 | B2 |
7502072 | Onomatsu et al. | Mar 2009 | B2 |
20050162551 | Baker | Jul 2005 | A1 |
20060130117 | Lee et al. | Jun 2006 | A1 |
20070022461 | Lee | Jan 2007 | A1 |
Number | Date | Country |
---|---|---|
2000115787 | Apr 2000 | JP |
2004080825 | Mar 2004 | JP |
Number | Date | Country | |
---|---|---|---|
20070285566 A1 | Dec 2007 | US |
Number | Date | Country | |
---|---|---|---|
60811891 | Jun 2006 | US |