WO1995034165A1 - Subtitling video data - Google Patents

Subtitling video data Download PDF

Info

Publication number
WO1995034165A1
WO1995034165A1 PCT/GB1995/001353 GB9501353W WO9534165A1 WO 1995034165 A1 WO1995034165 A1 WO 1995034165A1 GB 9501353 W GB9501353 W GB 9501353W WO 9534165 A1 WO9534165 A1 WO 9534165A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
video
subtitling
look
input
Prior art date
Application number
PCT/GB1995/001353
Other languages
French (fr)
Inventor
David John Atkins
Original Assignee
Screen Subtitling Systems Ltd.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Screen Subtitling Systems Ltd. filed Critical Screen Subtitling Systems Ltd.
Priority to AU26785/95A priority Critical patent/AU2678595A/en
Priority to GB9625754A priority patent/GB2304016A/en
Publication of WO1995034165A1 publication Critical patent/WO1995034165A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/419Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which encoding of the length of a succession of picture-elements of the same value along a scanning line is the only encoding step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0884Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of additional display-information, e.g. menu for programme or channel selection
    • H04N7/0885Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of additional display-information, e.g. menu for programme or channel selection for the transmission of subtitles

Definitions

  • the present invention relates to adding subtitling data to video signals and to processing video signals having subtitling data added thereto.
  • teletext transmitted page It is also known to include subtitling data as a teletext transmitted page.
  • character data is supplied during vertical blanking intervals of the video transmission.
  • Each video frame includes blanking intervals at the top and bottom of each image, that may be considered as transmitted lines which do not contain video information. This in turn may be considered as additionally available bandwidth, allowing data to be transmitted therein, such as the aforementioned teletext data or Nicam stereo audio data etc.
  • a procedure for adding subtitles to video images is described in European Patent Publication No. 0,400,990.
  • the system provides an environment in which a user may generate titles (not necessarily translated subtitles) whereafter this data may be added to video frames processed by a video tape recorder.
  • a more sophisticated system for adding subtitles is disclosed in United Kingdom Patent Publication No. 2,170,371.
  • non-Roman characters may be combined with video frames by storing the character image data on an independent data carrying medium, such as an optical disc.
  • time codes are stored on the actual video data and in operation these time codes are used to access full bandwidth character information stored independently on the optical disc medium.
  • a severe disadvantage of this system is that sophisticated additional hardware is required at a receiving station.
  • insufficient bandwidth is provided in video blanking periods for subtitling of this type to be transmitted in a form which would allow it to be selectively combined with the video images at the receiver.
  • apparatus for generating subtitling data for association with video signals comprising character pixel generating means arranged to generate a representation of displayable characters as a pixel array; compression means arranged to produce output codes representing lines of said pixel array in compressed form; and synchronising means arranged to synchronise said output codes with said output video frames.
  • an advantage of the present invention is that characters are generated as an array of pixels, thereby allowing pixographic characters to be used as subtitles without reference to a small set of character codes.
  • the compression means is then arranged to produce output codes representing lines of the pixel array in compressed form, thereby reducing the bandwidth requirement for the subtitling data.
  • the subtitling data in compressed form may be associated with the video signals (for example by placing said compressed data within the video blanking periods) without requiring unrealistic levels of bandwidth.
  • the subtitling date is associated with the video signals by being added to vertical blanking periods of a conventional television broadcast signal.
  • the subtitling data is associated with the video signals by being added to an associated data transmission channel and this data transmission channel may be associated with the video frames conveyed in compressed form, such as in accordance with MPEG 2 recommendations.
  • apparatus encoding image data representing picture elements, comprising a look-up table configured to produce table data in response to input address data; means for supplying contiguous picture element data as input address data to said look-up table; and analysing means for analysing said table data read from said look-up table, wherein said analysing means analyses a first table data and generating run-length output data or, in response to said analysis, said analysing means requests new address data, from said input data, so as to produce new table data, on detecting table data representing input data having runs of similar data extending beyond the input address.
  • the analysing means determines the number of input pixels encoded by an output code, such as elements previously used as addressing elements are not encoded by said code and additional contiguous picture elements are read to provide a new address to said look-up table.
  • apparatus for adding subtitling data to a video image, wherein said subtitling data is received with associated video signals comprising means for decompressing associated subtitling data at video rate; means for assembling said subtitling data as pixel values; and means for combining said pixel values with associated video frames at video rate.
  • a method of generating subtitling data for association with video signals comprising generating a representation of displayable characters as a pixel array; producing output codes representing lines of said pixel array in compressed form; and synchronising said output codes with video frames.
  • compression is effected by a process of run-length encoding upon lines of the pixel array.
  • the run-length encoding is performed by addressing a look-up table and, preferably, a plurality of look-up table addresses are implemented before an output code is generated.
  • Figure 1 shows a video monitor, displaying a video image with subtitles added thereto
  • Figure 2 shows a system for generating subtitles, including an off-line assembly station, a subtitle synchroniser and a subtitle encoder;
  • FIG 3 details the assembly station shown in Figure 2;
  • Figure 4 details the subtitle synchroniser shown in Figure 2;
  • FIG 5 details the subtitle encoder shown in Figure 2;
  • FIG. 6 and Figure 7 illustrate the operation of the subtitle encoder shown in Figure 5;
  • Figure 8 shows a receiving station for receiving subtitles generated by the system shown in Figure 2;
  • Figure 9 illustrates the operation of the receiving system shown in Figure 8.
  • a video monitor 15 is shown in Figure 1, that may form part of a conventional television receiver.
  • the video monitor displays a conventional television picture 16, over which subtitles 17 have been overlaid, by a process known as keying.
  • the subtitles are placed within a notional horizontal band towards the bottom half of the picture, in response to signals received by the receiver itself or by a separate decoding apparatus.
  • it is possible to selectively decide whether the subtitles are to be combined with the displayed video image.
  • Video data keyed within region 17 is derived from pixel data representing a region 50 lines high and 720 pixel locations across. Subject to bandwidth availability, it is possible to transmit any image within this region, such that the generation of keyable subtitling characters is not restricted to characters available from a character generator provided at the reception end. Thus, with a region of this size, it is possible to display characters from any desired character set, such as Chinese, Japanese or
  • Subtitling characters tend to be displayed in solid colours, therefore with a definition of 750 pixel positions over 50 lines, it is possible to supply single bit data for each pixel location.
  • originating data of this type is usually referred to as a bit map.
  • keyable image data having multi-bit values, for example to indicate image data having a plurality of colours or brightnesses. Filtering techniques are also employed to "soften" the edges of the key.
  • the assembly station 201 At an assembly station 201 an operator reviews video sequences and manually enters subtitling character codes.
  • the assembly station 201 is a conventional configuration and is arranged to produce files of data consisting of video time codes with associated strings of subtitling text. For each video sequence a plurality of such files may be produced when subtitling is required in a plurality of languages. Thus, each file would consist of time code listings with an associated text string of the appropriate language.
  • a removable data carrying medium such as a 314" floppy disc
  • the assembling operation is effectively performed "off-line" to produce files which relate subtitling strings to specific frames within video sequences, identified by time codes.
  • the system shown in Figure 2 also includes a subtitle synchroniser
  • the synchroniser 203, encoder 204 and modulation devices 205 and 206 are arranged to operate in real time, allowing subtitling characters to be associated with video information while said video information is being transmitted. In this way, decisions relating to the subtitling process do not need to be made until the actual time for transmission occurs, thereby enhancing system flexibility and eliminating the need for full bandwidth storage of video information with its associated subtitling data.
  • the assembly station 201 is detailed in Figure 3 and, as previously stated, represents a station of substantially conventional form.
  • Input video source material from a video tape recorder 301 or similar device supplies video signals to a processor 302.
  • the video tape recorder 301 also supplies time code to the processor 302, such that said processor may identify specific frames of the video sequence with reference to said time code.
  • a manually operable keyboard 303 allows an operator to manually select characters for inclusion in video sequences as subtitles. As character subtitles are being generated, they may be displayed via a visual display unit
  • video sequences, with or without subtitles, may be displayed on a video monitor 305.
  • mapping time code to character strings is written to files on a removable floppy disc 306, using disc drive 307.
  • the subtitle synchroniser 203 and the subtitling encoder 204 operate in real time allowing the subtitling data to be associated with the video data as the video data is being transmitted or recorded.
  • the synchroniser 203 is detailed in Figure 4, shown connected to an automated video feed device 401.
  • the video feed device 401 is loaded with a plurality of source video tapes, allowing video signals to be produced (video out) for broadcast purposes from a collection of pre-recorded tapes. Thus, it is possible for several hours, possibly several days, of video material to be generated by the video feed device 401 with substantially little manual intervention.
  • the automated feed such as a Sony LMS, supplies an identification of the current video sequence selection to the synchroniser 203.
  • the video source material to be played is selected and, while playing, video time code is supplied to the synchroniser 203.
  • the synchroniser 203 receives a disc 202 of subtitling files and these files are read by floppy disc drive 402 under the control of a microprocessor based system 403.
  • the microprocessor based system uses a conventional central processing unit, such as an Intel 88486 DX2 device, with associated program memory. Data read via the floppy disc drive 402 is assembled by the microprocessor system 403 and written to a local hard storage device 404.
  • the synchroniser 203 also includes a Graphics Signal Processor (GSP) based processing environment 405, configured around a Texas 34010 device.
  • GSP Graphics Signal Processor
  • instruction codes for the GSP are downloaded, from the hard storage device 404, via the microprocessor subsystem 403 and its associated system bus 406.
  • the GSP 405 is configured to synchronise the subtitling files to the incoming time code.
  • the incoming time code read by a time code reader 407, is supplied to the GSP subsystem 405 via the microprocessor subsystem 403 and its system bus 406. Time code is supplied from the reader
  • the processor 403 directs the time code information to the GSP subsystem 405.
  • the time code received by the time code reader 407 is synchronised to the video output signal and the GSP subsystem 405 is arranged to maintain this synchronism, such that, in response to time code coming in, its associated subtitling text is supplied as a synchronised output.
  • the synchronised subtitling text, assembled by the GSP subsystem 405, is supplied to a parallel to serial conversion circuit 408 which, given the processing power of the GSP subsystem 405, is capable of generating eight serial outputs, possibly conveying subtitles in different languages, at video rate.
  • one of these serial outputs of synchronised subtitling characters is supplied to the subtitling encoder 204 via an output port 409.
  • the subtitle encoder 204 is detailed in Figure 5.
  • the encoder is based upon a Texas 34010 GSP subsystem, in which the GSP 501 communicates with a hard disc storage device 502, a two megabyte frame buffer 503, an eight megabyte random access memory device 504 and a serial communications device 505.
  • the eight megabyte random access memory device 504 is used for storing working copies of fonts and program-specific information. Images are constructed within the two megabyte frame buffer 503 which is configured from RAM devices providing a serial access port, allowing the image to be scanned out in real time in synchronism with a video source.
  • the encoder 204 receives character information at video rate in response to time codes received by the synchroniser 203. These character strings are supplied to an input serial port 506, which in turn directs them to the working memory 504 over an internal system bus 507.
  • the GSP 501 processes the information to determine the character data structure. In addition to particular characters, this will contain other information such as font type and font size. In response to this information, the processor 501 produces a list of blitting operations required to generate pixel information, derived from the information available on hard disc 502, from the input character strings.
  • the blit list is executed to produce image pixels that are written to the two megabyte frame buffer 503. Having written pixels to the frame buffer 503, an assessment is made as to the area of coverage within the buffer, resulting in information being generated identifying a bounding rectangular (603) and the position of said rectangle within the displayable area of the final image screen.
  • the processor 501 scans the image retained within the frame buffer 503 line by line, to produce compressed run-length codes that are supplied to an output port 508.
  • a subtitle image has been written to the frame buffer 503 in which the first word, positioned at the top left corner, starts with the letters "HE".
  • the processor 501 has determined that the whole of the subtitle starts from the top left corner of the letter "H", therefore it is necessary to initiate scanning from this position.
  • Arrow 601 represents the starting position for the first scan line. Scan line 601 will result in information being produced to the effect that four white pixels are required, followed by eight black, followed by four white, followed by six black, followed by eleven white, and so on.
  • the relevant information consists of sixteen white pixels, followed by six black, followed by seven white and so on.
  • the run of pixel data will consist of a predetermined number of white or coloured pixels, representing the location of characters, followed by runs of black characters, representing the spaces.
  • subtitling data In the majority of situations in which subtitling data is to be associated with video data and possibly combined with said video data for transmission over a common carrier, bandwidth is limited; therefore it would not be possible to provide pixel information for each pixel within the subtitling region.
  • the data is transmitted under such circumstances by effecting a level of data compression and given the nature of the information involved, run- length encoding has been identified as an attractive option.
  • run-length encoding it would be necessary to examine each pixel individually in series, to make a decision as to whether that pixel value is the same as the previous value, or different from the previous value thereby initiating the start of a new run for the scan line being examined.
  • all of the processing performed by the subtitle synchroniser 203 and the subtitle encoder 204 is effected in real time such that time code received from video source material, being transmitted in real time, may be used to generate and associate subtitles with said video for immediate real time transmission.
  • the processing and encoding of the subtitling pixels must also be performed in real time and this is extremely difficult, given realisable platforms, if it is necessary to serially consider the nature of each pixel in order to detect the start and ends of individual runs.
  • Output codes may be generated for each input code by using the input code as an address or index to a look-up table.
  • an eight bit word could be supplied to a look-up table having a total of two hundred and fifty six addressable locations.
  • the look-up table it is possible for the look-up table to be updated over time, so as to perform an optimisation process in terms of the mapping of input words to output words.
  • a process may continually examine the input data words to determine which are occurring more frequently.
  • the transmitter issues an instruction to the receiver to the effect that, at an appropriate moment, a modification is to be made to the look-up table coding.
  • the transmitter to identify a new optimisation table, issue codes to the receiver to the effect that a modification is required and thereafter make use of the new optimisation table so as to enhance overall performance and to take full advantage of the inherent redundancy in the input data stream.
  • a first problem with using look-up tables in a subtitling environment is that transmission paths are often susceptible to relatively large levels of noise. When noise is present on the line, data transmissions are corrupted and it is known to introduce levels of redundancy in order to facilitate error identification and error correction.
  • the whole point of using look- up tables is to reduce data rates and minimise redundancy, therefore it would be highly undesirable to start introducing new redundancy in order to provide a level of error correction.
  • Noise immunity is substantially improved if the code conversion tables remain fixed and do not attempt to perform adaptive optimisation during transmission.
  • a problem with this approach is that the coding may not make the best use of the inherent redundancy, resulting in a notionally higher bandwidth requirement.
  • a further problem with the look-up table approach is that the coding process is limited to input strings of a length equal to the look-up table index address bus. Thus, for an eight bit look-up table, the input string would be compressed in units of eight bits.
  • runs of substantially more than eight bits may be present, and these large runs could be compressed very efficiently using run-length encoding techniques.
  • conventional run-length encoding techniques serially examine each incoming pixel so as to identify transition points. This requires a substantial processing overhead and cannot be implemented practically for the present application.
  • the subtitles are referred to as being associated with the video, meaning that the subtitles are synchronised to video frames allowing the receiver to overlay or key the subtitling data at the appropriate points in the transmission.
  • the association involves multiplexing the subtitling data with the transmission signal. This may be achieved by placing the subtitling data in vertical frame blanking periods, in a similar fashion to that employed by teletext systems in which character codes are conveyed in vertical blanking periods.
  • Associated pixelated subtitles may be associated with the video frames (i.e. synchronised) for other forms of transmission.
  • MPEG 2 separate channels are provided for the transmission of additional data and these channels may be employed for the transmission of compressed pixelated subtitle data.
  • Other digital transmission systems are becoming increasingly available and again data channels will be provided for the transmission of associated data, such as subtitles, along with other types of non-synchronised data. In substantially all of these cases, the amount of bandwidth for the transmission of associated data is restricted and data compression techniques are required.
  • the subtitling data is associated with the video stream in real-time.
  • processor 501 in order to encode images of the type shown in Figure 6, may be considered with reference to the functional illustration shown in Figure 7.
  • a shift register 701, a look-up table 702 and an output buffer 703 are physically provided as addressable locations within random access memory device 504. Data is read from frame buffer 503 and processor 501 effects the functions of an input modifier 704, an output modifier 705, and analysing logic 706.
  • the look-up table 702 is established within random access memory 504 on system initialisation.
  • the look-up table values remain constant during operation and the inverse table, to perform the decompression process, is retained permanently at decoding stations.
  • the look-up table 702 receives a nine bit address and is therefore capable of holding a total of five hundred and twelve table entries. Character strings, represented as picture elements, will have been assembled in the frame buffer 503. Contiguous data elements are read from the frame buffer 503 line-by-line and supplied to the shift register 701.
  • the shift register 701 provides means for supplying contiguous picture element data, as an input addresses, to the look-up table 702.
  • the output from the look-up table, in the form of table data, is supplied to analysing means in the form of the analysing logic 706, implemented by processor 501.
  • the analysing logic 706 is arranged to analyse table data (which may be considered as first table data) that may then be supplied to the output buffer 703 via the output modifier 705. Alternatively, the analysing logic 706 may request a new address data, although at this stage no output data will have been produced. New address data is supplied to the shift register 701 but the input address is modified, by means of the input modifying circuit 704, in response to address modify data received from the output modifier 705.
  • the addressing of the look-up table 702 is performed in a substantially similar way to that performed for the initial look-up, the input address has been modified by input modifying circuit 704, therefore the addressing of the look ⁇ up table 702 represents an identification of output codes representing an input string larger than the input address. This situation occurs when a long run of similar characters has been identified, thereby facilitating highly optimised run-length encoding. On the second iteration it is possible that the run has continued, therefore again it will be possible for the output modifying circuit to modify the addressing input and for the analysing logic 706 to request new data from the frame buffer 503. Thus, new table data will be produced, possibly suitable for supplying to the output buffer 703, on detecting initial table data representing input data having runs of similar data extending beyond the input address.
  • the look-up table 702 in accordance with the present embodiment, does not produce an output code representing four white characters followed by five black characters. Under these circumstances, it produces a recursive code to the analysing logic 706, informing said analysing means that the input string consists of four white characters followed by a run of black characters. With this information known to the analysing logic 706, the frame buffer 503 is addressed, shown functionally as line 707, resulting in the frame buffer 503 supplying new contiguous data to the shift register
  • the previous data consisting of four white pixels followed by five black pixels
  • the new input data consists of three black pixels, followed by four white pixels, followed by two black pixels.
  • input modifier 704 effectively providing information to the effect that the three black pixels are related to the previously considered input and that the previously considered input has not, as yet, been supplied to the output buffer 703.
  • the output code from the look-up table 702, supplied to the analysing circuit 706, informs said analysing circuit that the previously identified group of five black pixels is completed by a further three black pixels before a transition from black to white occurs. Furthermore, after this transition occurs, four white pixels are transmitted before a transition back to black pixels occurs. Thus, the analysing logic 706 is aware of the transition from white to black but, at this stage, it is unable to determine how many black pixels are present. Consequently, an output code is produced identifying a run of four white pixels, followed by a run of eight black pixels, followed by a run of four white pixels. Thus, sixteen pixels have been coded, nine considered as a first table address with the remaining seven being considered as part of a second table address.
  • the table has been addressed recursively, so as to produce a composite code for a total of sixteen input pixels.
  • the composite code for the sixteen pixels is assembled within the output modifier 705, which, on this occasion, allows the output code to be directed to the output buffer 703.
  • the input modifier 704 is effectively re-set, such that the next contiguous input pixels will be considered as the start of a new run.
  • the shift register 701 is therefore incremented by seven positions, so that the two remaining pixels, representing the start of the run of black pixels at transition 611, may be considered. As the seven previously processed input pixels are clocked out of the shift register 701, seven new input pixels are read from the frame buffer 503, thereby making up a new complement of nine input pixels.
  • the nine input pixels provide an input address to the look-up table 702, representing six black pixels followed by three white pixels. Again, three white pixels extend beyond the input address therefore coding is performed recursively in order to determine the run-length of the white pixels.
  • Nine new pixels are read from the frame buffer 503, representing a run of eight white pixels followed by one black pixel.
  • the analysing logic 706 determines that, from transition 611, six black pixels have been received followed by a total of eleven white pixels.
  • a code to this effect is transmitted, and, given that a total of nine plus eight input pixels have been coded, a further eight pixels are read from the frame buffer 503 and coding continues from position 613 shown in Figure 6.
  • the look-up table 702 receives nine pixel values in parallel and produces codes identifying pixel transitions within the word. Runs of pixels are encoded resulting in codes being transferred to the output buffer 703.
  • the analysing logic 706 is aware of how many pixels have been coded from the input stream, therefore this logic allows an appropriate number of contiguous input pixels to be supplied to the shift register 701. In this way, run-length encoding is optimised so as to reduce the requirement on transition bandwidth.
  • the look-up table 702 in a recursive loop, as illustrated in Figure 7, it is possible to optimise run-length encoding and thereby optimise transitional storage bandwidth, while at the same time substantially increasing processing speed by considering a plurality of input pixel values in parallel. Furthermore, given this level of optimisation, it is not necessary to adapt values stored within the look-up table 702, therefore it is not necessary to transmit details of new look-up table values to receivers, thereby substantially improving noise immunity.
  • a plurality of look-up tables similar to look-up table 702 may be provided.
  • An input to a first look-up table produces an output which may be used as an output code.
  • this output may itself be used as an index to a second level look-up table.
  • Further intermediate look-up tables may be included and a chain would then be terminated by a final look-up table which, under all input conditions, is arranged to produce an output.
  • the provision of a plurality of look-up tables should further optimise compression. However, this will also increase the hardware overhead, therefore a compromise must be made in terms of transmission efficiency and hardware requirements. Similarly, modifications could be made to the word length, with fewer than nine bits being used or more than nine bits being used.
  • Output broadcast signals produced by device 205 of Figure 2 are processed by receiving stations, of the type shown in Figure 8, allowing the transmitted subtitle data to be displayed in combination with television pictures, as shown in Figure 1.
  • Transmitted signals are received by an antenna 801 and supplied to a tuner/demodulator 802.
  • the tuner/demodulator 802 separates the video blanking data from the transmitted television signal and supplies the video- related information to a video processing device 803.
  • the video processing device 803 cleans up the video information and reintroduces new blanking intervals. Additional video processing may be performed so as to supply appropriately encoded video signals to a television monitor 804.
  • a combining device 805 is positioned between the video processing device 803 and the television monitor 804.
  • the combining device 805 is arranged to key subtitling data over the video picture, as shown in Figure 1.
  • the run-length encoded data derived from the video blanking intervals is supplied to a subtitle decoder 806, arranged to decode the compressed subtitling data and to provide a subtitling video signal to the combiner 805 via a switch 807.
  • Switch 807 may be operated manually, so as to selectively add received subtitling information to the picture.
  • switch 807 is activated to its off position if no new subtitling data is received for a predetermined time-out period.
  • the decoded subtitling data is keyed over the television picture and a composite image is supplied to the TV monitor 805, whereupon conventional processing is performed so as to display the television pictures.
  • the subtitle decoder 806 is detailed in Figure 9.
  • codes transmitted to represent the subtitles have a maximum bit length of nine bits. This bit length is determined by the particular coding adopted in order to effect the transmission and is not related to the nine bit address at the transmitter.
  • the transmitted words are conveyed as a serial stream and are therefore coded such that the decoder can identify the start of new words.
  • the decoder 806 includes a shift register 901, a look-up table 902, an address writing device 903, a frame buffer 904 and a serial reading device 905.
  • Incoming bits are supplied to the shift register 901 which in turn supplies a parallel address to the look-up table 902 when a complete word has been received. After a transmitted word has been supplied to the look-up table 902 as an index, the shift register 901 is cleared and the next word is shifted therethrough.
  • Codes supplied to the look-up table 902 represent runs of white pixels and black spaces. These runs are written to appropriate locations in the frame buffer 904 under the control of the address writing circuit 903. In this way, the original array of pixels, representing the subtitle, are built up in the frame buffer, until a complete frame has been assembled. Once a complete frame of subtitling data has been assembled in the frame buffer 904, this information is read serially under the control of serial reading device 905, so as to provide a serial data stream of video information, synchronised to the data supplied to combiner 805 from the video processing circuit 803.
  • the output from the frame buffer 904 is in digital form and the system may include digital-to-analogue converting devices so as to effect the combining of video signals in the analogue domain.
  • the video output from the video processing circuit 803 may be in digital form, allowing the combiner 805 to operate in the digital domain. In either event, assuming switch 807 is in the closed position, the two video signals are combined, resulting in the composite signal being supplied to the TV monitor 804.

