IP Library Granted Patent US 9,749,504
Granted Patent B2
US 9,749,504 · App. 13/628,024 · Granted Aug 29, 2017

Optimizing timed text generation for live closed captions and subtitles

Inventors: Scott C. Labrozzi (Cary, NC); James Christopher Akers (Raleigh, NC)
Assignee: Cisco Technology, Inc.
H04N5/04H04N5/44513H04N21/4884H04N2005/44526
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,749,504
App. No.
13/628,024
Granted
Aug 29, 2017
Kind
B2
Abstract

A method is provided in certain example embodiments, and may include receiving source timed text data and an associated time stamp, and rendering a representation of the received source timed text data within a textual array. The textual array includes at least one row having textual data associated with the received source timed text data contained therein. The method may further include producing at least one data document including row data associated with one or more rows of the textual array when the textual data of the at least one row has changed from a previously rendered on-screen representation of previously received source timed text data. The row data includes a change in textual data for one or more rows from a previously produced caption data document.

Claims (47)

1. A method, comprising:

receiving source timed text data and an associated time stamp;

rendering a representation of the received source timed text data within a textual array, the textual array including at least one row having textual data contained therein;

producing at least one data document including row data and a command field, when the textual data of the at least one row has changed from a previously rendered representation of previously received source timed text data, a value of the command field indicating a screen update or a screen erase, the row data including a change in textual data for the at least one row from a previously produced caption data document;

creating at least one display element based on the command field, the at least one display element including one or more display element rows containing textual data from the row data of the at least one data document, wherein the at least one display element includes an associated display time;

assigning a row identifier for each row of the at least one display element, wherein the row identifier is the same as a row identifier of a previous display element when textual data of the row of the at least one display element matches textual data of a corresponding row of the previous display element;

generating a markup language document from the at least one display element, the markup language document including the textual data of the one or more display element rows;

determining whether a current row identifier has been output for a current fragment in response to a determination that a begin time of the at least one display element is not within a next fragment; and

transmitting media content and the markup language document.

2. The method of claim 1 , wherein the creating the at least one display element includes copying textual data from a previous display element to the at least one display element when a value of a command field of at least one data document is not indicative of either a screen update or a screen erase.

3. The method of claim 1 , wherein the markup language document includes the textual data of the one or more display element rows having display times within a predetermined time period.

4. The method of claim 3 , wherein the predetermined time period is between a time identified by the associated time stamp and a predetermined time offset value.

5. The method of claim 3 , wherein the markup language document includes textual data only of rows having a row identifier that has not previously been outputting during the predetermined time period.

6. Logic encoded in non-transitory tangible media that includes code for execution and, when executed by a processor, operable to perform operations comprising:

receiving source timed text data and an associated time stamp;

rendering a representation of the received source timed text data within a textual array, the textual array including at least one row having textual data contained therein;

producing at least one data document including row data and a command field, when the textual data of the at least one row has changed from a previously rendered representation of previously received source timed text data, a value of the command field indicating a screen update or a screen erase, the row data including a change in textual data for the at least one row from a previously produced caption data document;

creating at least one display element based on the command field, the at least one display element including one or more display element rows containing textual data from the row data of the at least one data document, wherein the at least one display element includes an associated display time;

assigning a row identifier for each row of the at least one display element, wherein the row identifier is the same as a row identifier of a previous display element when textual data of the row of the at least one display element matches textual data of a corresponding row of the previous display element;

generating a markup language document from the at least one display element, the markup language document including the textual data of the one or more display element rows;

determining whether a current row identifier has been output for a current fragment in response to a determination that a begin time of the at least one display element is not within a next fragment; and

transmitting media content and the markup language document.

7. The logic of claim 6 , wherein the creating the at least one display element includes copying textual data from a previous display element to the at least one display element when a value of a command field of at least one data document is not indicative of either a screen update or a screen erase.

8. The logic of claim 6 , wherein the markup language document includes the textual data of the one or more display element rows having display times within a predetermined time period.

9. The logic of claim 8 , wherein the predetermined time period is between a time identified by the associated time stamp and a predetermined time offset value.

10. The logic of claim 8 , wherein the markup language document includes textual data only of rows having a row identifier that has not previously been outputting during the predetermined time period.

11. An apparatus, comprising:

a memory element;

a processor operable to execute instructions associated with electronic code; and

a timed text generator module;

the apparatus configured to

receive source timed text data and an associated time stamp;

render a representation of the received source timed text data within a textual array, the textual array including at least one row having textual data contained therein;

produce at least one data document including row data and a command field, when the textual data of the at least one row has changed from a previously rendered representation of previously received source timed text data, a value of the command field indicating a screen update command or a screen erase command, the row data including a change in textual data for the at least one row from a previously produced caption data document,

create at least one display element based on the command field, the at least one display element including one or more display element rows containing textual data from the row data of the at least one data document, wherein the at least one display element includes an associated display time;

assign a row identifier for each row of the at least one display element, wherein the row identifier is the same as a row identifier of a previous display element when textual data of the row of the at least one display element matches textual data of a corresponding row of the previous display element;

generate a markup language document from the at least one display element, the markup language document including the textual data of the one or more display element rows;

determine whether a current row identifier has been output for a current fragment in response to a determination that a begin time of the at least one display element is not within a next fragment; and

transmit media content and the markup language document.

12. The apparatus of claim 11 , wherein the apparatus is further configured to copy textual data from a previous display element to the at least one display element when a value of a command field of at least one data document is not indicative of either a screen update or a screen erase.

13. The apparatus of claim 11 , wherein the markup language document includes the textual data of the one or more display element rows having display times within a predetermined time period.

14. The apparatus of claim 13 , wherein the markup language document includes textual data only of rows having a row identifier that has not previously been outputting during the predetermined time period.

15. The method of claim 1 , further comprising:

adding the current row identifier and a begin time and an end time of a row to the markup language document in response to a determination that the current row identifier has not been output for the current fragment.

16. The logic of claim 6 , the operations further comprising:

adding the current row identifier and a begin time and an end time of a row to the markup language document in response to a determination that the current row identifier has not been output for the current fragment.

17. The apparatus of claim 11 , wherein the apparatus is further configured to add the current row identifier and a begin time and an end time of a row to the markup language document in response to a determination that the current row identifier has not been output for the current fragment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2012
From: LABROZZI, SCOTT C.; AKERS, JAMES CHRISTOPHER
To: CISCO TECHNOLOGY, INC.
Reel/Frame 029087/0940 →
Continuity (2)
Provisional Application 61539802 · Sep 27, 2011
Related Publication 20130076981A1 · Mar 28, 2013