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.