Abstract

Subtitling data is generated for association with video signals. The subtitling data may be combined with the video signals, by placing it in vertical blanking periods for example, or it may be supplied over an associated data channel, particularly when the video signal has undergone digital compression. A representation of displayable characters are generated in the form of a pixel array and output codes are generated representing compressed lines of said array. Run-length encoding is performed by recursively addressing a look-up table and shifting new input data to provide addresses to said look-up table as required. The output codes are synchronised to the video frames for transmission, via terrestrial broadcast, cable or satellite, or for storage.

Description

SUBTITLING VIDEO DATA
The present invention relates to adding subtitling data to video signals and to processing video signals having subtitling data added thereto.
Processes for the addition of subtitles to video and cinematographic film are known. Traditionally, the video material was processed by a translating and subtitling department, resulting in new video material being produced with subtitles forming a permanent part of the video image. In the art, the subtitling data is referred to as being "burnt" into the video pictures.
It is also known to include subtitling data as a teletext transmitted page. Under the teletext system, character data is supplied during vertical blanking intervals of the video transmission. Each video frame includes blanking intervals at the top and bottom of each image, that may be considered as transmitted lines which do not contain video information. This in turn may be considered as additionally available bandwidth, allowing data to be transmitted therein, such as the aforementioned teletext data or Nicam stereo audio data etc.
In conventional teletext systems, character codes are transmitted during the blanking periods and these codes are translated into displayable characters at the receiving station. Known teletext systems therefore have restricted character sets and the definition of these character sets is severely restricted. Thus, it is possible using these character sets to generate characters in most roman based languages, including English and most European languages, but this character set does not facilitate the transmission of characters in many other languages. Thus, for example, it is extremely difficult to convey Chinese, Korean or Japanese characters using teletext techniques, therefore subtitles for these languages, using conventional methods, are burnt into the video images.
A procedure for adding subtitles to video images is described in European Patent Publication No. 0,400,990. The system provides an environment in which a user may generate titles (not necessarily translated subtitles) whereafter this data may be added to video frames processed by a video tape recorder. A more sophisticated system for adding subtitles is disclosed in United Kingdom Patent Publication No. 2,170,371. In this system, non-Roman characters may be combined with video frames by storing the character image data on an independent data carrying medium, such as an optical disc. In this way, only time codes are stored on the actual video data and in operation these time codes are used to access full bandwidth character information stored independently on the optical disc medium. Clearly, a severe disadvantage of this system is that sophisticated additional hardware is required at a receiving station.
The above techniques represent subtitles as an array of pixels and within this array substantially any configuration of lettering is possible. However, the severe disadvantage of such an approach is that the subtitling pixels require a substantial amount of bandwidth for storage or transmission.
In particular, insufficient bandwidth is provided in video blanking periods for subtitling of this type to be transmitted in a form which would allow it to be selectively combined with the video images at the receiver.
According to a first aspect of the present invention, there is provided apparatus for generating subtitling data for association with video signals, comprising character pixel generating means arranged to generate a representation of displayable characters as a pixel array; compression means arranged to produce output codes representing lines of said pixel array in compressed form; and synchronising means arranged to synchronise said output codes with said output video frames.
Thus, an advantage of the present invention is that characters are generated as an array of pixels, thereby allowing pixographic characters to be used as subtitles without reference to a small set of character codes. The compression means is then arranged to produce output codes representing lines of the pixel array in compressed form, thereby reducing the bandwidth requirement for the subtitling data. In this way, the subtitling data in compressed form may be associated with the video signals (for example by placing said compressed data within the video blanking periods) without requiring unrealistic levels of bandwidth.
In a preferred embodiment the subtitling date is associated with the video signals by being added to vertical blanking periods of a conventional television broadcast signal. Alternatively, the subtitling data is associated with the video signals by being added to an associated data transmission channel and this data transmission channel may be associated with the video frames conveyed in compressed form, such as in accordance with MPEG 2 recommendations.
According to a second aspect of the present invention, there is provided apparatus encoding image data representing picture elements, comprising a look-up table configured to produce table data in response to input address data; means for supplying contiguous picture element data as input address data to said look-up table; and analysing means for analysing said table data read from said look-up table, wherein said analysing means analyses a first table data and generating run-length output data or, in response to said analysis, said analysing means requests new address data, from said input data, so as to produce new table data, on detecting table data representing input data having runs of similar data extending beyond the input address.
Preferably, the analysing means determines the number of input pixels encoded by an output code, such as elements previously used as addressing elements are not encoded by said code and additional contiguous picture elements are read to provide a new address to said look-up table.
According to a third aspect of the present invention, there is provided apparatus for adding subtitling data to a video image, wherein said subtitling data is received with associated video signals, comprising means for decompressing associated subtitling data at video rate; means for assembling said subtitling data as pixel values; and means for combining said pixel values with associated video frames at video rate.
According to a fourth aspect of the present invention, there is provided a method of generating subtitling data for association with video signals, comprising generating a representation of displayable characters as a pixel array; producing output codes representing lines of said pixel array in compressed form; and synchronising said output codes with video frames.
Preferably, compression is effected by a process of run-length encoding upon lines of the pixel array. In a preferred embodiment, the run-length encoding is performed by addressing a look-up table and, preferably, a plurality of look-up table addresses are implemented before an output code is generated. The invention will now be described by way of example only, with reference to the accompanying drawings, in which:
Figure 1 shows a video monitor, displaying a video image with subtitles added thereto;
Figure 2 shows a system for generating subtitles, including an off-line assembly station, a subtitle synchroniser and a subtitle encoder;
Figure 3 details the assembly station shown in Figure 2;
Figure 4 details the subtitle synchroniser shown in Figure 2;
Figure 5 details the subtitle encoder shown in Figure 2;
Figure 6 and Figure 7 illustrate the operation of the subtitle encoder shown in Figure 5;
Figure 8 shows a receiving station for receiving subtitles generated by the system shown in Figure 2;
Figure 9 illustrates the operation of the receiving system shown in Figure 8.
A video monitor 15 is shown in Figure 1, that may form part of a conventional television receiver. The video monitor displays a conventional television picture 16, over which subtitles 17 have been overlaid, by a process known as keying. The subtitles are placed within a notional horizontal band towards the bottom half of the picture, in response to signals received by the receiver itself or by a separate decoding apparatus. Thus, at the receiving station, it is possible to selectively decide whether the subtitles are to be combined with the displayed video image. Furthermore, in a more sophisticated embodiment, it is possible to select from a plurality of available languages of subtitles, each of which may be keyed onto the video image in synchronism with appropriate frames of displayed video.
Video data keyed within region 17 is derived from pixel data representing a region 50 lines high and 720 pixel locations across. Subject to bandwidth availability, it is possible to transmit any image within this region, such that the generation of keyable subtitling characters is not restricted to characters available from a character generator provided at the reception end. Thus, with a region of this size, it is possible to display characters from any desired character set, such as Chinese, Japanese or
Korean etc.
Subtitling characters tend to be displayed in solid colours, therefore with a definition of 750 pixel positions over 50 lines, it is possible to supply single bit data for each pixel location. Thus, originating data of this type is usually referred to as a bit map. In alternative embodiments, subject to available bandwidth, it is possible to transmit keyable image data having multi-bit values, for example to indicate image data having a plurality of colours or brightnesses. Filtering techniques are also employed to "soften" the edges of the key.
An overview of a system for generating subtitles is shown in Figure
2. At an assembly station 201 an operator reviews video sequences and manually enters subtitling character codes. The assembly station 201 is a conventional configuration and is arranged to produce files of data consisting of video time codes with associated strings of subtitling text. For each video sequence a plurality of such files may be produced when subtitling is required in a plurality of languages. Thus, each file would consist of time code listings with an associated text string of the appropriate language. These files are written to a removable data carrying medium, such as a 314" floppy disc
202. Thus, the assembling operation is effectively performed "off-line" to produce files which relate subtitling strings to specific frames within video sequences, identified by time codes.
The system shown in Figure 2 also includes a subtitle synchroniser
203, a subtitle encoder 204, a video modulation device 205 for conventional broadcasts, a video encryption device 206 for digital distribution and a video recorder 207 for recording subtitles as video pictures. The synchroniser 203, encoder 204 and modulation devices 205 and 206 are arranged to operate in real time, allowing subtitling characters to be associated with video information while said video information is being transmitted. In this way, decisions relating to the subtitling process do not need to be made until the actual time for transmission occurs, thereby enhancing system flexibility and eliminating the need for full bandwidth storage of video information with its associated subtitling data.
The assembly station 201 is detailed in Figure 3 and, as previously stated, represents a station of substantially conventional form. Input video source material from a video tape recorder 301 or similar device supplies video signals to a processor 302. In addition, the video tape recorder 301 also supplies time code to the processor 302, such that said processor may identify specific frames of the video sequence with reference to said time code.
A manually operable keyboard 303 allows an operator to manually select characters for inclusion in video sequences as subtitles. As character subtitles are being generated, they may be displayed via a visual display unit
304 and video sequences, with or without subtitles, may be displayed on a video monitor 305.
The association of specific subtitling strings with video frames is recorded by associating these strings to identifications of time code. Thus, data of this type, mapping time code to character strings, is written to files on a removable floppy disc 306, using disc drive 307.
The subtitle synchroniser 203 and the subtitling encoder 204 operate in real time allowing the subtitling data to be associated with the video data as the video data is being transmitted or recorded. The synchroniser 203 is detailed in Figure 4, shown connected to an automated video feed device 401.
The video feed device 401 is loaded with a plurality of source video tapes, allowing video signals to be produced (video out) for broadcast purposes from a collection of pre-recorded tapes. Thus, it is possible for several hours, possibly several days, of video material to be generated by the video feed device 401 with substantially little manual intervention.
The automated feed, such as a Sony LMS, supplies an identification of the current video sequence selection to the synchroniser 203. The video source material to be played is selected and, while playing, video time code is supplied to the synchroniser 203. The synchroniser 203 receives a disc 202 of subtitling files and these files are read by floppy disc drive 402 under the control of a microprocessor based system 403. The microprocessor based system uses a conventional central processing unit, such as an Intel 88486 DX2 device, with associated program memory. Data read via the floppy disc drive 402 is assembled by the microprocessor system 403 and written to a local hard storage device 404. As this process occurs, individual files, related to the same video sequence, are combined such that, for each time code entry, each of the available subtitles, of differing languages, are combined into the same file. Thus, in this way, the number of files present on the hard disc 404 is reduced and selection of a required subtitling language is made by an appropriate index into the data read from the disc 404.
The synchroniser 203 also includes a Graphics Signal Processor (GSP) based processing environment 405, configured around a Texas 34010 device. On start up, instruction codes for the GSP are downloaded, from the hard storage device 404, via the microprocessor subsystem 403 and its associated system bus 406. The GSP 405 is configured to synchronise the subtitling files to the incoming time code. The incoming time code, read by a time code reader 407, is supplied to the GSP subsystem 405 via the microprocessor subsystem 403 and its system bus 406. Time code is supplied from the reader
407 to the microprocessor subsystem 403 under interrupt control, whereafter said processor 403 directs the time code information to the GSP subsystem 405. The time code received by the time code reader 407 is synchronised to the video output signal and the GSP subsystem 405 is arranged to maintain this synchronism, such that, in response to time code coming in, its associated subtitling text is supplied as a synchronised output. The synchronised subtitling text, assembled by the GSP subsystem 405, is supplied to a parallel to serial conversion circuit 408 which, given the processing power of the GSP subsystem 405, is capable of generating eight serial outputs, possibly conveying subtitles in different languages, at video rate. In the present embodiment, one of these serial outputs of synchronised subtitling characters is supplied to the subtitling encoder 204 via an output port 409.
The subtitle encoder 204 is detailed in Figure 5. The encoder is based upon a Texas 34010 GSP subsystem, in which the GSP 501 communicates with a hard disc storage device 502, a two megabyte frame buffer 503, an eight megabyte random access memory device 504 and a serial communications device 505. The eight megabyte random access memory device 504 is used for storing working copies of fonts and program-specific information. Images are constructed within the two megabyte frame buffer 503 which is configured from RAM devices providing a serial access port, allowing the image to be scanned out in real time in synchronism with a video source.
The encoder 204 receives character information at video rate in response to time codes received by the synchroniser 203. These character strings are supplied to an input serial port 506, which in turn directs them to the working memory 504 over an internal system bus 507.
Once buffered in the working memory 504, the GSP 501 processes the information to determine the character data structure. In addition to particular characters, this will contain other information such as font type and font size. In response to this information, the processor 501 produces a list of blitting operations required to generate pixel information, derived from the information available on hard disc 502, from the input character strings.
Having produced a blit list of this type, the blit list is executed to produce image pixels that are written to the two megabyte frame buffer 503. Having written pixels to the frame buffer 503, an assessment is made as to the area of coverage within the buffer, resulting in information being generated identifying a bounding rectangular (603) and the position of said rectangle within the displayable area of the final image screen.
Having supplied a complete subtitle to the frame buffer 503, the processor 501 scans the image retained within the frame buffer 503 line by line, to produce compressed run-length codes that are supplied to an output port 508.
As shown in Figure 6, a subtitle image has been written to the frame buffer 503 in which the first word, positioned at the top left corner, starts with the letters "HE". The processor 501 has determined that the whole of the subtitle starts from the top left corner of the letter "H", therefore it is necessary to initiate scanning from this position. Arrow 601 represents the starting position for the first scan line. Scan line 601 will result in information being produced to the effect that four white pixels are required, followed by eight black, followed by four white, followed by six black, followed by eleven white, and so on.
Similarly, at scan line position eight, the starting point of which is identified by arrow 602, the relevant information consists of sixteen white pixels, followed by six black, followed by seven white and so on. Thus, it can be appreciated that for the majority of subtitling characters, the run of pixel data will consist of a predetermined number of white or coloured pixels, representing the location of characters, followed by runs of black characters, representing the spaces.
In the majority of situations in which subtitling data is to be associated with video data and possibly combined with said video data for transmission over a common carrier, bandwidth is limited; therefore it would not be possible to provide pixel information for each pixel within the subtitling region. The data is transmitted under such circumstances by effecting a level of data compression and given the nature of the information involved, run- length encoding has been identified as an attractive option. However, under normal schemes for performing run-length encoding, it would be necessary to examine each pixel individually in series, to make a decision as to whether that pixel value is the same as the previous value, or different from the previous value thereby initiating the start of a new run for the scan line being examined.
In the present environment, all of the processing performed by the subtitle synchroniser 203 and the subtitle encoder 204 is effected in real time such that time code received from video source material, being transmitted in real time, may be used to generate and associate subtitles with said video for immediate real time transmission. Under these circumstances, the processing and encoding of the subtitling pixels must also be performed in real time and this is extremely difficult, given realisable platforms, if it is necessary to serially consider the nature of each pixel in order to detect the start and ends of individual runs.
It is known to encode data strings by examining a plurality of bits, making up a word, in parallel. Output codes may be generated for each input code by using the input code as an address or index to a look-up table. Thus, for example, an eight bit word could be supplied to a look-up table having a total of two hundred and fifty six addressable locations. Thereafter, assuming that the input data words have a predictable level of redundancy, some words occurring more often than others, it is possible to produce smaller output codes for the regularly occurring words with the longer codes being used for the less frequently occurring words.
In accordance with known systems, it is possible for the look-up table to be updated over time, so as to perform an optimisation process in terms of the mapping of input words to output words. Thus, at the transmitter, a process may continually examine the input data words to determine which are occurring more frequently. On the basis of this assessment, it is then possible for the transmitter to issue an instruction to the receiver to the effect that, at an appropriate moment, a modification is to be made to the look-up table coding. Thus, in this way, it is possible for the transmitter to identify a new optimisation table, issue codes to the receiver to the effect that a modification is required and thereafter make use of the new optimisation table so as to enhance overall performance and to take full advantage of the inherent redundancy in the input data stream.
A first problem with using look-up tables in a subtitling environment is that transmission paths are often susceptible to relatively large levels of noise. When noise is present on the line, data transmissions are corrupted and it is known to introduce levels of redundancy in order to facilitate error identification and error correction. However, the whole point of using look- up tables is to reduce data rates and minimise redundancy, therefore it would be highly undesirable to start introducing new redundancy in order to provide a level of error correction. Noise immunity is substantially improved if the code conversion tables remain fixed and do not attempt to perform adaptive optimisation during transmission. However, a problem with this approach is that the coding may not make the best use of the inherent redundancy, resulting in a notionally higher bandwidth requirement.
A further problem with the look-up table approach is that the coding process is limited to input strings of a length equal to the look-up table index address bus. Thus, for an eight bit look-up table, the input string would be compressed in units of eight bits. Clearly when compressing data derived from images of the type shown in Figure 6, runs of substantially more than eight bits may be present, and these large runs could be compressed very efficiently using run-length encoding techniques. However, as previously stated, conventional run-length encoding techniques serially examine each incoming pixel so as to identify transition points. This requires a substantial processing overhead and cannot be implemented practically for the present application.
Thus, it can be seen that a first constraint is placed on the transmission of pixelated subtitles in that, in many environments, the available bandwidth for transmitting subtitles is severely restricted. As used herein, the subtitles are referred to as being associated with the video, meaning that the subtitles are synchronised to video frames allowing the receiver to overlay or key the subtitling data at the appropriate points in the transmission. In some situations, such as traditional broadcast environments, the association involves multiplexing the subtitling data with the transmission signal. This may be achieved by placing the subtitling data in vertical frame blanking periods, in a similar fashion to that employed by teletext systems in which character codes are conveyed in vertical blanking periods. The use of character codes in teletext systems is very bandwidth-efficient but the amount of bandwidth for transmitting pixel data is severely restricted and it is not possible to transmit an image of the type shown in Figure 6 without performing a level of data compression. Experience has shown that it is necessary to provide a compression ratio of at least three to one in order to transmit pixelated subtitles within vertical blanking periods.
Associated pixelated subtitles may be associated with the video frames (i.e. synchronised) for other forms of transmission. For example, using MPEG 2, separate channels are provided for the transmission of additional data and these channels may be employed for the transmission of compressed pixelated subtitle data. Other digital transmission systems are becoming increasingly available and again data channels will be provided for the transmission of associated data, such as subtitles, along with other types of non-synchronised data. In substantially all of these cases, the amount of bandwidth for the transmission of associated data is restricted and data compression techniques are required.
If the pixelated subtitling data were being associated to video frames in non real-time, that is, as an off-line process, the only constraint would be that of bandwidth and processing power would no longer become a problem. Situations in which encoding techniques require substantially more processing power at the transmission end compared to the amount of processing power at the receiving end are well known. For example, during MPEG encoding search algorithms are required in order to encrypt intermediate frames in order to calculate displacement vectors. It is the calculation of the vectors that requires a substantial processing overhead, while at the receiver it is a simple process of merely making use of the vectors calculated at the transmitter. In the present embodiment, the subtitling data is associated with the video stream in real-time. Therefore, in addition to bandwidth constraints, a further constraint is made upon the system in terms of processing power. Thus, known pixel-by-pixel run-length encoding techniques would provide a good solution to optimising bandwidth, whereas word-by-word look-up table techniques, examining a plurality of pixels in parallel, would provide a good solution to reducing the processor overhead.
As previously stated, in the present embodiment both bandwidth and processing speed are constraints, therefore neither of the above known techniques provide suitable solutions for compressing the pixel data for transmission in an associated form in real time.
Operation of processor 501, in order to encode images of the type shown in Figure 6, may be considered with reference to the functional illustration shown in Figure 7. A shift register 701, a look-up table 702 and an output buffer 703 are physically provided as addressable locations within random access memory device 504. Data is read from frame buffer 503 and processor 501 effects the functions of an input modifier 704, an output modifier 705, and analysing logic 706.
The look-up table 702 is established within random access memory 504 on system initialisation. The look-up table values remain constant during operation and the inverse table, to perform the decompression process, is retained permanently at decoding stations. The look-up table 702 receives a nine bit address and is therefore capable of holding a total of five hundred and twelve table entries. Character strings, represented as picture elements, will have been assembled in the frame buffer 503. Contiguous data elements are read from the frame buffer 503 line-by-line and supplied to the shift register 701. The shift register 701 provides means for supplying contiguous picture element data, as an input addresses, to the look-up table 702.
The output from the look-up table, in the form of table data, is supplied to analysing means in the form of the analysing logic 706, implemented by processor 501. The analysing logic 706 is arranged to analyse table data (which may be considered as first table data) that may then be supplied to the output buffer 703 via the output modifier 705. Alternatively, the analysing logic 706 may request a new address data, although at this stage no output data will have been produced. New address data is supplied to the shift register 701 but the input address is modified, by means of the input modifying circuit 704, in response to address modify data received from the output modifier 705. Thus, although the addressing of the look-up table 702, for this new data, is performed in a substantially similar way to that performed for the initial look-up, the input address has been modified by input modifying circuit 704, therefore the addressing of the look¬ up table 702 represents an identification of output codes representing an input string larger than the input address. This situation occurs when a long run of similar characters has been identified, thereby facilitating highly optimised run-length encoding. On the second iteration it is possible that the run has continued, therefore again it will be possible for the output modifying circuit to modify the addressing input and for the analysing logic 706 to request new data from the frame buffer 503. Thus, new table data will be produced, possibly suitable for supplying to the output buffer 703, on detecting initial table data representing input data having runs of similar data extending beyond the input address.
The operation of the system in Figure 7 may be considered in further detail with reference to the illustration shown in Figure 6. Coding is initiated from the top left corner of the first character, therefore no coding is performed until a transition occurs from the notionally black background to the notionally white character edge. As shown in Figure 6, this represents the coding of four white characters followed by eight black characters. Nine characters will be written to the shift register 701, consisting of the first four white characters of line 601 followed by five black characters. The look-up table is therefore presented with an address consisting of four white characters followed by five black characters although optimised run-length encoding would not produce an output code for the white characters until the full length of the run had been identified; the run consisting of a total of eight characters in this example.
In a non-recursive, open loop situation, using conventional look-up tables, an output code could be produced identifying the situation in which four white characters have been received followed by five black characters. Groupings of this type are common in character strings, therefore this configuration could be allocated a relatively short transmission code. However, from a run-length encoding point of view, full optimisation would not have been achieved. Thus, the look-up table 702, in accordance with the present embodiment, does not produce an output code representing four white characters followed by five black characters. Under these circumstances, it produces a recursive code to the analysing logic 706, informing said analysing means that the input string consists of four white characters followed by a run of black characters. With this information known to the analysing logic 706, the frame buffer 503 is addressed, shown functionally as line 707, resulting in the frame buffer 503 supplying new contiguous data to the shift register
701.
The previous data, consisting of four white pixels followed by five black pixels, is replaced and the new input data consists of three black pixels, followed by four white pixels, followed by two black pixels. However, the input address to the look-up table 702 will be modified by input modifier 704, effectively providing information to the effect that the three black pixels are related to the previously considered input and that the previously considered input has not, as yet, been supplied to the output buffer 703.
The output code from the look-up table 702, supplied to the analysing circuit 706, informs said analysing circuit that the previously identified group of five black pixels is completed by a further three black pixels before a transition from black to white occurs. Furthermore, after this transition occurs, four white pixels are transmitted before a transition back to black pixels occurs. Thus, the analysing logic 706 is aware of the transition from white to black but, at this stage, it is unable to determine how many black pixels are present. Consequently, an output code is produced identifying a run of four white pixels, followed by a run of eight black pixels, followed by a run of four white pixels. Thus, sixteen pixels have been coded, nine considered as a first table address with the remaining seven being considered as part of a second table address. The table has been addressed recursively, so as to produce a composite code for a total of sixteen input pixels. The composite code for the sixteen pixels is assembled within the output modifier 705, which, on this occasion, allows the output code to be directed to the output buffer 703. The input modifier 704 is effectively re-set, such that the next contiguous input pixels will be considered as the start of a new run.
Sixteen input pixels have been considered, whereas a total of eighteen pixels have been read from the frame buffer 503. The shift register 701 is therefore incremented by seven positions, so that the two remaining pixels, representing the start of the run of black pixels at transition 611, may be considered. As the seven previously processed input pixels are clocked out of the shift register 701, seven new input pixels are read from the frame buffer 503, thereby making up a new complement of nine input pixels.
The nine input pixels provide an input address to the look-up table 702, representing six black pixels followed by three white pixels. Again, three white pixels extend beyond the input address therefore coding is performed recursively in order to determine the run-length of the white pixels. Nine new pixels are read from the frame buffer 503, representing a run of eight white pixels followed by one black pixel. Thus, having received two input words from the frame buffer 503, it is possible for the analysing logic 706 to determine that, from transition 611, six black pixels have been received followed by a total of eleven white pixels. A code to this effect is transmitted, and, given that a total of nine plus eight input pixels have been coded, a further eight pixels are read from the frame buffer 503 and coding continues from position 613 shown in Figure 6.
This process continues until the end of the scan line. It is not necessary to consider each pixel individually in order to determine the position of pixel transitions. The look-up table 702 receives nine pixel values in parallel and produces codes identifying pixel transitions within the word. Runs of pixels are encoded resulting in codes being transferred to the output buffer 703. The analysing logic 706 is aware of how many pixels have been coded from the input stream, therefore this logic allows an appropriate number of contiguous input pixels to be supplied to the shift register 701. In this way, run-length encoding is optimised so as to reduce the requirement on transition bandwidth. Thus, by using the look-up table 702 in a recursive loop, as illustrated in Figure 7, it is possible to optimise run-length encoding and thereby optimise transitional storage bandwidth, while at the same time substantially increasing processing speed by considering a plurality of input pixel values in parallel. Furthermore, given this level of optimisation, it is not necessary to adapt values stored within the look-up table 702, therefore it is not necessary to transmit details of new look-up table values to receivers, thereby substantially improving noise immunity.
In alternative embodiments, a plurality of look-up tables, similar to look-up table 702 may be provided. An input to a first look-up table produces an output which may be used as an output code. Alternatively, this output may itself be used as an index to a second level look-up table. Further intermediate look-up tables may be included and a chain would then be terminated by a final look-up table which, under all input conditions, is arranged to produce an output. The provision of a plurality of look-up tables should further optimise compression. However, this will also increase the hardware overhead, therefore a compromise must be made in terms of transmission efficiency and hardware requirements. Similarly, modifications could be made to the word length, with fewer than nine bits being used or more than nine bits being used. Experience has shown that with a plurality of sample fonts, a nine bit word provides a good compromise between hardware demands and compression efficiency. The size of subtitles is controlled by many constraints, given that it must be possible to display an intelligible number of words on the final screen, while at the same time making each word large enough so as to be legible to viewers at the relevant display definition.
Output broadcast signals produced by device 205 of Figure 2, are processed by receiving stations, of the type shown in Figure 8, allowing the transmitted subtitle data to be displayed in combination with television pictures, as shown in Figure 1. Transmitted signals are received by an antenna 801 and supplied to a tuner/demodulator 802. The tuner/demodulator 802 separates the video blanking data from the transmitted television signal and supplies the video- related information to a video processing device 803. The video processing device 803 cleans up the video information and reintroduces new blanking intervals. Additional video processing may be performed so as to supply appropriately encoded video signals to a television monitor 804.
A combining device 805 is positioned between the video processing device 803 and the television monitor 804. The combining device 805 is arranged to key subtitling data over the video picture, as shown in Figure 1.
The run-length encoded data derived from the video blanking intervals is supplied to a subtitle decoder 806, arranged to decode the compressed subtitling data and to provide a subtitling video signal to the combiner 805 via a switch 807. Switch 807 may be operated manually, so as to selectively add received subtitling information to the picture. In addition, switch 807 is activated to its off position if no new subtitling data is received for a predetermined time-out period. At the combiner 805, the decoded subtitling data is keyed over the television picture and a composite image is supplied to the TV monitor 805, whereupon conventional processing is performed so as to display the television pictures.
The subtitle decoder 806 is detailed in Figure 9. In the present embodiment, codes transmitted to represent the subtitles have a maximum bit length of nine bits. This bit length is determined by the particular coding adopted in order to effect the transmission and is not related to the nine bit address at the transmitter. The transmitted words are conveyed as a serial stream and are therefore coded such that the decoder can identify the start of new words. The decoder 806 includes a shift register 901, a look-up table 902, an address writing device 903, a frame buffer 904 and a serial reading device 905. Incoming bits are supplied to the shift register 901 which in turn supplies a parallel address to the look-up table 902 when a complete word has been received. After a transmitted word has been supplied to the look-up table 902 as an index, the shift register 901 is cleared and the next word is shifted therethrough.
Codes supplied to the look-up table 902 represent runs of white pixels and black spaces. These runs are written to appropriate locations in the frame buffer 904 under the control of the address writing circuit 903. In this way, the original array of pixels, representing the subtitle, are built up in the frame buffer, until a complete frame has been assembled. Once a complete frame of subtitling data has been assembled in the frame buffer 904, this information is read serially under the control of serial reading device 905, so as to provide a serial data stream of video information, synchronised to the data supplied to combiner 805 from the video processing circuit 803.
The output from the frame buffer 904 is in digital form and the system may include digital-to-analogue converting devices so as to effect the combining of video signals in the analogue domain. Alternatively, the video output from the video processing circuit 803 may be in digital form, allowing the combiner 805 to operate in the digital domain. In either event, assuming switch 807 is in the closed position, the two video signals are combined, resulting in the composite signal being supplied to the TV monitor 804.

