Code conversion method and device thereof
Abstract
This record has no abstract on file.
Term
Term ended
Expired 2 February 2024, 2.6 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
9 claims: 4 independent, 5 dependent
- 1階層データ構造を以て格納された入力コードを受け取るステップであって、前記入力コードは、当該入力コード中にエンコードされたデータの量に関するパラメータと、前記階層データ構造の第1層におけるユーザデータと、前記階層データ構造の第2層におけるメインデータとを含む入力コードであるステップと、 前記階層データ構造を以て格納され、かつ前記入力コード中に含まれるメインデータと一致するメインデータを含む出力コードを生成するべく、前記ユーザデータを前記階層データ構造の第3層に移動し、かつ当該移動により影響を受けるコードサイズの変化を反映するように前記パラメータを変更するように前記入力コードを変更するステップと を備えたことを特徴とするコード変換方法。
- 2請求項1記載のコード変換方法において、 前記階層データ構造はISO13818-2規格に準拠し、 前記入力コード中にエンコードされたデータの量に関するパラメータは、 ビットレート値、VBV(Video Buffering Verifier )バッファサイズ値、VBVディレイ値のうち の1つであり、 前記メインデータは圧縮された画像データを含む ことを特徴とするコード変換方法。
- 3請求項2記載のコード変換方法において、 前記階層データ構造の第1層はGOP(Group of Pictures)層であり、 前記階層データ構造の第3層はピクチャ層である ことを特徴とするコード変換方法。
- 4請求項2記載のコード変換方法において、 前記階層データ構造の第1層はピクチャ層であり、 前記階層データ構造の第3層はGOP(Group of Pictures)層である ことを特徴とするコード変換方法。
- 5請求項1記載のコード変換方法において、 前記入力コード中の 前記ユーザデータの位置とサイズとを特定する ための付加情報を生成するステップを更に備え、 前記 ユーザデータの移動 を前記付加情報に従って進めることを特徴とするコード変換方法。
- 6階層データ構造を以て格納された入力コード中の、当該入力コード中にエンコードされたデータの量に関するパラメータと、前記階層データ構造の第1層におけるユーザデータと、前記階層データ構造の第2層におけるメインデータとを特定するように構成された データ解析部と、 前記階層データ構造を以て格納され、かつ前記入力コード中に含まれるメインデータと一致するメインデータを含む出力コードを生成するべく、前記ユーザデータを前記階層データ構造の第3層に移動し、かつ当該移動により影響を受けるコードサイズの変化を反映するように前記パラメータを変更するように前記入力コードを変更する 多重化部とを備えたことを特徴とするコード変換装置。
- 7請求項6記載のコード変換装置において、 前記階層データ構造はISO13818-2規格に準拠し、 前記入力コード中にエンコードされたデータの量に関するパラメータは、ビットレート値、VBV(Video Buffering Verifier )バッファサイズ値、VBVディレイ値のうちの1つであり、 前記メインデータは圧縮された画像データを含むことを特徴とするコード変換装置。
- 8請求項7記載のコード変換装置において、 前記階層データ構造の第1層はGOP(Group of Pictures)層であり、 前記階層データ構造の第3層はピクチャ層であることを特徴とするコード変換装置。
- 9請求項7記載のコード変換装置において、 前記階層データ構造の第1層はピクチャ層であり、 前記階層データ構造の第3層はGOP(Group of Pictures)層であることを特徴とするコード変換装置。
Independent claims9
62 paragraphs, as filed
The present invention relates to a method and an apparatus for code translation of compressed and encoded multimedia information, and particularly to a format conversion or addition of user data.
ISO13818-2 is known as a standard related to compression coding technology for multimedia information, which is generally called MPEG-2 (Moving Picture Experts Group Phase 2). The MPEG-2 video stream has a hierarchical structure, and is composed of a sequence layer, a GOP (Group of Pictures) layer, a picture layer, a slice layer, a macroblock layer, and a block layer in order from the top. At the beginning of each layer, a special pattern with a length of 4 bytes called a start code is inserted. This start code starts with 3 bytes of 0x00, 0x00, and 0x01, and the next 1 byte indicates the type of data following the start code (0x indicates that it is in hexadecimal notation. The same shall apply hereinafter). .. For example, the fourth byte of each start code of the sequence layer, the GOP layer, the picture layer, and the slice layer is 0xB3, 0xB8, 0x00, and 0xAF, respectively.
In MPEG-2, the user extension area can be set in each of the sequence layer, GOP layer, and picture layer, and the start code of user data is only determined to be 4 bytes consisting of 0x00, 0x00, 0x01, and 0xB2. Therefore, user data in an arbitrary format based on the original user extension can be arranged in any user extension area.
In fact, digital storage media such as DVD (Digital Versatile Disk) and digital broadcasting such as DVB (Digital Video Broadcasting) have their own user expansion while complying with MPEG-2. For example, the standard of user data for closed captions is not unified, and the actual situation is that format conversion between user data is required.
A real-time coding technique for storing character information such as English subtitle information as user data in a GOP header is known (see Patent Document 1).
In addition, a bit rate converter (transcoder) capable of reducing the amount of processing in conversion between TSs (Transport Streams) has also been proposed (see Patent Document 2).
Now, the simplest way to convert the format of user data is to connect the decoder of one system to the encoder of the other system. However, data other than user data, that is, main data, is wastefully processed and causes deterioration in image quality.
On the other hand, when the format of only the user data in the input code is simply converted to obtain the output code, if the amount of data changes significantly due to the conversion, the rate control may break down. .. Bit rate value and VBV (Video Buffering Verifier) buffer size value are included in the sequence header and VBV delay value is included in the picture header as parameters that determine the allowable range of the amount of data, and the rate based on these parameters. There is a risk that control will break down. The same applies when user data is added to the input code to obtain an output code.<patcit num="1"><text>Japanese Unexamined Patent Publication No. 2001-145067</text></patcit><patcit num="2"><text>Japanese Unexamined Patent Publication No. 2001-251616</text></patcit>
An object of the present invention is to provide a code conversion method and an apparatus thereof that can realize format conversion and addition of user data without causing a failure in rate control.
In order to achieve this object, the present invention receives an input code conforming to a certain standard, and converts the format of user data arranged in the user extension area in the input code into an output code, or the input code. When adding user data to the output code, change the parameters that determine the allowable range of the amount of data in the input code so that it can be converted or added to the user data format, and then change the parameters according to the changed parameters. The input code after the parameter change and the user data are multiplexed in a predetermined format so as to generate the output code.<u style="single">Specifically, first, it receives an input code stored in a hierarchical data structure. The input code includes parameters relating to the amount of data encoded in the input code, user data in the first layer of the hierarchical data structure, and main data in the second layer of the hierarchical data structure. Then, the user data is moved to the third layer of the hierarchical data structure in order to generate an output code including the main data that is stored in the hierarchical data structure and matches the main data included in the input code, and by the movement. Change the input code to change the parameters to reflect changes in the affected code size.</u>
Hereinafter, embodiments of the present invention relating to code conversion will be described in detail with reference to the drawings. However, it simplifies the problem. First, the input code is an MPEG-2 video stream, which is converted into an output code in a predetermined format. The input code is placed in the user extension area (GOP user data area) of the GOP layer, and the output code is placed in the user extension area (picture user data area) of each picture layer. And. In addition, it is assumed that 1GOP consists of a maximum of 15 frames, and that 1GOP contains only user data corresponding to some first frames. That is, it is assumed that the user data corresponding to each picture is not always included. Before conversion, only one of the 15 frames had a 4-byte start code, but after conversion, each frame has a 4-byte start code for user data. Therefore, even when considering only the start code, the bit rate will increase by (14/15) × 30 × 4 × 8 bps due to conversion, assuming 30 frames per second. In addition, the position of the user data after conversion is not exact. For example, user data for closed captions does not require perfect synchronization with picture data.
The above assumptions of user data position and situations in which user data corresponding to all frames do not necessarily exist are valid assumptions in currently used systems such as closed captions.
FIG. 1 shows a configuration example of a code conversion device according to the present invention. The code conversion device of FIG. 1 includes a data analysis unit 101, a data buffer 102, and a multiplexing unit 103. For example, the data analysis unit 101 and the multiplexing unit 103 form one LSI called a stream controller 104, and a memory functioning as a data buffer 102 is externally attached to the LSI. The data analysis unit 101 analyzes the input code 121 and converts the parameters (bit rate value, VBV buffer size value, and VBV delay value) that determine the allowable range of the amount of data in the input code 121 into the user data format. It has a function of generating additional information for identifying the user data in the input code 121 from the other main data. The data buffer 102 is a memory for temporarily storing the input code after changing the parameters together with the additional information. 122 is the write address from the data analysis unit 101 to the data buffer 102, 123 is the write data from the data analysis unit 101 to the data buffer 102, and 124 is the write data size notified from the data analysis unit 101 to the multiplexing unit 103. .. The multiplexing unit 103 has a function of multiplexing the input code after the parameter change and the user data in a predetermined format according to the additional information in the data buffer 102 so as to generate the output code 127 according to the changed parameter. Have. 125 is the read address from the multiplexing unit 103 to the data buffer 102, and 126 is the read data from the data buffer 102 to the multiplexing unit 103.
FIG. 2 is a data format diagram showing the input code 121, FIG. 3 is an intermediate code stored in the data buffer 102, and FIG. 4 is a data format diagram showing the output code 127.
In FIG. 2, 201 is a sequence header, 202 is a GOP header, 203 is GOP user data, 204 is a picture header, and 205 is picture data. The area of GOP user data 203 contains user data for closed captions. Only one picture is shown in FIG. 2, and in reality, "picture header 204 + picture data 205" is repeated for the number of pictures.
In the intermediate code shown in FIG. 3, 305 is a sequence header, 306 is a GOP header, 307 is GOP user data, 308 is a picture header, and 309 is picture data. It corresponds to GOP user data 203, picture header 204, and picture data 205. This intermediate code further includes additional information 300 for identifying GOP user data 307 from main data such as picture data 309. In the additional information 300, 301 is the picture information including the picture size and the picture type, 302 is the user data position, 303 is the user data size, and 304 is the picture data position. Of these, the picture size in the picture information 301 is the overall size of the picture included in the processing unit, and the picture types are I (Intra) picture, P (Predictive) picture, and B (Bidirectionally predictive). ) Represents the distinction between coding types called pictures. Further, the start position and size of the GOP user data 307 are indicated by the user data position 302 and the user data size 303, respectively, and the start position of the picture data 309 is indicated by the picture data position 304.
The data analysis unit 101 stores the data having the additional information 300 as shown in FIG. 3 in the data buffer 102. Since a start code, which is a special pattern with a length of 4 bytes, is always included in the data delimiter, such a data structure can be easily created if the memory has random access. Moreover, by providing the additional information 300, it becomes easy to access the data buffer that distinguishes the GOP user data 307 from other data. Further, since there is picture information 301 including the picture size, the end of the data structure of FIG. 3, that is, the start point of the next additional information 300 can be easily accessed.
The bit rate value and the VBV buffer size value determine the upper limit of the amount of data, and the VBV delay value determines the lower limit of the amount of data in the case of CBR (Constant Bit Rate). However, if the VBV delay value is 0xffff, it is regarded as VBR (Variable Bit Rate), and the restriction on the lower limit of the amount of data is removed.
Therefore, the bit rate value and VBV buffer size value in the sequence header 305 and the VBV delay value in the picture header 308 have already been rewritten by the data analysis unit 101 so as to correspond to the format conversion of the user data. For example, increase the bit rate value by (14/15) x 30 x 4 x 8 bps, which is the expected bit rate increase due to format conversion of user data, change the VBV buffer size value to the maximum value allowed by the standard, and VBV. Set the delay value to 0xffff to set the VBR. However, if the user data is reduced by the format conversion, the rewritten bit rate value may be smaller than the original bit rate value. The rewritten VBV buffer size value may be equal to or larger than the maximum expected picture size, and the original VBV buffer size value may be used as it is. You can also use the method of stopping the VBR setting and recalculating the VBV delay value with the CBR as it is for stuffing. Further, these parameter changes may be performed by the multiplexing unit 103.
The multiplexing unit 103 multiplexes the GOP user data 307 and the other main data according to the additional information 300 in the data buffer 102 so as to generate the output code 127 having the format shown in FIG.
In FIG. 4, 401 is a sequence header, 402 is a GOP header, 403 is a picture header, 404 is picture user data, and 405 is picture data. It supports GOP user data 307 and picture data 309. Only one picture is shown in FIG. 4, and in reality, "picture header 403 + picture user data 404 + picture data 405" is repeated for the number of pictures.
Hereinafter, details of each of the data analysis unit 101 and the multiplexing unit 103 will be described with reference to FIGS. 5 and 6.
FIG. 5 shows an example of the internal configuration of the data analysis unit 101 in FIG. The data analysis unit 101 of FIG. 5 inserts the first, second, third and fourth input registers 501,502,503,504, the start code detection unit 505, the data analysis control unit 506 for controlling the whole, and the additional information 300. Consists of a selector 507 for.
The data analysis unit 101 repeats the following steps 1 to 7 for each byte. That is, the data is taken in in step 1, and it is determined in step 2 whether or not it is a start code together with the already input 3-byte data. At that time, if the predetermined condition is satisfied, the additional information writing process of step 3 is performed. After this process, the pointer for writing data is increased by a predetermined size in preparation for writing additional information for the next picture. In step 4, various flags are set based on the start code. In step 5, the bit rate value, VBV buffer size value, and VBV delay value are changed, respectively. In step 6, various counters are increased. In step 7, the multiplexed data is written to the data buffer 102.
Hereinafter, various flags and counters included in the data analysis control unit 506 will be described before the details of the individual steps are described. First, PICSIZE is a counter that indicates the size of a picture, which is a processing unit, and is used for rate control and detecting the next additional information position. USER_COUNT is a counter indicating the start position of user data, USERSIZE is a counter indicating the size of user data, and PICDATA_COUNT is a counter indicating the start position of picture data. These four counters correspond to the picture size, the user data position 302, the user data size 303, and the picture data position 304 in the picture information 301 in FIG. 3, respectively. SEQHEAD_FLAG, GOPHEAD_FLAG, PICHEAD_FLAG, USER_FLAG and SLICE_FLAG are flags indicating that the start code of each of the sequence header, GOP header, picture header, user data and slice has been detected, respectively. PICTOP_COUNT is a counter that indicates the number of bytes in the picture header, and is used when changing the VBV delay value. BP and WP are pointers to the data buffer 102, BP is a first pointer indicating the writing position of the additional information 300, and WP is a second pointer indicating the writing position of other data.
<Step 1: Import input data> The value of the third input register 503 is written to the fourth input register 504. The values are written in the following order, and the 1-byte data of the input code 121 is written to the first input register 501.
<Step 2: Start code detection> The start code detection unit 505 determines whether the 4-byte data of the 1st to 4th input registers 501 to 504 matches the start code, or whether all the bytes are 0x00.
<Step 3: Write additional information> The whole of step 3 is (a) when the sequence header is detected, (b) SEQHEAD_FLAG = 0, and when the GOP header is detected, (c) when SEQHEAD_FLAG = 0, GOPHEAD_FLAG = 0 and the picture header is detected. Only in any of these cases, the following processing is performed.
The first operation in step 3 is the process of writing the additional information 300 to the data buffer 102 in a predetermined format. Here, each value of PICSIZE, USER_COUNT, USERSIZE, and PICDATA_COUNT is written to the address indicated by the first pointer BP.
Next, the first and second pointers BP and WP are updated. Specifically, the value of the second pointer WP is assigned to the first pointer BP, and the value of the second pointer WP is increased by the size of the additional information 300. By this operation, the position of the additional information of the next picture is written to the first pointer BP, and the position of the additional information next to the additional information is written to the second pointer WP.
Finally, various flags and counters are initialized. Specifically, PICSIZE, USER_COUNT, USERSIZE, PICDATA_COUNT and PICTOP_COUNT are all initialized to 0, and SEQHEAD_FLAG, GOPHEAD_FLAG, PICHEAD_FLAG and USER_FLAG are all cleared to 0.
<Step 4: Flag update process> Based on the result of start code detection, clear and set the corresponding flag. Specifically, (1) when a sequence header is detected, set SEQHEAD_FLAG = 1, GOPHEAD_FLAG = 0, PICHEAD_FLAG = 0, USER_FLAG = 0. (2) When the GOP header is detected, set GOPHEAD_FLAG = 1, PICHEAD_FLAG = 0, USER_FLAG = 0. (3) When a picture header is detected, set PICHEAD_FLAG = 1 and USER_FLAG = 0. (4) When the start code of user data is detected, set the contents of GOPHEAD_FLAG in USER_FLAG. (5) When the slice start code is detected, set SEQHEAD_FLAG = 0, GOPHEAD_FLAG = 0, PICHEAD_FLAG = 0, USER_FLAG = 0, SLICE_FLAG = 1.
<Step 5: Data rewriting process> Change the bit rate value, VBV buffer size value, and VBV delay value as described above. When SEQHEAD_FLAG = 1, PICSIZE indicates the number of bytes from the sequence header, and it can be determined whether or not it corresponds to the bit rate value and VBV buffer size value based on the value. Also, use PICTOP_COUNT to determine and rewrite 2 bytes of VBV delay value.
<Step 6: Counter increase> It is assumed that step 6 and the next step 7 do not operate when all the values of the first to fourth input registers 501 to 504 are 0x00. That is, as a result of skipping step 7 of writing data, stuffed zeros (redundant data in the main data) are deleted. According to the standard, even if such a pattern is deleted, there is no adverse effect.
If any of the 1st to 4th input registers 501 to 504 is other than 0x00, the operation is as follows. That is, PICSIZE increases independently of the flag. USER_COUNT increases only when USER_FLAG = 0 and PICHEAD_FLAG = 0. USERSIZE increases only when USER_FLAG = 1. PICDATA_COUNT increases only when SLICE_FLAG = 0. PICTOP_COUNT increases only when PICHEAD_FLAG = 1. As a result, various counters can count a predetermined size according to the generation of the start code.
<Step 7: Write data> If any of the 1st to 4th input registers 501 to 504 is other than 0x00, the value of the 4th input register 504 is written to the address position of the data buffer 102 specified by the 2nd pointer WP, and the 2nd pointer WP Is increased by 1.
As for the write data size 124, the value of the first pointer BP of the data analysis control unit 106 is output as it is. That is, the write data size 124 indicates the address where the additional information 300 was last written.
If data is written to the data buffer 102 in the flow as described above, the format shown in FIG. 3 can be realized. The most important point here is that the data buffer 102 can be accessed separately from the area of the GOP user data 307 and the area of the other main data. If such a distinction is made, other methods such as keeping the buffer in a separate area can be used. However, the buffer utilization efficiency is improved by identifying the data by adding the additional information 300 on a single buffer rather than having another buffer. It is also possible to add other information such as the original data size to the additional information 300 and use it.
FIG. 6 shows an example of the internal configuration of the multiplexing unit 103 in FIG. The multiplexing unit 103 of FIG. 6 includes an additional information reading unit 601 that outputs additional information in order, a main additional information buffer 602 for holding additional information, a main data reading unit 603 that outputs main data in order, and a user. From the user data reading unit 604 that outputs data in order, the user additional information buffer 605 for holding the additional information referred to by this user data reading unit 604, the multiplexing control unit 606, and the main data reprocessing unit 701. It is configured. The main additional information buffer 602 is used when multiplexing the main data, and the additional information is deleted every time one picture is multiplexed. On the other hand, the user additional information buffer 605 is used when multiplexing user data, and the additional information is deleted only when the user data can be multiplexed. 621 and 702 are the main data, 622 and 703 are the main data valid signals, 623 is the user data, 624 is the user data valid signal, 625 is the frame number, and 704 is the size change command. The multiplexing control unit 606 outputs the output code 127 in the format shown in FIG. 4 by outputting the main data 702, the user data 623, the start code, and the like at appropriate timings. The write data size 124 indicates how far the data analysis unit 101 has written the data, and the multiplexing unit 103 does not mistakenly process the unwritten data. The function of the main data reprocessing unit 701 will be described later.
The rough operation of the multiplexing control unit 606 is to first calculate the amount of user data that can be arranged in each picture layer based on the data of the main additional information buffer 602, and then sequence header 305, GOP header 306, and picture header in FIG. After outputting 308 in order, GOP user data 307 is multiplexed by the amount of data that can be arranged, and then picture data 309 is output. As a result, the sequence header 401, the GOP header 402, the picture header 403, the picture user data 404, and the picture data 405 as shown in FIG. 4 can be obtained.
Here, the amount of data after conversion increases due to the arrangement of the picture user data 404, but the required user data can always be arranged in a plurality of frames. Further, since the amount of data that can be arranged is calculated in advance, the rate control does not break down due to this arrangement process. Since the bit rate value is increased from the original value, the amount of unplaceable data does not continue.
More specifically, the additional information reading unit 601 has a read pointer and a counter for the picture size inside, the write address 122 is larger than the read pointer, and the main additional information buffer 602 has a vacancy. Sometimes it starts working. First, the additional information 300 is read from the data buffer 102 using the read pointer and written to the main additional information buffer 602. Next, the position of the next additional information is determined using the picture size information obtained from the picture information 301, and the read pointer of the data buffer 102 is increased to that position. The main additional information buffer 602 can store a plurality of sets of additional information.
The main data reading unit 603 reads only the main data in order based on the additional information stored in the main additional information buffer 602, and outputs this to the main data reprocessing unit 701. Although the details will be described later, the main data reprocessing unit 701 normally supplies the given main data 621 to the multiplexing control unit 606 as it is as the main data 702. When the reading of one picture is completed, the corresponding additional information in the main additional information buffer 602 is deleted. The main data reading unit 603 sets the main data valid signal 622 to 1 when the valid main data 621 is ready, and notifies the multiplexing control unit 606 via the main data reprocessing unit 701 that the main data valid signal 622 is ready. .. At this time, the main data reprocessing unit 701 supplies the given main data valid signal 622 to the multiplexing control unit 606 as it is as the main data valid signal 703.
The user data reading unit 604 writes the additional information to the user additional information buffer 605 in order, and only reads the GOP user data 307 in order according to this information. At this time, if the size of the user data is 0, the next picture is searched. When the valid user data 623 is ready, the user data reading unit 604 sets the user data valid signal 624 to 1 and outputs the frame number 625 corresponding to the user data 623. The frame number 625 includes information on the number of the picture containing this data from the beginning and information on the number of words from the beginning of the user data to be read next, and the frame number 625 includes the information on the number of frames of the corresponding user data. It shows information as to whether it should be placed as user data for the eyes.
The multiplexing control unit 606 operates as follows after waiting for the main data valid signal 703 to become 1 for each picture. First, it is decided whether the user data should be placed in the current multiplexed target picture. That is, the optimum user data arrangement picture is determined while simulating so that the VBV buffer does not collapse.
First, when the user data valid signal 624 is 0, the user data is not arranged.
When the user data valid signal 624 is 1 and the frame number 625 is equal to or less than the picture number of the main data to be multiplexed, it is arranged in the picture currently being processed as much as possible. Therefore, a buffer simulation assuming that the user data is placed is performed on the current picture, and if there is no failure, the user data is placed. Specifically, the picture size after user data placement is calculated from the picture size and user data size 303 in the picture information 301 obtained from the main additional information buffer 602, and the current VBV is larger than the picture size after user data placement. Judge whether the buffer occupancy is large.
When the user data valid signal 624 is 1 and the frame number 625 is larger than the picture number of the main data to be multiplexed, the user data is placed in the current picture, the user data is placed in the next picture, and so on. The position for arranging each picture is changed, and the process is repeated as much as possible until the frame is arranged for the frame matching the frame number 625. These simulations are possible when the additional information up to the corresponding frame is stored in the main additional information buffer 602. If the main additional information buffer 602 does not contain the additional information of the picture corresponding to the frame number 625, the user data is not arranged.
In these series of processes, if the position where the VBV buffer does not collapse is only the current multiplexing target picture, the user data is placed in the current picture.
Based on the above condition determination, it is determined whether or not to arrange the picture user data 404. If it is determined to be arranged here, the picture user data 404 is arranged together with the user start code after the picture header 403.
Since the start position of the picture data 309 is indicated by the picture data position 304 in the additional information 300, the picture data 405 can be multiplexed very easily. Finally, the value of VBV buffer occupancy is calculated based on the amount of multiplexed data of output code 127. This value will be used when multiplexing the next picture.
As described above, the multiplexing unit 103 of FIG. 6 operates so as to multiplex the picture user data 404 at the position indicated by the frame number 625 as much as possible. That is, the synchronization shift between the main data and the user data in the output code 127 is minimized.
If the frame number 625 is larger than the picture number of the main data to be multiplexed, the buffer simulation may not be performed and the picture user data 404 may be processed as not being arranged. In this case, it will be written to the picture, which is the subsequent processing unit. When this method is used, the main additional information buffer 602 needs only one picture, and the process can be simplified.
As described above, according to the present embodiment, the upper limit of the amount of data is raised by increasing the bit rate value or the like in response to the increase in the amount of data generated when converting the format of only user data, and from CBR. Code conversion is achieved by lowering the lower limit of the amount of data by changing to VBR and inserting user data into the picture layer by the amount of data that can be arranged. Since only the user data is the target of the format conversion, unnecessary processing related to the picture data is omitted, and as a result, the code conversion is speeded up and the image quality is not deteriorated.
By the way, in the above operation, when the synchronization deviation between the main data and the user data in the output code 127 does not fall within a predetermined amount, the main data reprocessing unit 701 functions to change the data amount of the main data.
FIG. 7 shows an example of the internal configuration of the main data reprocessing unit 701 in FIG. The main data reprocessing unit 701 of FIG. 7 is composed of an I picture decoder 801, an I picture encoder 802, a selector 803, and a size control unit 804, and the main data 621 from the main data reading unit 603 is I. Only in the case of a picture, when the size change command 704 indicates that the synchronization deviation between the main data and the user data in the output code 127 exceeds a predetermined amount, the main data 621 is decoded and the result of the decoding is By re-encoding, the amount of data in the main data 702 is reduced. However, when the size change command 704 is not given, the selector 803 selects the main data 621 and the main data valid signal 622 supplied from the main data reading unit 603, so that the main data 621 and the main data valid signal are selected. The 622 is directly supplied to the multiplexing control unit 606 as the main data 702 and the main data valid signal 703.
A particular problem here is when user data cannot be inserted due to the large amount of data in one frame. This happens more often in I-pictures that do not refer to other pictures than in P-pictures and B-pictures. Therefore, the multiplexing control unit 606 monitors the picture type in the picture information 301, and controls the size of the size change command 704 only when it is found by the VBV buffer simulation that the buffer failure occurs due to the insertion of user data in the I picture. It will be given to Part 804.
Upon receiving the size change command 704, the size control unit 804 gives the size specification 805 to the I picture encoder 802. The I-picture encoder 802 re-encodes the result of decoding by the I-picture decoder 801 to generate main data with a reduced amount of data, and outputs a main data valid signal in place of the main data valid signal 622. The selector 803 supplies the main data and the main data valid signal from the I picture encoder 802 as the main data 702 and the main data valid signal 703 to the multiplexing control unit 606 according to the switching signal 806 from the size control unit 804.
However, it is unlikely that the situation in question here will occur frequently. According to the present embodiment, since the main data reprocessing unit 701 executes re-encoding only in such a special case, there is an effect of suppressing synchronization deviation without causing much deterioration in processing speed.
The present invention can be applied not only to the format conversion of user data but also to the addition of user data.
As described above, according to the code conversion method and its apparatus according to the present invention, it is possible to realize format conversion and addition of user data without causing a failure in rate control, and compression-encoded multimedia. It is useful for code conversion of information.
<figref num="1">It is a block diagram which shows the structural example of the code conversion apparatus which concerns on this invention.</figref><figref num="2">It is a data format diagram which shows the input code in the code conversion apparatus of FIG.</figref><figref num="3">It is a data format diagram which shows the intermediate code in the code conversion apparatus of FIG.</figref><figref num="4">It is a data format diagram which shows the output code in the code conversion apparatus of FIG.</figref><figref num="5">It is a block diagram which shows the internal structure example of the data analysis part in FIG.</figref><figref num="6">It is a block diagram which shows the internal structure example of the multiplexing part in FIG.</figref><figref num="7">It is a block diagram which shows the internal structure example of the main data reprocessing part in FIG.</figref>
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| JP2002218400A | Cites | Japan | Examiner |
| JP2002218458A | Cites | Japan | Search report |
| JP2002218400A | Cites | Japan | – |
| JP2002218458A | Cites | Japan | – |
9 members in 5 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 2003026692 | Japan | A | |
| 2003026692 | Japan | A | |
| 2003026692 | Japan | – | |
| 2004001015 | Japan | W | |
| 2004001015 | Japan | W | |
| 2003200326692 | – | – | – |
| 2004001015 | – | – | – |
| JP20030026692 | – | – | – |
| WO2004JP01015 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| WO2004071085A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP1599043A1 | European Patent Office (EPO) | A1 | |
| CN1717931A | China | A | |
| JPWO2004071085A1 | Japan | A1 | |
| US2006153290A1 | United States of America | A1 | |
| CN100369481C | China | C | |
| JP4676331B2This record | Japan | B2 | |
| US7940799B2 | United States of America | B2 | |
| EP1599043A4 | European Patent Office (EPO) | A4 |
13 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313111S111 | S111 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 4676331
- Publication, DOCDB
- 4676331
- Publication, EPODOC
- JP4676331B
- Application
- 2005504818
- Application, DOCDB
- 2005504818
- Application, EPODOC
- JP20050504818
Titles2
- Japanese
- コード変換方法及びその装置
- English
- Code conversion method and its device
Classification
- CPC, 2
- H04N21/23406
- H04N21/44004
- IPC, 11
- H04N7 26
- H04N7 173
- H04N7 24
- H04N19 00
- H04N19 156
- H04N19 159
- H04N19 40
- H04N19 46
- H04N19 70
- H04N21 2343
- H04N21 236