Abstract:
The invention provides a segmented processing method of a transport stream of a digital television that allows increasing the speed of the processing in a section filter, which is filter processing for program information, that occupies 40% of the computational effort even during TS Demux processing. The invention provides a step in which a two part search is carried out on the upper words of the comparison object data of the transport stream of a digital television, a step in which it is determined whether or not matching data is present in the upper words, and a step that compares the lower word of the comparison object data in the case that there is matching data present in the upper words.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to a segmented processing method for a transport stream (hereinafter, denoted TS Demux) for a digital television and recording media for the same, and in particular to a segmented processing method for a transport stream of a digital television that enables high speed processing in a section filter, which carries out filter processing of television program information, that occupies 40% of the computational effort even in the TS Demux processing for a digital television.  
           [0003]    2. Description of the Related Art  
           [0004]    The conventional section filter in TS Demux for a digital television will be explained referring to the figures.  
           [0005]    [0005]FIG. 12 and FIG. 13 show the processing flow of the conventional section filter, and FIG. 9 shows the structures of a comparison data table for making comparisons in a section filter and a mask data table for masking bits that are not part of the object comparison bits in the comparison data during the comparison.  
           [0006]    In addition, FIG. 10 shows the register structure used in conventional processing, and FIG. 11 shows the structure of the section data that becomes the object of the filter processing.  
           [0007]    Next, each table and register will be explained in detail.  
           [0008]    The comparison data table ( 600 ) for making comparisons in the section filter of FIG. 9 forms one unit of comparison data with two 64 bit words: an upper  1  word having 32 bits ( 601   a ) and a lower  1  word having 32 bits ( 601   b ). Next, the upper word ( 601   a ) of the first comparison data and the following lower word ( 601   b ) serve as the head, followed by the second comparison data ( 602   a ,  602   b ) and the third comparison data ( 603   a ,  603   b ), and continuing until the last n th  comparison data ( 604   a ,  604   b ).  
           [0009]    Moreover, the reason that the word unit is separated into upper and lower words is that the register width of a program device that carries out the section filter processing is assumed to be one word.  
           [0010]    The mask data filter ( 610 ) has a structure completely identical to that of the comparison data table ( 600 ), and units of data correspond one-to-one to the comparison data. The first comparison data ( 601   a ,  601   b ) correspond to the mask data ( 611   a ,  611   b ).  
           [0011]    Subsequently, this is identical from the second and third mask data ( 612   a ,  612   b ,  613   a ,  613   b ) to the last mask data ( 614   a ,  614   b ), and the table sizes as a whole are identical.  
           [0012]    [0012]FIG. 10 shows the register structure used in convention section filter processing, and comprises a total of 11 registers: an index register P ( 700 ) shared by the comparison data table ( 600 ) and the mask data table ( 610 ), a register AH ( 701   a ) that stores the upper  1  word that is the comparison object, a register AL ( 701   b ) that stores the lower  1  word, a register BH ( 702   a ) that stores the upper  1  word of the comparison data, a register BL ( 702   b ) that stores the lower  1  word, a register CH ( 703   a ) that stores the upper  1  word of the mask data, a register CL ( 703   b ) that stores the lower  1  word, a register DH ( 704   a ) that stores the upper  1  word that is the result of ANDing the comparison object data and the mask data, a register DL ( 704   b ) that stores the lower  1  word, a register EH ( 705   a ) that stores the upper  1  word that is the result of ANDing the comparison data and the mask data, and a register EL ( 705   b ) that stores the lower  1  word.  
           [0013]    [0013]FIG. 11 shows the structure of the four types of section data that are the comparison object.  
           [0014]    The four types of section data are the upper  1  word ( 800   a ) and lower  1  word ( 800   b ) of the program association section, the upper  1  word ( 801   a ) and the lower  1  word ( 801   b ) of the conditional access section, the upper  1  word ( 802   a ) and the lower  1  word ( 802   b ) of the transport stream program map section, and the upper  1  word ( 803   a ) and the lower  1  word ( 803   b ) of the private section.  
           [0015]    The timing at which the upper  1  word of each section is overwritten is about the same as the time interval as the interval that the end user of the digital television changes channels, and does not change frequently.  
           [0016]    In contrast, for the lower word, the Section_numbers ( 800   c ,  801   c ,  802   c ,  803   c ) included therein require a mechanism in which the comparison data can easily be changed because the sections must be changed as they are received one by one.  
           [0017]    The operation of the conventional section filter having the structure described above will be explained referring to FIG. 12 and FIG. 13.  
           [0018]    First, an outline of the conventional section filter processing in the TS Demux of a digital television will be explained referring to FIG. 12. The conventional section filter processing initializes the register types (step S  401 ), determines whether or not the counter and the number of comparison data match (step S  402 ), determines whether or not the upper words match, and determines whether or not the lower words match (step S  404 ).  
           [0019]    Next, referring to FIG. 13, the operation of a conventional section filter will be explained in detail.  
           [0020]    First, in the conventional section filter processing, an index shared by the comparative data table ( 600 ) and the mask data table ( 601 ) is set to the register P ( 700 ) so as to designate the first data (step S  501 ).  
           [0021]    Subsequently, the register P ( 700 ) is used in the comparisons process as the index for reading the comparison data and the mask data.  
           [0022]    Next, register AH ( 701   a ) is set to upper  1  word of the comparison object (step S  502 ), and register AL ( 701   b ) is set to the lower  1  word that is the object of comparison (step S  503 ).  
           [0023]    Next, it is determined whether or not the register P ( 700 ) that stores the index shared by the comparison data table ( 600 ) and the mask data table ( 610 ) designates the two last upper and lower words of the comparison data table ( 600 ) and the mask data table ( 610 ) (step S  504 ), and if the last two upper and lower words are designated, register P ( 700 ) is set to minus 1 as a result of there being no comparison data that matches the register P ( 700 ) (step S  516 ).  
           [0024]    In step S  504 , in the case that the index designated by the register P ( 700 ) has not yet arrived at the last upper and lower two words, the upper  1  word of comparison data from the comparison data table ( 600 ) is read and stored in register BH ( 702   a ) according to the index indicated by register P ( 700 ) (step S  505 ), and similarly the upper  1  one word of the mask data is read from the mask data table ( 610 ) and stored in register CH ( 703   a ) according to the index that indicated by register P ( 700 ) (step S  506 ).  
           [0025]    Next, the result of ANDing the register AH ( 701   a ) that stores the upper  1  word of the comparison object data and the register CH ( 703   a ) that stores the upper  1  word of the mask data is stored in register DH ( 704   a ) (step S  507 ), and similarly the result of ANDing the register BH ( 702   a ) that stores the upper  1  word of the comparison data and the register CH ( 703   a ) that stores the upper  1  word of the mask data is stored in the register EH ( 705   a ) (step S  508 ).  
           [0026]    Subsequently, the result of these two AND operations (DH, EH) are compared (step S  509 ), and in the case that they do not match, the value of the index stored in the register P ( 700 ) is incremented (step S  515 ), and the control returns to the step S  504 .  
           [0027]    In step S  509 , in the case that the result of the ADD operation does match, similarly, the respective lower  1  words of the comparison object data and the comparison data are read, these are ADDed with the lower  1  word of the mask data (steps S  510 , S  511 , S  512 , and S  513 ), DL ( 704   b ) and EL ( 705   b ), which are the result of the ADD operations, are compared (step S  514 ), and in the case that they match, this is treated as a match with the comparison data indicated by the index stored in register P ( 700 ), and the section filter processing terminates.  
           [0028]    In step S  514 , if there is no match, the index stored in register P ( 700 ) is incremented (step S  515 ), and the control returns to step S  504 .  
           [0029]    In addition, the TS Demux of the conventional digital television described above is realized by hardware, and the chip size is about 10.5 square millimeters.  
           [0030]    However, the conventional technology has the following problems.  
           [0031]    Specifically, because the maximum transmission rate of the broadcast station is 160 Mpbs, and each of the TS packets is 188 bytes, the data is substantially sent during a 9.4 μsec interval.  
           [0032]    Furthermore, this type of section filter occupies 40% of the computational effort of the TS Demux, and thus in the worst case must be carried out at 9.4 μsec×0.4=3.76 μsec.  
           [0033]    However, in the case of realizing the conventional technology as it is on a 32 bit general purpose personal computer operating at 100 MHz and on hardware, real time processing by software is impossible when the 60% of the processing of the remainder, exclusive of the section processing, is included because 7.31 μsec is taken for just the section filter processing.  
           [0034]    In the case that section filter processing is carried out on a 32 bit general use personal computer, since the section data length is 64 bits, two times that of the general use personal computer, as shown in FIG. 6, the comparison data and the mask data are arranged by being divided into two parts: the upper  1  word (bit  63  to bit  32 ) and the lower  1  word (bit  31  to bit  0 ). The comparison method compares the upper word of the comparison object data, and in the case there is a match, compares the lower word. When the number of data of the table is 32 bits, if none of the data match, the minimum processing time is 32 each times for upper and lower words, and the comparison must be carried out a total of 64 times. Thus, when the worst case is calculated, the result is the above-described 7.31 μsec.  
           [0035]    Furthermore, the conventional TS Demux for a digital television is realized with dedicated hardware, so the reduction of chip size is always a problem, and software implementation becomes more pressing.  
           [0036]    Therefore, it is an object of the present invention to present a segmented processing method for a transport stream of a digital television that can be carried out at high speed.  
           [0037]    Specifically by carrying out TS Demux using a general purpose personal computer, the core size of the chip of the general purpose personal computer is 5.8 square millimeters, and thus a large cost reduction can be achieved. The present invention can achieve increased speed for the section filter, for which the computational effort is large, even during TS Demux.  
         SUMMARY OF THE INVENTION  
         [0038]    The segmented processing method of the transport stream for digital television according to the present invention comprises a first step that initializes the comparison object data of the transport stream of a digital television, a second step that, in order to carry out a two part search of the comparison object data of the transport stream of a digital television, initializes the two part search, a third step that carries out a two part search of the upper word of the comparison object data of the transport stream of a digital television, a fourth step that identifies whether or not data that matches the upper word is present, a fifth step that, in the case that data that matches the upper word present, compares the lower word of the comparison object data of the transport stream of a digital television, and a sixth step that, in the case that no data that matches the upper word is present, returns to the third step.  
           [0039]    In addition, the comparison object data of the transport stream of a digital television using the segmented processing method of the transport stream of a digital television of the present invention has the format of the section data.  
           [0040]    Furthermore, in the segmented processing method of the transport stream of a digital television of the present invention, the data that is compared by the section filter serves becomes a data table that is segmented into blocks by each index, and the upper  1  word has four elements: the AND of the comparison data and the mask data having a shared index, the lower  1  word of the comparison data, the lower  1  word of the mask data, and the index value.  
           [0041]    In addition, the two part search of the segmented processing method of the transport stream of a digital television of the present invention also takes a form in which the number of data that are the object of the search is 2 N−1 . Additionally, the two part search of the segmented processing method of the transport stream of a digital television of the present invention finds the next search position by dividing the search range and the offset from the current search position into two equal parts, and adding or subtracting this to or from the search position.  
           [0042]    In addition, the lower word of the segmented processing method of the transport stream of a digital television of the present invention prepares overwriting of comparison data that changes every tens of milliseconds, and can be formed so that a pointer to a data table sorted by the index sequence is stored.  
           [0043]    In addition, the segmented processing method of transport stream of a digital television of the present invention can be recorded on recording media.  
           [0044]    Specifically, the section filter of the segmented processing method of the transport stream of a digital television of the present invention finds the data that matches the information for two words from among a plurality of prepared comparison data.  
           [0045]    Moreover, mask data is also prepared that corresponds 1 to 1 to the comparison data, and the bits that become 0 when ADDed to the mask data are excluded from the object of the search.  
           [0046]    In addition, in the section data, in contrast to the upper  1  word that only changes according to the rate that the end user of the digital television changes the channels, the lower  1  word changes in units of tens of milliseconds while section data is being delivered. In the present invention, these characteristics of the section data are used, and a two-step comparison is carried out.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0047]    [0047]FIG. 1 is a flowchart for the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention.  
         [0048]    [0048]FIG. 2 is another flowchart for the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention.  
         [0049]    [0049]FIG. 3 is yet another flowchart of the segmented processing method of a transport stream of a digital television according to the first embodiment of the present invention.  
         [0050]    [0050]FIG. 4 is a different flowchart of the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention.  
         [0051]    [0051]FIG. 5 is a different flowchart of the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention.  
         [0052]    [0052]FIG. 6 is a structure diagram of the tables used in the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention.  
         [0053]    [0053]FIG. 7 is a structure diagram of the registers the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention.  
         [0054]    [0054]FIG. 8 is a flowchart of the two search method.  
         [0055]    [0055]FIGS. 9A and 9B are structure diagrams of the tables used in a conventional segmented processing method of the transport stream of a digital television.  
         [0056]    [0056]FIG. 10 is a structure diagram of the registers used in a conventional segmented processing method of the transport stream of a digital television.  
         [0057]    [0057]FIGS. 11A to  11 C are structure diagrams of the section data used in a conventional segmented processing method of the transport stream of a digital television.  
         [0058]    [0058]FIG. 12 is a flowchart of the tables used in a conventional segmented processing method of the transport stream of a digital television.  
         [0059]    [0059]FIG. 13 shows the detailed flow of a conventional segmented processing method of the transport stream of a digital television. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0060]    Next, the first embodiment of the present invention will be explained referring to the figures. The segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention is shown in FIG. 1 through FIG. 8.  
         [0061]    [0061]FIG. 1 through FIG. 5 show the processing flow of the section filter of the embodiment of the present invention, and FIG. 6 shows the data table and data pointer table that have unified the comparison data table and the mask data table of the conventional section filter in order to attain the high speed processing of by the present invention.  
         [0062]    [0062]FIG. 7 shows the register structure used in the present invention. FIG. 8 shows an improved flow of the two part search method used in the present invention.  
         [0063]    First, an outline of the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention will be explained referring to FIG. 1.  
         [0064]    In the segmented processing method of the transport stream of a digital television according to the first embodiment of the present invention, the comparison object data of the transport stream of a digital television is initialized (step S  11 ) and in order to carry out a two part search of the comparison object data of the transport stream for a digital television, the two part search is initialized (step S  12 ).  
         [0065]    Next, a two part search is carried out on the upper word of the comparison object data of the transport stream of a digital television (step S  13 ), it is determined whether or not data that matches the upper word is present (step S  14 ), and in the case that data that matches the upper word is present, it is compared to the lower word of the comparison object data of the transport stream of a digital television (step S  15 ) and the processing terminates.  
         [0066]    In the case that data matching the upper word is not present, the flow returns to step S  13 .  
         [0067]    Next, the separate structural elements will be explained.  
         [0068]    The data table ( 200 ) in FIG. 6 has four elements that serve as one block ( 201 ,  202 ): the result of ANDing the respective upper  1  words of the comparison data and the mask data ( 201   a ,  202   a ) having the same index, the lower  1  word of the comparison data having the same index ( 201   b,    202   b ), the lower  1  word of the mask data having the same index ( 201   c ,  202   c ), and the index ( 201   d ,  202   d ). In the data table ( 200 ) itself, the result of ANDing the upper  1  word of each of the comparison data and the mask data ( 201   a,    202   a ) serves as a key having the same index, and are sorted advance by blocks.  
         [0069]    The data pointer table ( 210 ) stores the header addresses ( 210   a ,  210   b ,  210   c ,  210   d , and  210   e ) of the blocks ( 210 ,  202 ) of the data table ( 200 ) by the index sequence.  
         [0070]    [0070]FIG. 7 shows the register structure used by the section filter processing of the embodiment of the present invention, and is formed by a total of 13 registers: a register P ( 300 ) that stores the index to the data table ( 200 ), a register AH ( 301   a ) that stores the upper  1  word of the comparison object data, a register AL ( 301   b ) that stores the lower  1  word, a register BL ( 302   b ) that stores the lower  1  word of the comparison data, a register CL ( 303   b ) that stores the lower  1  word of the mask data, a register DH ( 304   a ) that stores the result of ADDing the upper  1  word of the comparison object data and the upper  1  word of the mask data having the same index, a register DL ( 304   b ) that stores the result of ADDing the lower  1  words together, a register EH ( 305   a ) that stores the upper  1  word that is the result of ADDing the comparison data, the mask data, and the comparison object data, a register EL ( 305   b ) that stores the lower  1  word, a register RI ( 306 ) that stores the index used in the two part search, and a register RK ( 307 ) that stores the offset from the index to the next search position.  
         [0071]    Next, the entire operation of the embodiment of the present invention will be explained in detail referring to the flow of FIG. 1 through FIG. 5, FIG. 6, and FIG. 7.  
         [0072]    First, the upper  1  word of the comparison object data is stored in register AL ( 301   a ) (step S  101 ), and the lower  1  word is stored in the register AL ( 301   b ) (step S  102 ).  
         [0073]    Next, the result ( 201   a ) of ADDing the respective upper  1  words of the comparison data and mask data having the same index of the first block ( 201 ) of the data table ( 200 ) is stored in register DH ( 304   a ) (step S  103 ), and the result of ADDing the register AH ( 301   a ) and register DH ( 304   a ) is stored in the register EH ( 305   a ) (step S  104 ).  
         [0074]    Next, register DH ( 303   a ) and register EH ( 305   a ) are compared (step S  105 ), and if they are not equal, the index used in the two part search in register RI ( 306 ) is set at the half of the value of the two part search object data number (2 N−1 ) serves as the first index (step S  106 ), and the register RK ( 307 ) is set to the same value, which is the offset to the next search position from the index (step S  107 ).  
         [0075]    Here, the reason for setting the number of two part search object data to 2 N−1  will be explained referring to FIG. 8.  
         [0076]    In the two part search, a new index that is found when the search range is divided into two equal parts will always be at the exact center of the new search range, and thus there is no need to control the upper or lower limits of the search range, and while continuously dividing the offset value from the index into two equal parts, the next search position can be found by using only addition and subtraction.  
         [0077]    Next, after step S  107 , the offset to the next search position from the index is found by determining whether or not the register RK ( 307 ) is 0 (step S  108 ), and if it is not 0, the content of the register RK ( 307 ) is shifted one bit to the right (step S  109 ).  
         [0078]    Next, the upper  1  words ( 201   a ,  202   a , . . . ) of the result of ADDing the comparison object data of the blocks ( 201 ,  202 , . . . ) of the data table ( 200 ) shown by register RI ( 306 ) and the mask data is stored in register DH ( 304   a ) (step S  110 ), and the result of ADDing the register AH ( 301   a ) and the register DH ( 304   a ) is stored in register EH ( 305   a ) (step S  111 ).  
         [0079]    Next, the contents of the register DH ( 304   a ) and the register EH ( 305   a ) are compared to ascertain whether or not they are identical (step S  113 ), and if they are not equal, it is determined whether the content of register EH ( 305   a ) is larger than the register DH ( 304   a ) (step S  112 ). If it is smaller, the content of the register RK ( 307 ) is subtracted from the register RI ( 306 ) (step S  114 ), and in step S  113 , if it is larger, the content of register RK ( 307 ) is added to register RI ( 306 ) (step S  115 ).  
         [0080]    This is how finding the next index of the two part search is carried out. After step S  114  or step S  115 , the control moves to step S  108 , and it is determined whether or not the register RK ( 307 ) is 0.  
         [0081]    Here, in the case that it is 0,it means that it is determined that there is no matching comparison object data present in the comparison of the section filter, and the index in the register P ( 300 ) is set to minus 1 (step S  122 ).  
         [0082]    In addition, in step S  105  or step S  112 , in the case that the upper  1  word of the comparison object data matches, register BL ( 304 ) is set to the lower  1  word ( 201   b    202   b , . . . ) of the comparison data in the same block as the block ( 201 ,  202 , . . . ) of the data table ( 200 ) having the matching content of the register DH ( 304   a ) (step S  116 ), and the register CL is set to the lower  1  word of the same mask data ( 303 ) (step S  117 ).  
         [0083]    Next, the result of ADDing the register BL ( 302 ) and the register CL ( 303   b ) is stored in register DL ( 304   b ), and the result of ANDing the register AL ( 301   b ) and the register CL ( 303   b ) is stored in register EL ( 305   b ) (step S  119 ).  
         [0084]    Here, the contents of register DL ( 304   b ) and the register EL ( 305   b ) are compared (step S  120 ), and if they are equal, the indexes ( 201   d,    202   d , . . . ) of the current blocks ( 201 ,  202 , . . . ) are made the indexes of the matching comparison data and stored in register P ( 300 ) (step S  121 ), and the flow terminates.  
         [0085]    In step S  120 , in the case that there is no match, this means that there is no matching comparison object data present in the comparison of the section filter, and the index in the register P ( 300 ) is set as minus 1 (step S  122 ), and the flow terminates.  
         [0086]    Moreover, the segmented processing method of the transport stream of a digital television of the present invention as explained above is usually recorded on recording media.  
         [0087]    In this manner, the first effect of the present invention is that the high speed section filter processing is enabled. The reason is that there is no needless comparison of the upper and lower words of the section data because the upper  1  word of the comparison data and the corresponding mask data are ADDed in advance since the upper  1  word does not change with respect to the lower  1  word, the result is made a key, and a two part search is carried out; the two part search itself sets the number of search items at 2 N−1 , and thus the search position is always found without having to manage the upper and lower limits of the search; and furthermore, the lower  1  word is compared only in the case that the upper words match.  
         [0088]    In addition, although the lower  1  word of the comparison data changes frequently compared to the upper  1  word, a sorting operation for carrying out a two part search does not occur at each overwriting of the lower  1  word of the comparison data because the lower  1  word of the comparison data in the block of the data table ( 200 ) can be overwritten using the data pointer table ( 210 ), and therefore there is also the merit that processing does not increase when compared to the overwriting of conventional comparison data.  
         [0089]    The substantial effect of the present invention can be represented by the following formula as a function of the time consumed in processing by the current method of realization and the method of the present invention.  
         [0090]    The worst case of the number of clock cycles for processing before the present invention has been:  
           Tp= ( N− 1)×(2 a+ 12)+6 a+ 19; 
         [0091]    where ‘N’ is the number of data and ‘a’ is the access clock cycle of the memory.  
         [0092]    In addition, in with the present invention, this can be represented by the following formula:  
           Tn =( a +14) log 2 ( N− 1)+4 a +12 
         [0093]    Therefore, when the data number N=32 and a=5 clock cycles, the total clock cycles is as follows.  
         [0094]    Here, Tp=731 clock cycles, and Tn=108 clock cycles. Therefore, by the present invention, there is a reduction of 85%, since 108/731=15%.  
         [0095]    In addition, the operating frequency of the general purpose personal computer that was used is 100 MHz and 1 clock cycle was 0.01 μsec, and thus by the present invention, the processing can be completed in 1.08 μsec, in contrast to the 7.31 μsecs of the conventional technology.  
         [0096]    Because of this, the processing of the TS packets can be easily carried out within each 9.4 μsec interval without loss of data, and thereby TS Demux processing using software becomes possible. Therefore, hardware can be reduced, which is related to reduction in chip size, and large-scale cost reductions can be implemented.