Claims

1. Apparatus for generating subtitling data for association with video signals, comprising character pixel generating means arranged to generate a representation of displayable characters as a pixel array; and compression means arranged to produce output codes representing lines of said pixel array in compressed form; and synchronising means for associating said output codes with video frames.
2. Apparatus according to claim 2, wherein said subtitling data is associated with the video signals by being added to vertical blanking periods of a conventional television broadcast signal.
3. Apparatus according to claim 1, wherein said subtitling data is associated with video signals by being added to an associated data transmission channel.
4. Apparatus according to claim 3, wherein said associated data transmission channel is associated with digitally compressed video frames.
5. Apparatus according to claim 1, wherein said compression means is arranged to perform a process of run- length encoding upon lines of said pixel array.
6. Apparatus according to claim 5, wherein said run-length encoding is performed by addressing a look-up table.
7. Apparatus according to claim 6, including means for generating an output code and means for addressing a plurality of look-up table addresses before generating said output code.
8. Apparatus according to any of claims 1 to 7, wherein said subtitling data is stored as character codes, said character codes are read at video rate in response to video time code, and said read character codes are supplied to an encoder at video rate.
9. Apparatus according to claim 8, wherein said encoder converts character codes to run-length codes at video rate, to produce run-length codes synchronised to said time code.
10. Apparatus for encoding image data representing picture elements, comprising a look-up table configured to produce table data in response to input address data; means for supplying contiguous picture element data as input address data to said look-up table; and analysing means for analysing said table data read from said look-up table, wherein « said analysing means analyses a first table data and generating run- length output data or, in response to said analysis, said analysing means requests new address data, from said input data, so as to produce new table data, on detecting table data representing input data having runs of similar data extending beyond the input address.
11. Apparatus according to claim 10, wherein said analysing means determines the number of input pixels encoded by an output code, such that elements previously used as addressing elements are not encoded by said code and additional contiguous picture elements are read to provide a new address to said look-up table.
12. Apparatus for adding subtitling data to a video image, wherein said subtitling data is received with associated video signals, comprising means for decompressing associated subtitling data at video rate; means for assembling said subtitling data as pixel values; and means for combining said pixel values with associated video frames at video rate.
13. Apparatus according to claim 12, wherein said subtitling data is received with a broadcast television signal in the vertical blanking periods of said signal.
14. Apparatus according to claim 12, wherein said subtitling data is received with a digitally encrypted signal in an associated data channel.
15. Apparatus according to claim 14, wherein said digitally encrypted video signal is compressed to reduce video image bandwidth.
16. Apparatus according to claim 15 , wherein said video data is read from a local storage medium with said associated subtitling.
17. Apparatus according to claim 15, wherein said video data is received from a cable television system or a satellite system with said associated subtitling.
18. A method of generating subtitling data for association with video signals, comprising generating a representation of displayable characters as a pixel array; producing output codes representing lines of said pixel array in compressed form; and synchronising said output codes with video frames.
19. A method of encoding character strings represented as picture elements, comprising steps of supplying contiguous picture element data as an input address to a look-up table; and analysing said table data read from said look-up table, wherein first table data may be supplied to an output or, in response to said analysis, new address data is selected to produce an output code representing a plurality of input picture elements, on detecting table data representing input data having runs of similar data extending beyond the input address.
20. A method of adding subtitling data to a video image, wherein said subtitling data is received with associated video signals, comprising decompressing associated subtitling data at video rate; assembling said subtitling data as pixel values; and combining said pixel values with associated video frames at video rate.
PCT/GB1995/001353 1994-06-09 1995-06-09 Subtitling video data WO1995034165A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU26785/95A AU2678595A (en) 1994-06-09 1995-06-09 Subtitling video data
GB9625754A GB2304016A (en) 1994-06-09 1995-06-09 Subtitling video data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9411615A GB2290430B (en) 1994-06-09 1994-06-09 Subtitling video data
GB9411615.9 1994-06-09

Publications (1)

Publication Number Publication Date
WO1995034165A1 true WO1995034165A1 (en) 1995-12-14

Family

ID=10756500

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB1995/001353 WO1995034165A1 (en) 1994-06-09 1995-06-09 Subtitling video data

Country Status (4)

Country Link
AU (1) AU2678595A (en)
CA (1) CA2192439A1 (en)
GB (2) GB2290430B (en)
WO (1) WO1995034165A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2296148A (en) * 1994-11-28 1996-06-19 Snell & Wilcox Ltd Retaining sub-titles in a wide screen television display
US8599064B2 (en) * 2008-02-29 2013-12-03 Honeywell International Inc. Systems and methods for radar data communication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4264933A (en) * 1977-07-27 1981-04-28 Canon Kabushiki Kaisha Method and apparatus for facsimile recording
JPS5951653A (en) * 1982-09-17 1984-03-26 Fujitsu Ltd Data compression coding processing system
EP0149122A2 (en) * 1983-12-30 1985-07-24 International Business Machines Corporation A method for converting a bit map of an image to a run length or run end representation
EP0167023A2 (en) * 1984-06-29 1986-01-08 International Business Machines Corporation An improved method for converting a bit map of an image to a run lenght or run end representation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61147677A (en) * 1984-12-21 1986-07-05 Mitsumi Electric Co Ltd Superimposing device
JP2637821B2 (en) * 1989-05-30 1997-08-06 シャープ株式会社 Superimpose device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4264933A (en) * 1977-07-27 1981-04-28 Canon Kabushiki Kaisha Method and apparatus for facsimile recording
JPS5951653A (en) * 1982-09-17 1984-03-26 Fujitsu Ltd Data compression coding processing system
EP0149122A2 (en) * 1983-12-30 1985-07-24 International Business Machines Corporation A method for converting a bit map of an image to a run length or run end representation
EP0167023A2 (en) * 1984-06-29 1986-01-08 International Business Machines Corporation An improved method for converting a bit map of an image to a run lenght or run end representation

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"SUBTITLING TV PROGRAMMES. THE MRG SYSTEM", IMAGE TECHNOLOGY (JOURNAL OF THE BKSTS), vol. 72, no. 1, October 1990 (1990-10-01), LONDON GB, pages 426 *
HOFMAN ET AL: "ANLAGE ZUR AUFBEREITUNG UND EINBLENDUNG VON UNTERTITELN NACH DEM ENGLISCHEN TELETEXT-STANDARD", RUNDFUNKTECHNISCHE MITTEILUNGEN, vol. 22, no. 1, February 1978 (1978-02-01), NORDERSTEDT DE, pages 1 - 9 *
PATENT ABSTRACTS OF JAPAN vol. 8, no. 142 (E - 254) 3 July 1984 (1984-07-03) *

Also Published As

Publication number Publication date
GB2290430B (en) 1998-08-05
AU2678595A (en) 1996-01-04
GB2290430A (en) 1995-12-20
GB9411615D0 (en) 1994-08-03
GB9625754D0 (en) 1997-01-29
GB2304016A (en) 1997-03-05
CA2192439A1 (en) 1995-12-14
GB2290430A8 (en) 1998-05-21

Similar Documents

Publication Publication Date Title
EP1079610B1 (en) Moving-picture processing method, and apparatus therefor
AU699288B2 (en) Animated "on-screen" display provisions for an mpeg video signal processing system
US5969770A (en) Animated "on-screen" display provisions for an MPEG video signal processing system
KR930001679B1 (en) Televison receiver with teletext receiving function and method of superimposing teletext picture on television picture
US4595952A (en) Teletext decoder having a register array for operating on pixel words
US4393376A (en) Teletext interface for digital storage medium having synthetic video generator
US5519443A (en) Method and apparatus for providing dual language captioning of a television program
US4016361A (en) Apparatus for storing data broadcast in digital form for generating a character display or for recording such data for later playback
EP1133170B1 (en) Digital broadcast reception and printing
KR100596351B1 (en) Pixel colour value encoding and decoding
Musmann et al. Comparison of redundancy reducing codes for facsimile transmission of documents
US20120062795A1 (en) Broadcasting and communication receiver apparatus
EP0700211B1 (en) Text broadcast and teletext decoding device
KR960020533A (en) Compression extension method of video information and video signal processing device
JP2005033741A (en) Television character information display device, and television character information display method
WO1995034165A1 (en) Subtitling video data
JP2988584B2 (en) Character generator that displays characters with shading on the display screen
JP2894232B2 (en) Character information superimposition device
CN110036646A (en) Decoder, encoder, computer program and method
KR100188273B1 (en) Pop-on scroll method of caption broadcasting televiewer option
KR100188279B1 (en) Televiewer option caption broadcasting, receive apparatus & method with dual-words caption transmit function
JPS6182590A (en) Picture transmitter
JPH08167958A (en) Method for distributing newspaper and newspaper receiver using television signal
JPS60240290A (en) Teletext picture file device of teletext receiver
JPH08251558A (en) Display control circuit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IS JP KE KG KP KR KZ LK LR LT LU LV MD MG MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TT UA US UZ VN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): KE MW SD SZ UG AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2192439

Country of ref document: CA

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

ENP Entry into the national phase

Ref document number: 1997 765109

Country of ref document: US

Date of ref document: 19970505

Kind code of ref document: A

122 Ep: pct application non-entry in european phase