WO2003081784A1 - Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream - Google Patents

Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream Download PDF

Info

Publication number
WO2003081784A1
WO2003081784A1 PCT/JP2003/003035 JP0303035W WO03081784A1 WO 2003081784 A1 WO2003081784 A1 WO 2003081784A1 JP 0303035 W JP0303035 W JP 0303035W WO 03081784 A1 WO03081784 A1 WO 03081784A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
encoding
variable
variable length
decoding
Prior art date
Application number
PCT/JP2003/003035
Other languages
English (en)
French (fr)
Inventor
Shinya Kadono
Yoshinori Matsui
Satoshi Kondo
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DK03710347.0T priority Critical patent/DK1445869T3/da
Priority to AU2003221378A priority patent/AU2003221378B9/en
Priority to US10/476,647 priority patent/US6954156B2/en
Priority to EP03710347A priority patent/EP1445869B1/en
Priority to CA2447840A priority patent/CA2447840C/en
Priority to BRPI0303661A priority patent/BRPI0303661B1/pt
Priority to SI200332219T priority patent/SI1445869T1/sl
Priority to KR1020037015428A priority patent/KR100927510B1/ko
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to MXPA03010827A priority patent/MXPA03010827A/es
Priority to ES03710347T priority patent/ES2399422T3/es
Priority to EP16171139.5A priority patent/EP3098969B1/en
Publication of WO2003081784A1 publication Critical patent/WO2003081784A1/ja
Priority to US11/064,455 priority patent/US7088269B2/en
Priority to US11/368,437 priority patent/US7248190B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • Variable length encoding method variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bitstream
  • the present invention relates to a variable-length encoding method, a variable-length decoding method corresponding to the variable-length encoding method, a storage medium for storing a program that causes a computer to perform these processes, a variable-length encoding device, and a variable-length decoding device corresponding to the storage medium.
  • the present invention stores a dynamic variable-length encoding method that optimizes an encoding method based on already-encoded data, a variable-length decoding method corresponding to the encoding method, and a program that causes a computer to perform these processes.
  • the present invention relates to a storage medium, a dynamic variable-length encoding device that optimizes an encoding method based on encoded data, and a variable-length decoding device corresponding to the dynamic variable-length encoding device. (Background technology)
  • the MPEG (Moving Picture Experts Group) coding system mainly consists of a motion compensation interframe prediction unit, a DCT (discrete cosine transform) unit, and a variable length coding unit.
  • the motion compensated inter-frame prediction unit detects a motion vector from the input image and the previous image data, and creates prediction error data from the motion vector and the previous image data.
  • D C T unit converts the prediction error data to D C T.
  • the quantization unit quantizes the DCT coefficient, and the variable length coding unit assigns codewords to the quantized DCT coefficient and motion vector.
  • Image encoded data in the MPEG encoding system has a six-layer hierarchical structure of a sequence, a GOP (Group Of Picture), a picture, a slice, a macro block, and a block.
  • a picture is a basic coding unit corresponding to one image, and is composed of a plurality of slices.
  • a slice is a unit of synchronization recovery and is a band-like area composed of one or a plurality of macroblocks.
  • Variable length coding is a type of entropy coding. Since the coefficient after DCT conversion (DCT coefficient) value and motion vector value are biased in the occurrence probability, the probability of occurrence is high among these values. By assigning short codewords to values and assigning long codes and codewords to values with low probability of occurrence, the average amount of information is reduced.
  • variable length coding The main types of variable length coding are Huffman coding and arithmetic coding.
  • Huffman coding is a method of determining codewords using a Huffman code tree with each symbol as a leaf, and uses a correspondence table (code table) of codewords (bit strings) corresponding to each code.
  • Arithmetic coding is a technique for projecting a sequence of symbols into the interval [0, 1) according to the probability of occurrence, and expressing the probability space on the number line in binary form with an appropriate number within the interval.
  • arithmetic coding coding is always performed while monitoring statistical properties. Specifically, a codeword is determined by referring to the probability table while rewriting the probability table according to the image contents. More specifically, in arithmetic coding, the probability of use in arithmetic operations is calculated from the encoded data so that 1 og 2 (1 / p) bits are assigned to the sign of the occurrence probability p. Are updated sequentially.
  • bit sequences corresponding to codewords can be obtained only by arithmetic operations (addition / subtraction / division / division). The amount of memory can be reduced. In addition, even if the statistical properties change during encoding, the probability table can be rewritten.
  • arithmetic operations, especially multiplication and division require high computing power, and have the disadvantage that it is difficult to realize with low computing power equipment.
  • encoding is performed dynamically using encoded data. Since the encoding method is optimized, the compression efficiency can be improved compared to the fixed encoding method.
  • Dynamic coding by learning is performed, for example, after the picture header, that is, for each slice, macroblock, or block.
  • a fixed probability table is used for the initial value in each picture in arithmetic coding
  • a fixed variable-length code table is used as the initial code table in each picture in Huffman coding. Since fixed initial values are used in this way, it cannot be said that the compression efficiency of encoding is good until the optimal probability table and code table are obtained by learning after initialization. In particular, when the total number of data is small, the ratio of the number of data necessary for learning is large, and the compression rate is not so high.
  • the decoder cannot perform correct learning and cannot be decoded.
  • image data a transmission path error occurs. Degradation of image quality due to.
  • the learning result is reset periodically. However, if the reset interval is lengthened, the error is weakened by errors, so the reset interval must be shortened to some extent.
  • the current dynamic coding method does not sufficiently improve the compression efficiency.
  • An object of the present invention is to improve the compression efficiency of a variable-length encoding method used for image compression or the like.
  • Another object of the present invention is to correctly decode data encoded by a variable-length encoding method with improved compression efficiency.
  • variable-length encoding method is a variable-length encoding method that encodes each predetermined unit data with reference to the parameter table, and includes the following steps.
  • Initialization step to set to ⁇
  • Parameter table information encoding step for encoding information about the initialized parameter table
  • ⁇ Parameter acquisition step for acquiring from the parameter table the encoding parameters used for encoding each sub-data constituting the predetermined unit data
  • the encoding parameter represents the frequency of data generation, is obtained from the parameter table, and is referred to when encoding each sub-data.
  • the parameter table corresponds to the probability table, and further, the coding parameter is not limited to the force that corresponds to the probability.
  • the encoding parameters acquired from the parameter table are used in encoding each sub data, the compression efficiency when encoding predetermined unit data is improved.
  • the information about the initialized parameter table is encoded and arranged at a position where it can be obtained prior to the encoded predetermined unit data, the parameter table is encoded as an initial value at the time of decoding. It is possible to correctly decrypt the predetermined unit data.
  • the parameter table is updated based on the value of the encoded sub data, and the encoding parameter is obtained from the parameter table.
  • the parameter table is updated based on the value of the encoded sub-data, so that the compression efficiency when encoding the predetermined unit data is improved.
  • the initial value of the encoding parameter used in the sub data encoding step is derived based on the value of the immediately preceding encoded sub data. Obtained from the parameter table.
  • the initial value of the encoding parameter used in the sub-data encoding step is derived based on the value of the encoded sub-data. Is obtained from the parameter table.
  • the initial value of the encoding parameter can be derived from the optimal encoding parameter based on the encoding parameter acquired from the parameter table based on the value of the encoded sub data. Even if the contents of the previous sub-data differ greatly, the compression efficiency is high.
  • variable length encoding method in any one of claims 1 to 4, in the subdata encoding step, the subdata is arithmetically encoded with reference to an encoding parameter.
  • the parameter table corresponds to the probability table, and the encoding parameter corresponds to the probability.
  • variable-length encoding method in any one of claims 1 to 5, the information regarding the parameter table is the parameter table itself.
  • variable length encoding method in the parameter facial expression encoding step according to claim 6, only a part of the parameter table is encoded.
  • a part of the parameter table is a parameter part corresponding to encoded data having a high occurrence probability.
  • this encoding method only the part corresponding to the encoded data with a high occurrence probability in the initialized parameter table is encoded, so the amount of encoding is reduced, but sufficient for decoding. Can decrypt correctly.
  • the information regarding the parameter table is information indicating the parameter table.
  • variable length encoding method since the information indicating the parameter table is encoded, not the parameter table itself, the amount of encoding can be reduced.
  • the information regarding the parameter table is arranged as a part of common data for the predetermined unit data, and also has a function as a part thereof, so that the amount of encoding can be reduced.
  • variable length coding method in any one of claims 1 to 10, in the information coding step, information on the parameter table is coded by a fixed coding method.
  • this encoding method uses a fixed encoding method, the information about the initialized parameter table is statically encoded. Therefore, the information about the initialized parameter table is definitely decrypted.
  • variable length encoding method is the encoding determination step of determining whether to encode information about the initialized parameter table according to any one of claims 1 to 11, and And a flag arrangement step of arranging and outputting a flag for identifying a result at a position where the flag can be obtained before the encoded predetermined unit data.
  • whether or not the information related to the initialized parameter table has been encoded can be determined by a flag arranged at a position where it can be acquired prior to the encoded predetermined unit data.
  • the information about the parameter table used as the initial value is not encoded because, for example, there is a sufficiently large number of data until the parameter table is initialized next (that is, it is necessary for sufficient learning). The ratio of the number of data to the total number of data is small, so learning efficiency is good), or the parameter table used as the initial value almost matches the optimal parameter table obtained by learning .
  • the predetermined unit data is a picture in the image data.
  • the frequency of encoding the parameter table in all the image data is appropriate. Therefore, a part of the encoded data to be learned due to a transmission path error is lost. Even if the same parameter table as that at the time of decoding cannot be reproduced at the time of decoding, the state in which the image cannot be reproduced for several seconds or more will not occur by decoding the parameter table encoded at high frequency. In addition, there is no increase in redundancy in the data volume of the parameter table.
  • the predetermined unit data is a slice in the image data.
  • the frequency of encoding the parameter table within the entire image data is appropriate, and therefore, part of the encoded data to be learned due to transmission path errors is missing, and the same parameter table as that used for encoding is used. Even if it becomes impossible to reproduce at the time of decoding, decoding the parameter table encoded at high frequency does not cause a state in which the image cannot be reproduced for several seconds or more, and the data amount of the parameter table Redundancy in the case will not increase.
  • variable length decoding method is a method of decoding each predetermined unit data constituting a stream with reference to a parameter table, and includes the following steps.
  • ⁇ Parameter acquisition step for acquiring, from the parameter table, the encoding parameters used for decoding the sub-data constituting the predetermined unit data
  • the information about the parameter table is decoded, and the parameter table acquired based on the information is set to the initial value, so that the predetermined unit data can be correctly decoded.
  • variable length decoding method in claim 15, the parameter table is updated based on the value of the decoded sub-data, and the encoding parameter is obtained from the parameter table.
  • sub-data in claim 15 or 16, in the subdata decoding step, sub-data is arithmetically decoded with reference to an encoding parameter.
  • variable length decoding method in any one of claims 15 to 17, in the parameter table information decoding step, information on the parameter table is decoded by a fixed decoding method. Turn into.
  • the storage medium according to claim 19 stores a program for causing a computer to perform variable-length encoding processing.
  • the variable-length encoding process is a variable-length encoding method that encodes each predetermined unit data with reference to a parameter table, and includes the following steps.
  • Parameter table information encoding step for encoding information about the initialized parameter table
  • ⁇ Parameter acquisition step for acquiring from the parameter table the encoding parameters used for the encoding of each sub-data constituting the predetermined unit data
  • the stored program is loaded onto the computer, thereby causing the computer to perform variable-length encoding processing.
  • the encoding parameter acquired from the parameter table is used for encoding each sub data, the compression efficiency when encoding predetermined unit data is improved.
  • the information about the initialized parameter table is encoded and arranged at a position where it can be acquired before the encoded predetermined unit data is encoded, it is necessary to perform the decoding at the time of decoding. It is possible to correctly decode the predetermined unit data encoded using the parameter table as an initial value.
  • the storage medium according to claim 20 stores a program for causing a computer to perform variable-length decoding processing.
  • the variable length decoding process consists of a stream. This is a variable length decoding method for decoding each predetermined unit data to be generated by referring to a parameter table, and includes the following steps.
  • Parameter table initialization step to set initial values of parameter table based on information about parameter table
  • ⁇ Parameter acquisition step for acquiring, from the parameter table, the encoding parameters used for decoding the sub-data constituting the predetermined unit data
  • the stored program is loaded onto the computer, thereby causing the computer to perform variable-length decoding processing.
  • the information about the parameter table is decoded, and the parameter table acquired based on the information is set to the initial value, so that the predetermined unit data can be correctly decoded.
  • variable length encoding method is a variable length encoding method for encoding each predetermined unit data while switching a variable length code table, and includes the following steps.
  • Variable length code table information encoding step for encoding information indicating an initialized variable length code table
  • Variable-length code table selection step for selecting a variable-length code table used for encoding each sub-data constituting the predetermined unit data
  • Sub-data encoding step that encodes sub-data with reference to the selected variable-length code table
  • Information encoded data arrangement step for arranging and outputting information indicating the encoded variable length code table at a position where it can be acquired prior to the encoded predetermined unit data
  • variable length code table selected in the encoding of each sub data since the variable length code table selected in the encoding of each sub data is used, the compression efficiency when encoding predetermined unit data is improved. Also, the information indicating the initialized variable length code table is encoded, and the encoded predetermined unit. Since it is arranged at a position where it can be acquired prior to the data, it is possible to correctly decode the predetermined unit data encoded with the variable length code table indicated by the information as the initial value at the time of decoding.
  • variable length code table according to claim 21 is selected based on the value of the encoded sub data.
  • variable length code table is selected based on the value of the encoded sub data, the compression efficiency when encoding predetermined unit data is improved.
  • variable length coding method wherein, in the sub data coding step, the variable length code table used for the coding is based on the value of the sub data immediately before the coding. It is the selected variable length code table.
  • the sub data since the sub data is encoded based on the variable length code table selected based on the value of the immediately preceding encoded sub data, it can be encoded in real time and the encoding can be performed at high speed. Obviously, since the sub data is encoded based on the variable length code table selected based on the value of the immediately preceding encoded sub data, it can be encoded in real time and the encoding can be performed at high speed. Obviously, since the sub data is encoded based on the variable length code table selected based on the value of the immediately preceding encoded sub data, it can be encoded in real time and the encoding can be performed at high speed. Become.
  • variable-length encoding method wherein the variable-length code table used for encoding is selected based on the value of the encoded sub-data in the sub-data encoding step. This is a variable length code table.
  • variable length coding method in any one of claims 21 to 24, in the variable length code table information coding step, the coding is performed by a fixed coding method. Since the encoding method uses a fixed encoding method, the information indicating the initialized variable length code table is reliably decoded.
  • variable length encoding method is the encoding according to any one of claims 21 to 25, wherein it is determined whether or not to encode the information indicating the initialized variable length code table.
  • the method further includes a determination step and a flag arrangement step of arranging and outputting a flag for identifying the determination result at a position where the flag can be acquired prior to the encoded predetermined unit data.
  • whether or not the information indicating the initialized variable-length code table has been encoded can be determined by a flag arranged at a position where the information can be acquired prior to the predetermined encoding unit data.
  • variable-length code table used as the initial value is not encoded, for example, because there is a sufficiently large number of data until the variable-length code table is initialized next (that is, sufficient learning is required).
  • the ratio of the number of data required for the total number of data is small, so learning efficiency is good), or the variable length code table used as the initial value is the optimal variable length code table obtained by learning For example.
  • the predetermined unit data is a picture in the image data.
  • the frequency of encoding the information indicating the variable length code table in the entire image data is appropriate, so that even if the information encoded data is destroyed due to a transmission path error, the image cannot be reproduced for several seconds or more. There will be no possible situation, and there will be no redundancy in the amount of information encoded data.
  • the predetermined unit data is a slice in the image data.
  • the frequency of encoding the information indicating the variable length code table in the entire image data is appropriate, so that even if the information encoded data is destroyed due to a transmission path error, the image cannot be reproduced for several seconds or more. There will be no possible situation, and there will be no redundancy in the amount of information encoded data.
  • variable length encoding method according to claim 29, wherein the plurality of syntax elements of the sub-data switch the variable length code table. And a portion encoded by a fixed encoding method.
  • variable length decoding method for example, in image data, it is possible to obtain a high compression efficiency by encoding sub-data by a variable-length encoding method that switches a variable-length code table, and it is common to use a fixed encoding method. Processing can be simplified by encoding the header, which is data. Since the header has little compression effect, there is no problem even if a fixed encoding method is used.
  • the variable length decoding method according to claim 30 is a method of decoding each predetermined unit data constituting a stream while switching the variable length code table, and includes the following steps: Yes.
  • Variable length code table information decoding for decoding information indicating variable length code table of stream
  • Variable length code table initialization step that sets the initial value of the variable length code table based on the information indicating the variable length code table
  • Variable length code table selection step for selecting a variable length code table used for decoding the sub-data constituting the predetermined unit data
  • the information indicating the selected variable-length code table is decoded, and the variable-length code table indicated by the information is set to the initial value. Therefore, the encoded predetermined unit data is correctly decoded.
  • the storage medium according to claim 31 stores a program for causing a computer to perform variable-length encoding processing.
  • the variable length coding process is a variable length coding method for coding each predetermined unit data while switching the variable length code table, and includes the following steps.
  • Variable length code table information encoding that encodes information indicating an initialized variable length code table
  • Variable-length code table selection step for selecting a variable-length code table used for encoding each sub-data constituting the predetermined unit data
  • Sub-data encoding step that encodes sub-data with reference to the selected variable-length code table
  • Information encoded data arrangement step for arranging and outputting information indicating the encoded variable length code table at a position where it can be acquired prior to the encoded predetermined unit data
  • variable length code table selected in the encoding of each sub-data is used in the encoding process that the stored program performs on the computer. Therefore, the compression efficiency when encoding the predetermined unit data is improved.
  • the information indicating the initialized variable length code table is encoded and arranged at a position where it can be acquired prior to the encoded predetermined unit data, the variable length indicated by the information when decoding is used. Predetermined unit data encoded using the code table as an initial value can be correctly decoded.
  • the storage medium according to claim 32 stores a program for causing a computer to perform variable-length decoding processing.
  • the variable length decoding process is a variable length decoding method that decodes each predetermined unit data constituting a stream while switching the variable length code table, and includes the following steps.
  • Variable length code table information decoding for decoding information indicating variable length code table of stream
  • Variable length code table initialization step that sets the initial value of the variable length code table based on the information indicating the variable length code table
  • Variable length code table selection step for selecting a variable length code table used for decoding the sub-data constituting the predetermined unit data
  • the information indicating the variable length code table is decoded and the variable length code table indicated by the information is set to the initial value.
  • the predetermined unit data can be correctly decoded.
  • the variable length encoding device is a variable length encoding device that encodes each predetermined unit data with reference to a parameter table, an initialization unit, a parameter table information acquisition unit, a parameter Table information encoding means, parameter acquisition means, sub data encoding means, and information encoded data arrangement means are provided.
  • the initialization means sets the parameter table to the initial value.
  • the parameter table information encoding means encodes information on the initialized parameter table.
  • the parameter acquisition means acquires from the parameter table the encoding parameters used for encoding each sub-data constituting the predetermined unit data.
  • the sub data encoding means converts the sub data into the acquired code.
  • Variable length encoding is performed with reference to the encoding parameter.
  • the information encoded data arrangement means arranges and outputs information relating to the encoded parameter table at a position where it can be acquired prior to the encoded predetermined unit data.
  • the sub data encoding means uses the encoding parameter acquired from the parameter table when encoding the sub data, the compression efficiency when encoding the predetermined unit data is improved.
  • the information about the initialized parameter table is encoded by the parameter table information encoding means, and is further arranged at a position where it can be acquired before the predetermined unit data encoded by the information encoding data arrangement means. Therefore, at the time of decoding, a parameter table is acquired based on the information, and the predetermined unit data encoded using the parameter table as an initial value can be correctly decoded.
  • the variable-length decoding device is a variable-length decoding device that decodes each predetermined unit data constituting a stream with reference to a parameter table.
  • Information decoding means, parameter table initialization means, parameter acquisition means, and sub-data decoding means are provided.
  • the parameter table information decoding means decodes information related to the stream parameter table.
  • the parameter table initialization means sets the initial value of the parameter table based on information about the parameter table.
  • the parameter acquisition means acquires an encoding parameter used for decoding the sub data constituting the predetermined unit data from the parameter table.
  • the sub data decoding means performs variable length decoding on the sub data of the stream with reference to the acquired encoding parameter.
  • information on the parameter table is decoded, and the parameter table acquired based on the information is set to the initial value, so that the predetermined unit data can be correctly decoded.
  • variable length encoding device encodes each predetermined unit data while switching between the variable length code table, initialization means, and variable length code table information.
  • An encoding unit, a variable length code table selection unit, a sub data encoding unit, and an information encoded data arrangement unit are provided.
  • the initialization means sets the variable length code table to the initial value.
  • the variable length code table information encoding means encodes information indicating the initialized variable length code table.
  • the variable length code table selection means is configured to select each sub-unit constituting the predetermined unit data.
  • a variable length code table used for data encoding is selected.
  • the sub data encoding means encodes the sub data with reference to the selected variable length code table.
  • the information encoded data arrangement means arranges and outputs the information indicating the encoded variable length code table at a position where it can be acquired prior to the encoded predetermined unit data.
  • variable length code table selected when the sub data encoding unit encodes the sub data since the variable length code table selected when the sub data encoding unit encodes the sub data is used, the compression efficiency when encoding the predetermined unit data is improved.
  • the information indicating the initialized variable length code table is encoded by the variable length code table information encoding means, and can be acquired before the predetermined unit data encoded by the information encoded data arrangement means. Therefore, when decoding, it is possible to obtain the variable length code table indicated by the information and correctly decode the predetermined unit data encoded using the variable length code table as an initial value. it can.
  • variable length decoding device wherein each of the predetermined unit data constituting the stream is decoded while switching the variable length code table.
  • the variable length code table Information decoding means, variable length code table initialization means, variable length code table selection means, and sub data decoding means are provided.
  • the variable length code table information decoding means decodes information indicating the variable length code table of the stream.
  • the variable length code table initialization means sets an initial value of the variable length code table based on information indicating the variable length code table.
  • the variable-length code table selection means selects a variable-length code table used for decoding the sub data constituting the predetermined unit data.
  • the sub data decoding means performs variable length decoding of the stream sub data with reference to the selected variable length code table.
  • the information indicating the variable length code table is decoded, and the variable length code table selected based on the information is set as the initial value, so that the predetermined unit data can be correctly decoded.
  • the bit stream according to claim 37 is a bit stream generated by a variable length encoding method for encoding each predetermined unit data with reference to a parameter table.
  • This variable length encoding method is the variable length encoding method according to any one of claims 1 to 14 or 21 to 29.
  • FIG. 1 is a block diagram showing a schematic configuration of a variable length coding apparatus according to the first embodiment of the present invention.
  • FIG. 2 is a block diagram showing a schematic configuration of a general image encoding device.
  • FIG. 3 is a flowchart showing the schematic operation of the data encoding unit.
  • FIG. 4 is a flowchart of a modified example showing a schematic operation of the data encoding unit.
  • FIG. 5 is a diagram showing an example of a stream structure of image data.
  • FIG. 6 is a diagram showing another example of the stream structure of image data.
  • FIG. 7 shows the data structure of the bit stream generated by the variable length coding device.
  • FIG. 8 shows the data structure of the bit stream generated by the variable length coding device.
  • FIG. 9 is a block diagram showing a schematic configuration of the variable-length decoding apparatus according to the first embodiment of the present invention.
  • FIG. 10 is a block diagram showing a schematic configuration of a general image decoding apparatus.
  • FIG. 11 is a flowchart showing a schematic operation of the data decryption unit.
  • FIG. 12 is a block diagram showing a schematic configuration of a variable length coding apparatus according to the second embodiment of the present invention.
  • FIG. 13 is a diagram showing the configuration of a plurality of variable length code tables.
  • FIG. 14 is a flowchart showing a schematic operation of the data encoding unit.
  • Fig. 15 shows the data structure of the bit stream generated by the variable length coding device.
  • Fig. 16 shows the data structure of the bitstream generated by the variable length encoder.
  • FIG. 17 is a block diagram showing a schematic configuration of a variable-length decoding apparatus according to the second embodiment of the present invention.
  • FIG. 18 is a flowchart showing a schematic operation of the data decoding unit.
  • FIG. 19 is an explanatory diagram when the computer system is implemented using a floppy disk storing the variable length encoding method or variable length decoding method of the first and second embodiments.
  • FIG. 20 is a block diagram showing the overall configuration of the content supply system.
  • Fig. 21 shows an example of a mobile phone using the moving picture coding method and the moving picture decoding method.
  • Figure 22 is a block diagram of a mobile phone.
  • Figure 23 shows an example of a digital broadcasting system.
  • FIG. 1 is a block diagram of a schematic configuration of a variable-length coding apparatus 1 as an embodiment of the present invention.
  • the variable length coding device 1 is a device for performing variable length coding on input data and generating a bit stream.
  • the variable-length encoding device 1 is characterized in that arithmetic encoding is adopted as a main encoding method.
  • Arithmetic coding is a coding method that improves coding efficiency by dynamically updating a probability table according to the probability of occurrence of a symbol that has actually occurred.
  • variable length coding apparatus 1 has a function of entropy coding the information-converted image signal.
  • image data input to the variable length coding device 1 is a quantized DCT coefficient, a motion vector, and the like.
  • the variable length encoding device 1 mainly includes a data encoding unit 2 and a header encoder 3.
  • the data encoding unit 2 is a device for arithmetically encoding data other than the header for each predetermined unit data.
  • the data encoding unit 2 includes an arithmetic encoder 7, a probability table updater 8, and an initialization unit 9.
  • the predetermined unit data means a picture or a slice in the case of image data.
  • Each predetermined unit data is composed of a plurality of sub data.
  • the predetermined unit data is a picture
  • the sub data is a slice, a macro block or a block.
  • the predetermined unit data is sub data. Is a macroblock or block.
  • the arithmetic encoder 7 When the data is input, the arithmetic encoder 7 outputs the generated data to the probability table updater 8 and encodes the data based on the probability table or codeword output from the probability table updater 8. It is a device for.
  • the probability table updater 8 has a function of updating the probability table. While updating the probability table according to the occurrence probability of the generated data output from the arithmetic encoder 7, the probability table, that is, the code word, is updated. Is output to the arithmetic encoder 7.
  • the initialization unit 9 is a device for outputting a probability table initialization command to the probability table updater 8.
  • the header encoder 3 is a device for encoding header data by a fixed encoding method.
  • the fixed encoding method is a method in which the code word corresponding to each code does not change during encoding, and includes a fixed length encoding method and a variable length encoding method using a fixed variable length code table. Since a fixed encoding method is used, header data can be encoded easily.
  • an encoding method in which the code word corresponding to each code changes is called an adaptive encoding method.
  • adaptive coding methods include a static coding method that simply switches a table representing the relationship between codes and codewords corresponding to the codes, and dynamic coding that sequentially updates the codewords themselves.
  • the static encoding method means that it is not a dynamic encoding method (an encoding method such as arithmetic encoding that dynamically changes the correspondence between codes and codewords corresponding thereto). Therefore, the compression rate can be improved by the dynamic coding method than by the static coding method.
  • the variable length encoding device 1 further includes a probability table encoder 6.
  • the probability table encoder 6 is a device for encoding the probability table output from the probability table updater 8 by a fixed encoding method. Since a fixed encoding method is used, the probability table is easily encoded.
  • Multiplexer 4 includes header encoding data output from header encoder 3, encoded data other than the header output from arithmetic encoder 7, and probability table encoding. This is a device for generating a code stream (bitstream) by multiplexing the probability table encoded data output from the device 6 and outputting it to the transmission line.
  • the image encoding device 10 0 mainly includes a motion estimation Z compensation unit (ME ZMC) 1 0 2, a subtractor 1 0 3, a transform encoding unit 1 0 4, and a transform decoding unit 1 0 5. And an adder 1 0 6 and an entropy encoding unit 1 0 7.
  • the aforementioned data encoding unit 2 corresponds to the entropy encoding unit 1 07.
  • the motion estimation / compensation unit 102 receives the input image data Picln, and generates prediction block data for the encoding target block in the encoding target picture.
  • the motion estimation / compensation unit 1 0 2 includes a motion detector (ME) 1 1 1, a motion compensator (MC) 1 1 2, and a picture memory 1 1 3.
  • the motion detector 1 1 1 receives the input image Picln, and calculates a motion vector MV that is the motion of the input image Picln with respect to the reconstructed image in the picture memory 1 1 3.
  • the motion detector 1 1 1 outputs the motion vector MV to the motion compensator 1 1 2, picture memory 1 1 3, and entropy encoding unit 1 0 7.
  • the motion compensator 1 1 2 uses the reconstructed image stored in the picture memory 1 1 3 as reference image data corresponding to motion. (Motion compensation) and output it to the subtractor 1 0 3 and the adder 1 0 6.
  • the picture memory 1 1 3 stores the reconstructed image, and the reconstructed image is read out by the motion detector 1 1 1 and the motion compensator 1 1 2.
  • the pixel value of the motion-compensated reference image is set to 0, and the subtractor 103 and adder 106 output the input data as it is without performing subtraction and addition.
  • the subtractor 1 0 3 obtains a difference value between the target data of the input image Picln and the reference image from the motion compensator 1 1 2, and outputs the difference data as the difference value to the transform coding unit 1 0 4 To do.
  • the transform encoder 1 0 4 performs data compression processing on the difference data from the subtractor 1 0 3. And output the compressed data.
  • the transform coding unit 104 is composed of an orthogonal transformer 1 14 and a quantizer 1 15.
  • Orthogonal transformer 1 1 4 is a discrete cosine transform process (DCT process) that transforms spatial domain data, which is a type of orthogonal transform process, into frequency domain data for the difference data from subtractor 1 0 3 And output the data to the quantizer 1 1 5.
  • the quantizer 1 1 5 quantizes the DCT data from the orthogonal transformer 1 1 4 with a predetermined quantization step, and converts the quantized coefficient into a transform decoding unit 1 0 5 and an entropy code unit 1 0 Outputs to 7. .
  • the conversion decoding unit 105 performs data expansion processing on the output from the conversion encoding unit 104 and outputs the expanded data.
  • the transform decoding unit 1 0 5 includes an inverse quantizer 1 1 6 and an inverse orthogonal transformer 1 1 7.
  • the inverse quantizer 1 1 6 inversely quantizes the output from the transform coding unit 1 0 4 in the above quantization step, and outputs it to the inverse orthogonal transformer 1 1 7.
  • the inverse orthogonal transformer 1 1 7 performs an inverse discrete cosine transform process (IDCT process) on the output from the inverse quantizer 1 1 6 to convert the data in the frequency domain into the data in the spatial domain.
  • the data is output to the adder 106 as a prediction residual signal.
  • IDCT process inverse discrete cosine transform process
  • the adder 1 0 6 calculates the prediction residual signal from the transform decoding unit 1 0 5 and the reference image from the motion compensator 1 1 2.
  • the added image data is output to the picture memory 1 1 3 as a reconstructed image.
  • the entropy encoding unit 1 07 performs entropy encoding on the quantized data after DCT from the DCT encoding unit 10 4.
  • Entropy coding is coding that converts 0 and 1 bit strings into fewer bit strings using the statistical properties of the bit strings.
  • FIG. 3 is a flowchart showing the schematic operations of the data encoder 2 and the probability table encoder 6.
  • step S1 the initialization unit 9 outputs an initialization command to the probability table updater 8, and the probability table updater 8 sets a predetermined probability table to an initial value for each predetermined unit data.
  • the initialization unit 9 and the probability table updater 8 initialize the probability table based on the initialization information in the header.
  • initialization information of the probability table common data of the entire predetermined unit data may be used.
  • common data effective for initialization for example, when the predetermined unit data is a picture, the picture coding type (intra-picture coded picture, inter-picture predictive coded picture, and inter-picture predictive coded picture) Distinction), the initial value of the quantization parameter of the picture.
  • slice coding type intra-screen coding slice, inter-screen prediction coding slice, bi-screen prediction 1 ⁇ coding slice distinction
  • slice quantization parameter There are initial values.
  • step S2 the arithmetic encoder 7 and the probability table updater 8 cooperate to encode sub-data arithmetically. More specifically, the arithmetic encoder 7 obtains the probability used for encoding the sub-data from the probability table based on the probability table output from the probability table updater 8, and further refers to the probability. Then, the data is encoded. Specifically, the predetermined unit data is a picture or a slice, and a macroblock or block as sub-data is encoded.
  • step S3 the probability table updater 8 updates the probability table of the generated data with the generated data.
  • this updated probability table is used when arithmetically encoding the next sub-data.
  • step S4 it is determined whether or not encoding of all sub data has been completed. If it is determined that all have not been completed, the process returns to step S2 and repeats the above operation.
  • step S5 it is determined whether or not the probability table is to be encoded. If it is to be encoded, the process proceeds to step S6. If not, step S6 is skipped.
  • the arithmetic encoder 7 creates an initial value flag for identifying the determination result, and outputs it to the multiplexer 4 together with the encoded data.
  • the reason why the probability table used as the initial value is not encoded is that, for example, there is a sufficiently large number of data until the next probability table is initialized (that is, the number of data necessary for sufficient learning). The ratio of the total number of data is small and learning efficiency is good.) This is the case when the table almost matches the optimal probability table obtained by learning, or when it completely matches.
  • step S 6 the probability table of the probability table updater 8 is encoded by the probability table encoder 6.
  • the encoded subdata is encoded except for the first subdata. Since the probability table is updated based on the value and the probability is obtained from the probability table, the compression efficiency is improved.
  • the probability table used for sub-data encoding is a probability table updated by arithmetic encoding of the immediately preceding sub-data, it can be encoded in real time, and the encoding speeds up. Moreover, sufficient compression efficiency can be obtained by spatial or temporal correlation of images.
  • the initial value of the predetermined unit data may be arithmetically encoded using a probability table obtained by its own arithmetic encoding. In that case, the compression efficiency is high even if the contents of the predetermined unit data and the immediately preceding predetermined unit data differ greatly.
  • the flowchart shown in FIG. 4 is a modification of the flowchart shown in FIG. 3.
  • the code table of the probability table updater 8 is encoded by the probability table encoder 6 in step S6, a part of the probability table is shown. Only the case of encoding only is shown. In this case, it is possible to reduce the amount of code, and further, by adopting a method of encoding only the portion corresponding to the encoded data having a high occurrence probability in the acquired probability table, decoding is performed. It can be decrypted correctly enough.
  • the part corresponding to data with a low probability of occurrence is initialized with a predetermined initial value.
  • step S 7 the part that has not been encoded in the probability table is initialized with a predetermined initial value.
  • the header encoder 3 encodes the input header data and outputs the header encoded data to the multiplexer 4.
  • the multiplexer 4 generates a predetermined bit stream from the data output from the arithmetic encoder 7, header encoder 3, and probability table encoder 6, and outputs it to the transmission path.
  • FIG. 5 is a diagram showing an example of the stream structure of image data.
  • the stream is composed of a common information area such as a header and a GOP (Group Of Picture) area.
  • the GOP area is composed of a common information area such as a header and a plurality of picture areas.
  • the picture area is composed of a common information area such as a header and a plurality of slice data areas.
  • the slice data area is composed of a common information area such as a header and a plurality of macro block data areas.
  • the header part and the data part other than the header may be separated and transmitted separately. In that case, the header part and data part do not become one bit stream as shown in Fig. 5.
  • the transmission order of the header part and the data part is not continuous, only the header part corresponding to the corresponding data part is transmitted in another bucket, and one bit stream Even if not, the concept is the same as in the case of the bitstream described in Fig. 5.
  • FIG. 6 is a diagram showing another example of the stream structure of image data.
  • This stream structure is the same as the stream structure shown in Fig. 5. Therefore, only the differences will be described below.
  • GOP and picture do not have headers, and only slices have headers.
  • GOP and pictures have various parameters at the head as common information.
  • the parameter is equivalent to a header, except that the parameter is valid in subsequent pictures unless the parameter is updated.
  • the parameter corresponding to the picture header has the meaning of all the picture headers of the picture until the next parameter corresponding to the picture header is transmitted.
  • FIG. 7 shows the data structure of the bit stream output from the multiplexer 4 when the aforementioned predetermined unit data is a picture of image data.
  • Pictures are generally It consists of a header and multiple slices as encoded sub-data.
  • the header represents the start of encoded data in one picture, and data common to each slice (for example, picture encoding type (intra-picture encoded picture and inter-picture predictive encoded picture are distinguished from each other). ), Parameters such as numbers indicating the coding order or display order of pictures).
  • the initial value flag is a flag for identifying whether or not the probability table used as the initial value is encoded. When the probability table is encoded, it is "1", and when it is not encoded. It becomes "0". Furthermore, as shown in Fig. 7 (a), the probability table encoded data as the probability table initial value is arranged in the header. When the probability table is not encoded, the probability table encoded data is not output from the probability table encoder 6 to the multiplexer 4, and as a result, as shown in Fig. 7 (b), the bit stream No probability table encoded data is placed in.
  • the header includes a common data portion that means the original header and is encoded by the header encoder 3, the initial value flag generated by the arithmetic encoder 7, and the probability table.
  • the probability table encoded data encoded by the encoder 6 exists. More specifically, the common data part is divided into a head side and an image data side, and an initial value flag and probability table encoded data are inserted in that order.
  • FIG. 8 shows the data structure of the bit stream output from the multiplexer 4 when the predetermined unit data is a slice of image data.
  • a slice is generally composed of a header and a plurality of blocks (or macroblocks) as coding sub-data.
  • the header represents the start of encoded data in one slice, and is mainly composed of data common to each slice (parameters such as start code and quantization scale).
  • an initial value flag is arranged in the header.
  • the initial value flag is a flag for identifying whether or not the probability table used as the initial value has been encoded. When the probability table is encoded, it is "1". When the probability table is not encoded Becomes "0".
  • probability table encoded data as an initial value of the probability table is arranged in the header.
  • Probability table mark if the probability table was not encoded Encoder 6 does not output probability table encoded data to multiplexer 4, and as a result, as shown in Fig. 8 (b), no probability table encoded data is arranged in the bitstream. .
  • the original data means the common data part encoded by the header encoder 3, the initial value flag generated by the arithmetic encoder 7, and the probability table.
  • the probability table encoded data encoded by the encoder 6 exists. More specifically, the common data part is divided into a head side and an image data side, and an initial value flag and probability table encoded data are inserted in that order.
  • the probability table itself is encoded and embedded in the header as information regarding the probability table.
  • information indicating the acquired probability table for example, a calculation formula and a probability table is shown. Flags and information indicating combinations thereof may be encoded and embedded in the header. In that case, the amount of encoding can be reduced because the probability table itself is not encoded.
  • a part of the common data in the header can be used. In that case, since the information also has a function as part of common data for the predetermined unit data, the amount of encoding can be further reduced.
  • common data for example, when the predetermined unit data is a picture, the picture coding type (the distinction between an intra-picture coded picture, an inter-picture predictive coded picture, and an inter-picture predictive coded picture), There are initial values of quantization parameters. Note that common data that is not much related to initialization includes parameters such as picture coding order, picture display order, motion vector, and image size.
  • the predetermined unit data is a slice
  • slice coding types intra-frame coding slices, inter-screen prediction coding slices, and bi-screen prediction coding slices
  • initial values of slice quantization parameters etc.
  • the initial value flag may be omitted by always updating the initial value, that is, by always sending the initial value.
  • FIG. 9 is a schematic configuration block diagram of the variable length decoding device 11 as an embodiment of the present invention.
  • the variable length decoding device 11 is a device for decoding data encoded by the variable length encoding device 1, for example. When image data is targeted, the variable length decoding device 11 has a function of entropy decoding the data to obtain converted image information.
  • the variable length decoding device 11 mainly includes a data decoding unit 1 2 and a header decoder 1 3.
  • the data decoder 1 2 is a device for arithmetically decoding data other than the header for each predetermined unit of data.
  • the predetermined unit data here means a picture or a slice in the case of image data.
  • the arithmetic decoder 1 7 When the encoded data is input, the arithmetic decoder 1 7 outputs the generated data to the probability table updater 1 8 and represents the probability that the data is output from the probability table updater 1 8, that is, a codeword. Is a device for decoding encoded data based on the above.
  • the probability table updater 1 8 has a function of updating the probability table. While updating the probability table according to the occurrence probability of the generated data output from the arithmetic decoder 1 7, the probability table, that is, This is a device for outputting a code word to the arithmetic decoder 17.
  • the initialization unit 19 is a device for outputting a probability table initialization command to the probability table updater 18.
  • the header decoder 13 is a device for decoding the header encoded data by a fixed decoding method.
  • the variable length decoding device 11 further includes a probability table decoder 16.
  • the probability table decoder 16 is a device for decoding the probability table encoded data by a fixed decoding method.
  • the separator 14 is a device for separating and outputting the bit stream into header encoded data, encoded data other than the header, and probability table encoded data. 2 General image decoding device
  • the image decoding apparatus 200 mainly includes a prediction data generation unit 20 2, a transform decoding unit 2 0 4, an adder 2 0 6, and an entropy decoding unit 2 0 7. It is made.
  • the data decoding unit 12 described above corresponds to the entropy decoding unit 2 0 7.
  • the entropy decoding unit 2 0 7 performs entropy decoding on the input stream data based on the probability table, and converts the data into the conversion decoding unit 2 0 4 and the prediction data. Output to the generator 2 0 2.
  • Entropy decoding is processing in the reverse direction of entropy single encoding, and in this embodiment is arithmetic decoding.
  • the prediction data generation unit 20 2 has a motion compensator 2 1 2 and a picture memory 2 1 3.
  • the output image is output from the adder 2 0 6 as a reference image and stored.
  • the motion compensator 2 1 2 supports the motion vector MV from the reference image stored in the picture memory 2 1 3 based on the motion vector MV decoded by the entropy decoding unit 2 07.
  • Image data to be generated is generated as a predicted image (motion compensation) and output to the adder 206.
  • the pixel value of the motion-compensated reference image is set to 0, and the adder 2 06 outputs the input data as it is without addition.
  • the decoded motion vector is stored in the picture memory 2 1 3.
  • the conversion decryption unit 20 4 performs data decompression processing on the output from the entropy decryption unit 2 07 and outputs decompressed data.
  • the transform decoding unit 2 0 4 includes an inverse quantizer 2 1 4 and an inverse orthogonal transformer 2 1 5.
  • the inverse quantizer 2 14 dequantizes the output from the entropy-decoding unit 2 07 and outputs it to the inverse orthogonal transformer 2 1 5.
  • the inverse orthogonal transformer 2 1 5 subjects the output from the inverse quantizer 2 1 4 to inverse discrete cosine transform processing (IDCT processing) that transforms frequency domain data into spatial domain data, and generates decompressed data. Is output to the adder 2 0 6.
  • IDCT processing inverse discrete cosine transform processing
  • the adder 2 06 outputs the image data obtained by adding the image data from the conversion decoder 2 0 4 and the predicted image from the motion compensator 2 1 2 to the outside as an output image. Output to 2 1 3 as well.
  • Separator 14 separates the bit stream, outputs the header encoded data to header decoder 13 and outputs the encoded data other than the header to arithmetic decoder 17. , If there is probability table encoded data, it is output to the probability table decoder 16.
  • the header decoder 13 outputs the initial value flag in the decrypted header to the initialization unit 19.
  • the header decoder 13 decodes the header encoded data output from the separator 14 and outputs the header data.
  • FIG. 11 is a flowchart showing the schematic operation of the data decoding unit 12 and the probability table decoder 16.
  • step S 21 the initialization unit 19 initializes the probability table updater 18, and a predetermined probability table is set to an initial value.
  • step S 22 the initialization unit 19 determines whether or not the probability table is encoded based on the initial value flag embedded in the header. If it is determined that the probability table is encoded, the process proceeds to step S 23, and step S 23 that determines that the probability table is not encoded is skipped and the process proceeds to step S 24.
  • probability table updater 18 updates the probability table with the probability table output from probability table decoder 16.
  • the probability table encoding data input to the probability table decoder 16 may be all of the probability table or only a part of the probability table. Even if only a part of the probability table is encoded, if the part corresponding to the encoded data with a high probability of occurrence is encoded in the acquired probability table, the decoding process described later is correct. Can be decrypted. If only a part of the code table is encoded, the uncoded probability table is initialized with the same value as in step S21. Note that information indicating the probability table is used instead of the probability table itself. If it is encoded, the information is first decrypted, and then the probability table updater 18 selects the probability table indicated by the information.
  • step S 24 the arithmetic decoder 17 and the probability table updater 18 cooperate to decrypt the subdata. Specifically, the arithmetic decoder 17 decodes the encoded sub-data based on the probability table from the probability table updater 18 and outputs the data. If the predetermined unit data is, for example, a picture, the slice is decoded. In step S 2 6, the generated data of the arithmetic decoder 17 is output to the probability table updater 18, and the probability table updater 18 rewrites the probability table with the generated data. This updated probability table is used when decoding the next sub-data in step S24.
  • step S 25 it is determined whether or not decoding of all the sub data has been completed. If it is determined that all have not been completed, the process returns to step S24 and repeats the above operation.
  • each sub-data is encoded based on the probability table obtained by arithmetic encoding, so the compression efficiency is improved.
  • the total number of data is so small that the ratio of the number of encoded data until the optimal encoding can be obtained by learning cannot be ignored in the past. Even with simple data, compression efficiency can be increased with high learning efficiency.
  • the initialized probability table is encoded and placed in the header of the encoded predetermined unit data, it is encoded using the probability table as an initial value when decoding.
  • the predetermined unit data can be correctly decoded.
  • the probability table is encoded in units of pictures or slices, the frequency with which the probability table is encoded is appropriate.
  • the probability table encoded with high frequency is used.
  • the probability table is encoded less frequently, and if some of the encoded data to be learned is lost in the transmission path and the probability table cannot be reproduced, the image is reproduced for several seconds or longer. An impossible situation occurs.
  • the redundancy of the data in the probability table does not increase. If this is a block (or macroblock) unit, the initialization data redundancy is too large.
  • the header that is common data is a fixed code.
  • the encoding method is simple and statically encoded. More specifically, the portion of the header that is the original header is encoded by a fixed encoding method, and the inserted probability table initial value is also encoded by a fixed encoding method. Originally, the header has a lower compression effect than the image data itself, so even if a fixed encoding method is used, there is no particular problem in terms of overall compression efficiency.
  • FIG. 12 is a schematic block diagram of the variable length coding device 21 as an embodiment of the present invention.
  • the variable length coding device 21 is a device for performing variable length coding on input data and generating a bit stream.
  • the variable length coding device 21 is characterized by switching a plurality of variable length code tables as a main coding method.
  • a typical example of variable length coding is Huffman coding. In the description below, Huffman coding will be described as an example.
  • variable-length encoding device 21 There are various types of data input to the variable-length encoding device 21. In this embodiment, description will be made assuming that image data is input. That is, the variable-length encoding device 21 has a function of entropy encoding the information-converted image signal. In particular, in the MPEG system, the image data input to the variable length coding device 21 is a quantized DCT coefficient, a motion vector, or the like.
  • the variable-length encoding device 21 mainly includes a data encoding unit 2 2 and a header encoder 2 3.
  • the data encoding unit 2 2 is a device for Huffman encoding data other than the header for each predetermined unit data, and includes a variable length encoder 2 7, a code table selection unit 2 8, and an initialization unit 2. 9 and.
  • Each predetermined unit data is composed of a plurality of sub data.
  • the predetermined unit data is a picture
  • the sub data is a slice, a macro block or a block.
  • the predetermined unit data is a slice
  • the sub data is Macroblock or block.
  • the data encoding unit 22 corresponds to the entropy encoding unit 107 in the general image encoding device 100 shown in FIG.
  • variable length encoder 2 7 8 is a device for encoding data based on a variable length code table 30, that is, a code word, which is output to 8 and switched by the code table selection unit 28.
  • the code table selection unit 28 is a device for outputting a code table selection signal to the switch 25 according to the occurrence probability of the generated data output from the variable length encoder 27. Is a device for switching the variable length code table 30 used by the variable length encoder 27 in accordance with the code table selection signal output from the code table selection unit 28.
  • the initialization unit 29 is a device for outputting a code table selection signal initialization command to the code table selection unit 28.
  • variable length code table 30 is composed of a combination of data and a corresponding bit string.
  • variable-length code tables 3 0 a to 30 c are white parts (data 1 or later in code table 30 a, data 2 or later in code table 30 b, data 4 or later in code table 3 0 c. ) Is a common bit string.
  • different bit strings are used for the shaded portion (data 0 in code table 30a, data 0 and 1 in code table 30b, data 0 to 3 in code table 30c). Yes.
  • the shaded data has a relatively high probability of occurrence.
  • code table 30a If data with a high probability of occurrence can be processed with 1 bit, code table 30a is selected, and data with a high probability of occurrence can be processed with 2 bits. If so, code table 30b is selected, and code table 30c is selected if a code with a high probability of occurrence can be processed with 3 bits.
  • the white background code has a relatively low probability of occurrence. In this way, by arranging a common bit string for data with a relatively low probability of occurrence, it is possible to prepare different variable-length code tables with a small amount of data, reduce the memory, and simplify the encoding work. become.
  • the header encoder 23 is a device for encoding the header data by a fixed encoding method.
  • the variable length encoding device 21 further includes a selection signal encoder 26.
  • the selection signal encoder 26 is a device for encoding the code table selection signal output from the code table selection unit 28 using a fixed encoding method.
  • the multiplexer 2 4 includes the header encoded data output from the header encoder 2 3, the encoded data other than the header output from the variable length encoder 2 7, and the selection signal encoder 2. This is a device for multiplexing the selection signal encoded data output from 6 to generate a code stream (bit stream) and outputting it to the transmission line.
  • FIG. 14 is a flowchart showing a schematic operation of the data encoder 22 and the selection signal encoder 26.
  • step S 3 1 the initialization unit 29 outputs an initialization command to the code table selection unit 28, and the code table selection unit 28 outputs a predetermined selection table code signal to the switch 25.
  • the switch 25 selects the predetermined variable length code table 30 as the initial value of the predetermined unit data encoding.
  • the initialization unit 29 and the code table selection unit 28 select a predetermined variable length code table 30 based on the initialization information in the header.
  • the lines through which the header data is sent to the initialization unit 29 and the code table selection unit 28 are omitted.
  • step S 3 2 the variable length encoder 2 7 and the code table selector 2 8 cooperate to perform Huffman encoding of the sub data. More specifically, the code table selection unit 28 outputs a code table selection signal to the switch 25 based on the data generated so far. The switch 25 switches the variable length code table 30 based on the code table selection signal, and the variable length encoder 27 encodes the sub-data with the code word of the selected variable length code table 30.
  • Each predetermined unit data is composed of a plurality of sub-data. Specifically, when the predetermined unit data is a picture, a slice, a macro block or a block is encoded, and the predetermined unit data is a slice. In this case, a macroblock or block is encoded.
  • step S 3 3 the sub-data is output to the code table selection unit 28, and the code table selection unit 28 updates the frequency of occurrence of the sub-data and then switches the switch 25 to select which code table. It is an indicator of whether it should be selected. In this embodiment, this code table is used when the next sub-data is variable-length encoded.
  • step S 3 4 it is determined whether or not encoding of all sub-data has been completed. If it is determined that all have not been completed, the process returns to step S 3 2 and repeats the above operation.
  • step S 35 it is determined whether or not the information indicating the variable length code table 30 used as the initial value (that is, the code table selection signal) is to be encoded. If it is to be encoded, the process proceeds to step S 36. If it is not to be encoded, step S 36 is skipped. Note that the variable-length code table used as the initial value is not encoded, for example, because there is a sufficiently large number of data until the variable-length code table is initialized next (that is, it is necessary for sufficient learning). The ratio of the number of data to the total number of data is small, so the learning efficiency is good), or the variable length code table used as the initial value matches the optimal code table selected by learning Etc.
  • the variable length encoder 27 creates an initial value flag for identifying the determination result and outputs it to the multiplexer 24 together with the encoded data.
  • step S 36 code table selection section 28 outputs a code table selection signal indicating the variable length code table to selection signal encoder 26.
  • variable-length code table used for sub-data encoding is a variable-length code table selected by the Huffman encoding of the immediately preceding sub-data, so that it can be encoded in real time and the encoding speeds up.
  • sufficient compression efficiency can be obtained by the spatial or temporal correlation of images.
  • the header encoder 23 encodes the input header data and outputs it to the multiplexer 24.
  • the multiplexer 24 generates a predetermined bit stream from the data output from the variable length encoder 27, the header encoder 23, and the selection signal encoder 26, and outputs it to the transmission line.
  • Figure 15 shows the multiplexing when the predetermined unit data is a picture of image data.
  • the data structure of the bit stream output from the device 24 is shown below.
  • a picture is generally composed of a header and a plurality of slices as encoded sub data.
  • the header indicates the start of encoded data in one picture.
  • Data common to each slice for example, picture encoding type (intra-picture encoded picture, inter-picture predictive encoded picture, and inter-picture prediction) Prediction coded pictures) and picture quantization parameter initial values). Note that common data that has little to do with initialization includes parameters such as picture coding order, picture display order motion vector, and image size.
  • the initial value flag is a flag for identifying whether or not the information indicating the variable length code table is encoded. When the information indicating the variable length code table is encoded, the initial value flag is “1” and is encoded. If not, 0
  • selection signal encoded data indicating a variable length code table to be used (for example, a calculation formula, a flag indicating a probability table, and information indicating a combination thereof) ) Is placed.
  • the selection signal encoded data is not output from the selection signal encoder 26 to the multiplexer 24, and as a result, as shown in FIG. As shown in 5 (b), no selection signal encoded data is placed in the bitstream.
  • the header includes the common data part that means the original header and is encoded by the header encoder 23, and the initial value flag generated by the variable length encoder 27. And selection signal encoding data encoded by the selection signal encoder 26. More specifically, the common data portion is divided into a head side and an image data side, and an initial value flag and selection signal encoded data are inserted in that order.
  • FIG. 16 shows the bit stream data structure output from the multiplexer 24 when the predetermined unit data is a slice of image data.
  • a slice is generally composed of a header and multiple blocks (or macroblocks).
  • the header represents the start of encoded data in one slice, and is mainly composed of data common to each slice (parameters such as start code and quantization scale).
  • Common data includes the slice coding type (intra-screen coding slice, inter-screen prediction coding slice, and bi-screen prediction coding slice), and the initial value of the slice quantization parameter.
  • an initial value flag is arranged in the header.
  • the initial value flag is a flag for identifying whether or not the information indicating the variable length code table is encoded. When the information is encoded, the flag is “1”. When the information is not encoded, the flag is “0”. " Furthermore, as shown in FIG. 16 (a), selection signal encoded data indicating a variable length code table to be used is arranged in the header. When the variable length code table is not encoded, the selection signal encoded data is not output from the selection signal encoder 26 to the multiplexer 24, and as a result, as shown in FIG. As shown in Fig. 5, selection signal encoded data is not arranged in the bitstream.
  • the header includes the common data part that means the original header and is encoded by the header encoder 23, and the initial value flag generated by the variable length encoder 27. And selection signal encoding data encoded by the selection signal encoder 26. More specifically, the common data portion is divided into a head side and an image data side, and an initial value flag and selection signal encoded data are inserted in that order.
  • variable length code table itself is not encoded and embedded in the header, but the selection signal encoded data indicating the variable length code table to be used is embedded in the header. Therefore, since the variable length code table itself is not encoded, the amount of encoding can be reduced.
  • the selection signal encoded data indicating the variable length code table to be used for example, a part of the common data in the header can be used. In that case, since the data also has a function as a part of common data for the predetermined unit data, the amount of encoding can be further reduced.
  • common data for example, when the predetermined unit data is a picture, a picture coding type (a distinction between an intra-picture coded picture, an inter-picture predictive coded picture, and an inter-picture predictive coded picture), picture There are initial values of quantization parameters. Note that common data that has little to do with initialization includes picture encoding order, picture display order, motion vector and image There are parameters such as size.
  • the slice encoding type (intra-screen encoding slice, inter-screen prediction encoding slice, and bi-screen prediction encoding slice), initial values of slice quantization parameters, etc.
  • the initial value flag may be omitted by always updating the initial value.
  • FIG. 17 is a schematic block diagram of the variable length decoding device 31 as an embodiment of the present invention.
  • the variable length decoding device 31 is a device for decoding data encoded by the variable length coding device 21, for example.
  • the variable length decoding device 31 has a function of entropy decoding the data to obtain converted image information.
  • the variable length decoding device 31 mainly includes a data decoding unit 3 2 and a header decoder 3 3.
  • the data decoding unit 3 2 is a device for Huffman decoding data other than the header for each predetermined unit data, and includes a variable length decoder 3 7 and a selection signal decoder 3 6. Yes.
  • the predetermined unit data means a picture or a slice in the case of image data.
  • the data decoding unit 3 2 corresponds to the entropy decoding unit 2 07 in the general image decoding device 2 0 0 shown in FIG.
  • variable length decoder 37 is a device for decoding the encoded data based on the code word of the variable length code table 30 switched by the switch 35.
  • the selection signal decoder 36 is a device for decoding the selection signal encoded data output from the separator 34 by a fixed decoding method and outputting it to the switch 35.
  • the switch 3 5 determines the variable length code table 30 used by the variable length decoder 3 7 for decoding according to the code table selection signal output from the selection signal decoder 36. It is a device for switching.
  • the initialization unit 39 is a device for outputting an initialization command to the selection signal decoder 36.
  • the header decoder 3 3 decodes the header encoded data using a fixed decoding method. Is a device for
  • the separator 34 is a device for separating and outputting the bitstream into header encoded data, encoded data other than the header, and selection signal encoded data.
  • Separator 34 separates the bitstream, outputs the header encoded data to header decoder 33, outputs the encoded data other than the header to variable length decoder 37, and selects the signal. If there is encoded data, it is output to the selection signal decoder 36.
  • the header decoder 33 outputs the initial value flag in the header to the initialization unit 39.
  • the header decoder 33 decodes the header encoded data output from the separator 34 and outputs the header data.
  • FIG. 18 is a flowchart showing a schematic operation of the data decoding unit 32.
  • step S 51 the initialization unit 39 outputs an initialization command to the selection signal decoder 36, and the selection signal decoder 36 outputs a predetermined selection table code signal to the switch 35. .
  • the switch 35 selects the predetermined variable length code table 30 as the initial value for decoding the predetermined unit data.
  • step S 52 it is determined whether or not the information indicating the variable length code table to be used is encoded by the initial value flag embedded in the header of the variable length decoder 37. If it is determined that the information indicating the variable-length code table is encoded, the process proceeds to step S 53, and step S 53 that determines that the information is not encoded is skipped and the process proceeds to step S 54.
  • step S 53 based on the selection signal output from the switch 35 force selection signal decoder 36, the variable length code table 30 indicated by the selection signal is selected.
  • step S54 the variable length decoder 37 performs Huffman decoding on the sub data. More specifically, the variable length decoder 37 decodes the encoded sub data based on the variable length code table 30 selected by the switch 35 and outputs the data. . If the predetermined unit data is, for example, a picture, the slice is decoded.
  • step S 56 the variable length decoder 37 selects the variable length code table 30 via the switch 35 according to the generated data. The selected variable length code table 30 is used when the next sub data is decoded in step S 54.
  • step S 55 it is determined whether or not the decoding of all the sub data has been completed. If it is determined that all have not been completed, the process returns to step S 52 and repeats the above operation.
  • each sub-data is encoded based on the variable-length code table obtained by Huffman encoding, so the compression efficiency is improved.
  • the total number of data is small, so the ratio of the number of encoded data until the optimal encoding can be obtained by learning cannot be ignored. Even with such data, the compression efficiency can be increased by high learning and learning efficiency.
  • variable length indicated by the information at the time of decoding is Using the code table as an initial value, the encoded predetermined unit data can be correctly decoded.
  • the frequency of encoding the information indicating the variable length code table is appropriate.
  • the frequency of encoding the information indicating the variable length code table is low, and if the selected signal encoded data is destroyed on the transmission path, the image cannot be reproduced for several seconds or more. Will occur.
  • the redundancy of the data amount of information indicating the variable length code table does not increase. If this is a block (or macroblock) unit, the initialization data redundancy is too large.
  • the main body of the image data is highly compressed by Huffman encoding that switches between multiple variable-length code tables.
  • both The header which is the continuous data is encoded by a fixed encoding method. More specifically, the original header portion of the header is encoded by a fixed encoding method, and information indicating the inserted variable length code table is also encoded by a fixed encoding method. .
  • the header has a lower compression effect than the main body of the image data, so even if a fixed encoding method is used, there is no particular problem in terms of overall compression efficiency.
  • variable length encoding method or variable length decoding method shown in each of the above embodiments Furthermore, by recording a program for realizing the configuration of the variable length encoding method or variable length decoding method shown in each of the above embodiments on a storage medium such as a floppy disk, It is possible to easily execute the processing shown in the form of the above in an independent computer system.
  • FIG. 19 is an explanatory diagram when the computer system is implemented using a floppy disk storing the variable-length encoding method or variable-length decoding method of the first embodiment.
  • Fig. 19 (b) shows the appearance, sectional structure, and floppy disk as seen from the front of the floppy disk
  • Fig. 19 (a) shows an example of the physical format of the floppy disk that is the recording medium body.
  • the floppy disk FD is built in the case F.
  • On the surface of the disk a plurality of tracks Tr are formed concentrically from the outer periphery toward the inner periphery, and each track has 16 sectors S in the angular direction. It is divided into e. Therefore, in the floppy disk storing the program, the variable length encoding method or variable length decoding method as the program is recorded in an area allocated on the floppy disk FD.
  • Fig. 19 (c) shows the configuration for recording and reproducing the above program on the floppy disk FD.
  • the variable length encoding method or the variable length decoding method as the above program is written from the computer system C s via the floppy disk drive.
  • the program is read from the floppy disk by a floppy disk drive and transferred to the computer system.
  • a floppy disk is used as the recording medium, but the same can be done using an optical disk.
  • the recording medium is not limited to this, and any CD-ROM, memory card, ROM cassette, or the like that can record a program can be implemented in the same manner.
  • FIG. 20 is a block diagram showing the overall configuration of a content supply system exl 00 that implements a content distribution service.
  • the communication service providing area is divided into desired sizes, and base stations exl 07 to exl 10 are installed in each cell, which are fixed radio stations.
  • This content supply system exl 00 is connected to, for example, the Internet exl 01, the Internet service provider exl 02, the telephone network exl 04, and the base stations exl 0 7 to exll 0, through the computers ex l 1 1, PDA (personal Digital assistant ex ⁇ 2, Kamefu exl 3, mobile 3 ⁇ 4 old ex ⁇ 1 4, mobile phone with camera e X 1 1 5, etc. are connected.
  • PDA personal Digital assistant ex ⁇ 2, Kamefu exl 3, mobile 3 ⁇ 4 old ex ⁇ 1 4, mobile phone with camera e X 1 1 5, etc.
  • the content supply system exl 00 is not limited to the combination as shown in FIG. 17, and may be connected in combination.
  • each device can be directly connected to the telephone network exl 04 without going through the base stations exl 07 to exl 10, which are fixed radio stations.
  • the camera exl 1 3 is a device that can shoot movies such as a digital video camera.
  • Cellular phones are PDC (Personal Digital Communications), CDMA (Code Division Multiple Access), W-CDMA (Wideband-Code Division Multiple Access), or GSM (Global System for Mobile Communications) It is a telephone or PHS (Personal Handyphone System) etc.
  • the streaming server exl 03 is connected from the camera exl 1 3 through the base station ex 1 0 9 and the telephone network exl 04, and is based on the encoded data transmitted by the user using the camera exl 1 3. Live distribution becomes possible.
  • the encoded data may be encoded by the camera exl 13 or by a server that performs data transmission processing.
  • the video data shot by the camera 1 1 6 may be sent to the streaming server exl 0 3 via the computer exl 1 1.
  • the camera exl 1 6 is a device that can shoot still images and movies, such as a digital camera. In this case, the video data can be encoded with either the camera exl 1 6 or the computer exl 1 1.
  • the encoding process is performed in the LSI exl 1 7 included in the computer exl 1 1 and the camera exl 1 6.
  • the software for image encoding / decoding may be incorporated into any storage medium (CD_ROM, flexible disk, hard disk, etc.) that is a recording medium readable by the computer exl 1 1 or the like.
  • the moving image data may be transmitted by a camera-equipped mobile phone exl 15. The moving image data at this time is data encoded by an LSI included in the mobile phone ex 1 1 5.
  • the content (for example, video shot of music live) taken by the user with the camera exl 1 3 or the camera exl 1 6 is encoded as in the above embodiment.
  • the streaming server exl 0 3 streams the content data to the requested client.
  • the client include a computer exl l 1, a PDA exl 1 2, a camera ex 1 1 3 and a mobile phone ex 1 1 4 that can decrypt the encoded data.
  • the content supply system exl 0 0 can receive and play back the encoded data at the client, and further receive it at the client in real time, decrypt it, and play it back. It is a system that can realize personal broadcasting.
  • the moving image encoding device or the moving image decoding device described in the above embodiments may be used.
  • a mobile phone will be described as an example.
  • FIG. 21 is a diagram showing a mobile phone exl 15 using the moving picture coding method and the moving picture decoding method described in the above embodiment.
  • the mobile phone exl 1 5 is an antenna ex2 0 1 for transmitting and receiving radio waves to and from the base station ex 1 1 0, images from CCD cameras, Camera unit ex203 capable of taking still images, display unit ex 202 such as a liquid crystal display that displays decoded images of images taken by camera unit ex203, images received by antenna ex20 1, operation key e X204 group main unit, audio output unit ex208 such as a speaker for audio output, audio input unit ex205 such as a microphone for audio input, captured video or still image data, received mail Recording media ex207 for storing encoded data or decoded data, such as video data, video data or still image data, and recording media ex 207 to be able to be attached to mobile phone exl 1 5 It has a slot part ex206.
  • Recording media ex207 is a kind of EE PROM (Electrically Erasable and Programmable Read Only Memory) that is a nonvolatile memory that can be electrically rewritten and erased in a plastic case such as an SD card! : A flash memory device is stored.
  • EE PROM Electrically Erasable and Programmable Read Only Memory
  • the mobile phone exl 1 5 has a power supply circuit part ex310, an operation input control part for the main control part ex31 1 which is designed to control the respective parts of the main body part having the display part ex 202 and the operation key ex 204 ex304, image encoding unit ex31 2, camera interface unit ex303, LCD (Liquid Crystal Display) control unit ex 302, image decoding unit ex 309, demultiplexing unit ex 308, recording / playback unit ex 307, modulation / demodulation circuit unit An ex 306 and an audio processing unit ex 305 are connected to each other via a synchronous bus ex 31 3.
  • the power supply circuit ex 3 1 0 can operate the digital mobile phone with camera ex 1 15 by supplying power from the battery pack to each part when the end call and power key are turned on by user operation. Start in a safe state.
  • the mobile phone exl 15 is a digital signal that is collected by the voice input unit ex205 in the voice call mode based on the control of the main control unit ex 3 11 consisting of CPU, ROM, RAM, etc. It is converted into audio data, this is subjected to spectrum spreading processing by the modulation / demodulation circuit unit ex 306, digital digital conversion processing and frequency conversion processing are performed by the transmission / reception circuit unit ex30 1, and then via the antenna ex 201. Send.
  • the mobile phone exl 1 5 amplifies the received signal received by the antenna ex2 01 in the voice call mode, and performs frequency conversion processing and analog-digital conversion. After processing, the spectrum despreading process is performed by the modulation / demodulation circuit unit ex 3 0 6 and converted into an analog audio signal by the audio processing unit ex 3 0 5, and then output through the audio output unit ex 2 0 8 To do.
  • the text data of the e-mail input by operating the operation key e X 2 0 4 on the main unit is sent to the main control unit via the operation input control unit ex 3 0 4 sent to ex 3 1 1.
  • the main control unit ex 3 1 1 performs the spectrum spreading process on the text data in the modulation / demodulation circuit unit ex 3 0 6 and performs the digital / analog conversion process and the frequency conversion process in the transmission / reception circuit unit ex 3 0 1. Transmit to base station ex 1 1 0 via ex 2 0 1.
  • the image data captured by the camera unit ex 2 0 3 is supplied to the image encoding unit ex 3 1 2 via the camera interface unit ex 3 0 3.
  • the image data captured by the camera unit ex 2 0 3 is directly transmitted to the display unit ex 2 0 2 via the camera interface unit ex 3 0 3 and the LCD control unit ex 3 0 2. It is also possible to display.
  • the image encoding unit ex 3 1 2 has a configuration including the image encoding device described in the present invention, and the image encoding device shown in the above embodiment shows the image data supplied from the camera unit ex 2 0 3
  • the image data is converted into encoded image data by compression encoding using the encoding method used in the above, and this is sent to the demultiplexing unit ex 3 0 8.
  • the cellular phone ex 1 1 5 receives the audio collected by the audio input unit ex 2 0 5 during the imaging by the camera unit ex 2 0 3 via the audio processing unit ex 3 0 5. As a result, it is sent to the demultiplexer ex 3 0 8.
  • the demultiplexing unit ex 3 0 8 multiplexes the encoded image data supplied from the image encoding unit ex 3 12 and the audio data supplied from the audio processing unit ex 3 0 5 by a predetermined method.
  • the resulting multiplexed data is subjected to spectrum spreading processing by the modulation / demodulation circuit unit ex 3 0 6, digital-analog conversion processing and frequency conversion processing by the transmission / reception circuit unit ex 3 0 1, and then the antenna ex 2 0 Send via 1
  • the modulation / demodulation circuit unit ex 3 0 6 When receiving data of a moving image file linked to a home page or the like in the data communication mode, the modulation / demodulation circuit unit ex 3 0 6 receives the received signal received from the base station ex l 1 0 via the antenna ex 2 0 1 Spectral despreading process and the result The multiplexed data is sent to the demultiplexer ex 3 0 8.
  • the demultiplexing unit ex 3 0 8 separates the multiplexed data to thereby encode the encoded bit stream and the audio of the image data.
  • the data is divided into encoded bit streams of data, and the encoded image data is supplied to the image decoding unit ex 3 0 9 via the synchronization bus ex 3 1 3 and the audio data is supplied to the audio processing unit ex 3 0 5 Supply.
  • the image decoding unit ex 3 0 9 is configured to include the image decoding device described in the present invention, and corresponds to the encoding method shown in the above embodiment for the encoded bit stream of image data.
  • Reproduced moving image data is generated by decoding with a decoding method, and this is supplied to the display unit ex 2 0 2 via the LCD control unit ex 3 0 2, so that, for example, a movie linked to the homepage The movie data included in the image file is displayed.
  • the audio processing unit ex 3 0 5 converts the audio data into an analog audio signal and then supplies the analog audio signal to the audio output unit ex 2 0 8, thereby, for example, a moving image file linked to the homepage. Is reproduced.
  • the present invention is not limited to the above system, and recently, digital broadcasting using satellites and terrestrial waves has become a hot topic, and as shown in FIG.
  • either an image decoding device can be incorporated.
  • the broadcasting station ex 4 0 9 the encoded bit stream of the video information is transmitted to the communication or broadcasting satellite ex 4 10 via radio waves.
  • the broadcast satellite ex 4 1 0 that received this signal transmits a radio wave for broadcasting, and this radio wave is received by a home antenna ex 4 0 6 with a satellite broadcast receiving facility, and the television (receiver) ex 4 0 1 or Uses a set top box (STB) ex 407 to decode the encoded bitstream and play it back.
  • STB set top box
  • the decoding device shown in the above embodiment also decodes the encoded bitstream recorded on the storage medium ex4002, which is a recording medium such as CD or DVD, and decodes it. It is possible to implement the device. In this case, the reproduced video signal is displayed on the monitor ex 4 0 4. Also, an image decoding device is installed in the set top box ex 4 0 7 connected to the cable ex 4 0 5 for cable television or the antenna ex 4 0 6 for satellite terrestrial broadcasting, and this is installed on the TV monitor. A configuration of playing with ex 4 0 8 is also possible. This It is also possible to install an image decoding device in the TV instead of a set-top box.
  • the car ex 4 1 2 with the antenna ex 4 1 1 receives signals from the satellite ex 4 1 0 or the base station ex l 0 7 etc., and the car ex 4 1 2 has car navigation ex 4 1 3 etc. It is also possible to play a moving image on the display device.
  • the image signal can be encoded by the image encoding device described in the above embodiment and recorded on a recording medium.
  • a recorder ex 4 2 0 such as a DVD recorder that records image signals on a DVD disk e X 4 2 1 or a disk recorder that records data on a hard disk. You can also record to SD card e X 4 2 2. If the recorder e X 4 2 0 is equipped with the image decoding device shown in the above embodiment, the image signal recorded on the DVD disc e X 4 2 1 or the SD card ex 4 2 2 is reproduced and the monitor e X 4 0 8 can be displayed.
  • car navigation ex 4 1 3 is, for example, the configuration shown in FIG. 19 except for the camera unit ex 2 0 3, the camera interface unit ex 3 0 3, and the image encoding unit ex 3 1 2.
  • the same can be considered for computers ex l 1 1 and television (receiver) ex 4 0 1 etc.
  • the terminal such as the mobile phone ex l 1 4 is not limited to the transmission terminal having only the encoder and the receiving terminal having only the decoder. There are three possible mounting formats.
  • the moving picture encoding method or the moving picture decoding method described in the above embodiment can be used in any of the devices and systems described above, and as a result, the description is given in the above embodiment. Effects can be obtained.

Description

明 細 書 可変長符号化方法、 可変長複号化方法、 記憶媒体、 可変長符号化装置、 可変長復 号化装置、 及びビッ トストリーム
(技術分野)
本発明は、 可変長符号化方法、 それに対応した可変長復号化方法、 それら処理 をコンピュータに行わせるプログラムを格納する記憶媒体、 可変長符号化装置及 びそれに対応した可変長復号化装置に関する。 本発明は、 特に、 符号化済みのデ ータによって符号化方法を最適化する動的な可変長符号化方法、 それに対応した 可変長複号化方法、 それら処理をコンピュータに行わせるプログラムを格納する 記憶媒体、 符号化済みのデータによって符号化方法を最適化する動的な可変長符 号化装置、 及びそれに対応した可変長復号化装置に関する。 (背景技術)
近年、 画像符号化方式の国際標準化活動により、 画像の圧縮、 復元の技術とし て、 静止画の J P E Gや動画の MP E Gなどが規格化されている。
M P E G (Moving Picture Experts Group)符号化方式は、 主に、 動き補償フ レーム間予測ユニットと、 D C T (離散コサイン変換) ユニットと、 可変長符号 化ユニットとから構成されている。 動き補償フレーム間予測ユニットは、 入力画 像と前画像データとから動きべクトルを検出し、 動きべク トルと前画像データと から予測誤差データを作成する。 D C Tュニットは予測誤差データを D C T変換 する。 量子化ユニッ トは、 D C T係数を量子化し、 可変長符号化ユニットは、 量 子化された D C T係数や動きべクトルに符号語を割り当てていく。
M P E G符号化方式における画像符号化データは、 シーケンス、 G O P (Grou p Of Picture) 、 ピクチャ、 スライス、 マクロブロック、 ブロックの 6層の階層 構造を有している。 ピクチャは、 一枚の画像に対応する基本的符号化単位であり 、 複数のスライスから構成されている。 スライスは、 同期復帰単位であり、 一つ 又は複数のマクロプロックからなる帯状の領域である。 可変長符号化とは、 エントロピー符号化の一種であり、 DCT変換後の係数 ( DCT係数) 値や動きベク トル値等は生起確率に偏りがあることから、 これらの 値のうち生起確率が高い値には短い符号語を割り当て、 生起確率が低い値には長 レ、符号語を割り当てることにより、 平均情報量を減らすものである。
可変長符号化の主な種類としては、 ハフマン符号化や算術符号化がある。
ハフマン符号化は、 各シンボルを葉としたハフマン符号木により符号語を決定 する方法であり、 各符号に対応する符号語 (ビット列) の対応表 (符号表) を用 いる。
ハフマン符号化では、 圧縮率向上のために、 変化する動画像の統計的性質に応 じて符号表を作成する方法や、 複数の符号表を用意しておき画像の統計的性質に 応じて符号表を切り換える方法が用いられている。 情報理論では、 生起確率 pの 符号に 1 o g2 (1/p) ビットを割り当てる符号表が最も平均情報量が少ない ことが証明されている。 そこで、 複数の符号表を切り換える方法では、 符号化済 みのデータから生起確率を計算し、 生起確率 pの符号に 1 o g2 (1/p) ビッ 卜に近いビット数が割り当てられるような符号表を選択する。
算術符号化は、 シンボルの系列を生起確率に応じて区間 [0, 1) に射影し、 数直線上の確率空間を区間内の適当な数でバイナリ表現する手法である。 算術符 号化は、 常に統計的性質を監視しながら符号化を行い、 具体的には、 画像内容に 応じて確率表を書き換えつつ、 確率表を参照しながら符号語を決定する。 より具 体的には、 算術符号化では、 生起確率 pの符号に 1 o g2 (1/p) ビッ トが割 り当てられるように、 算術演算で用いる確率を符号化済みのデータから生起確率 を逐次更新する。
算術符号化では、 ハフマン符号化とは異なり、 算術演算 (加減乗除) のみで符 号語に相当するビッ ト列を取得できるために、 ハフマン符号化に比べて符号表を 記憶するために必要なメモリ量を削減できる。 また、 符号化の途中で統計的性質 が変わっても確率表を書き換えることで対応できる。 しかしながら、 算術演算、 特に乗除算は高い演算能力が必要であり、 低演算能力の機器では実現が困難であ るという欠点も有する。
以上に述べた動的な符号化方法では、 符号化済みのデータによって動的に符号 化方法を最適化していくため、 固定的な符号化方法に比べて圧縮効率を向上させ ることができる。
しかし、 符号化済みデータによって動的に符号化方法を最適化する場合には、 下記の問題点がある。
学習による動的符号化は、 例えば、 ピクチャのヘッダ以降すなわち各スライス やマクロブロック、 プロック毎に行われる。 その場合には、 算術符号化では各ピ クチャにおける初期値に固定の確率表が用いられ、 ハフマン符号化では各ピクチ ャにおける初期の符号表として固定の可変長符号表が用いられている。 このよう に固定の初期値が用いられるため、 初期化された後、 学習によって最適な確率表 や符号表が得られるまでは、 符号化の圧縮効率が良いとは言えない。 特に、 全体 のデータ数が小さい場合は、 学習するために必要なデータ数の割合が大きくなり 、 圧縮率がそれほど高くない。
一方、 符号化済みのデータのうち学習に使用される部分が伝送路において損な われると、 復号化器において正しい学習が行えなくて復号化不能になり、 画像デ ータの場合は伝送路誤りによる画質劣化が発生する。 伝送路誤りに強くするため には、 定期的に学習結果をリセットすることになるが、 リセット間隔を長くする と誤りに弱くなるため、 リセット間隔はある程度短くならざるを得ない。
以上のように、 伝送路誤りの問題を解決することを前提とすると、 現状の動的 な符号化方法では、 圧縮効率が十分に向上しない。
(発明の開示)
本発明の課題は、 画像圧縮等に使用する可変長符号化方法の圧縮効率を向上す ることにある。
本発明の他の課題は、 圧縮効率を向上させた可変長符号化方法により符号化さ れたデータを正しく復号化することにある。
請求項 1に記載の可変長符号化方法は、 パラメータ表を参照しながら各所定単 位データを符号化する可変長符号化方法であつて、 以下のステップを備えている ◎パラメータ表を初期値に設定する初期化ステップ ◎初期化されたパラメータ表に関する情報を符号化するパラメータ表情報符号 化ステップ
◎所定単位データを構成する各サブデータの符号化に用いられる符号化パラメ ータをパラメータ表から取得するパラメータ取得ステップ
◎サブデータを、 取得された符号化パラメータを参照して可変長符号化するサ ブデータ符号^ iステップ
◎符号化された情報を符号化された所定単位データより先に取得できる位置に 配置して出力する情報符号化データ配置ステップ
なお、 符号化パラメータとは、 データの発生頻度を表すものであり、 パラメ一 タ表から取得されて、 各サブデータの符号化の際に参照される。 算術符号化の場 合にはパラメータ表は確率表に対応し、 さらに符号化パラメータは確率に対応す ることになる力 それらに限定されない。
この符号化方法では、 各サブデータの符号化においてパラメータ表から取得し た符号化パラメータを利用しているため、 所定単位データを符号化する際の圧縮 効率が向上する。 また、 初期化されたパラメータ表に関する情報は符号化され、 符号化された所定単位データより先に取得できる位置に配置されているため、 復 号化の際にはそのパラメータ表を初期値として符号化された所定単位データを正 しく復号化することができる。
請求項 2に記載の可変長符号化方法では、 請求項 1において、 符号化したサブ データの値に基づいてパラメータ表を更新し、 符号化パラメータをパラメータ表 から取得する。
この符号化方法では、 符号化したサブデータの値に基づいてパラメータ表を更 新しているため、 所定単位デ一タを符号化する際の圧縮効率が向上する。
請求項 3に記載の可変長符号化方法では、 請求項 1又は 2において、 サブデー タ符号化ステップで用いられる符号化パラメータの初期値は、 直前の符号化した サブデータの値に基づいて導出したパラメータ表から取得されている。
この符号化方法では、 符号化パラメータの初期値は、 直前の符号化したサブデ 一タの値に基づいたパラメ一タ表から取得された符号化パラメータに基づいて符 号化されるため、 リアルタイムで符号化パラメータが導出でき、 符号化が高速に なる。
請求項 4に記載の可変長符号化方法では、 請求項 1又は 2において、 サブデー タ符号化ステップで用いられる符号化パラメ一タの初期値は、 当該符号化したサ ブデータの値に基づいて導出したパラメータ表から取得されている。
この符号化方法では、 符号化パラメータの初期値は、 当該符号化したサブデー タの値に基づいたパラメータ表から取得された符号化パラメータに基づいて最適 な符号化パラメータが導出できるため、 当該サブデータと直前のサブデータの内 容が大きく異なる場合でも、 圧縮効率が高い。
請求項 5に記載の可変長符号化方法では、 請求項 1〜4のいずれかにおいて、 サブデータ符号化ステップでは、 サブデータを、 符号化パラメータを参照して算 術符号化する。
この符号化方法では、 サブデータの符号化方法として算術符号化を用いている ため、 圧縮効率がよい。 なお、 パラメータ表は確率表に対応しており、 符号化パ ラメ一タは確率に対応している。
請求項 6に記載の可変長符号化方法では、 請求項 1〜5のいずれかにおいて、 パラメータ表に関する情報はパラメータ表そのものである。
請求項 7に記載の可変長符号化方法では、 請求項 6において、 パラメータ表情 報符号化ステップでは、 パラメータ表の一部のみを符号化する。
この符号化方法では、 初期化されたパラメータ表の全てではなく、 一部のみが 符号化されるため、 符号化量を削減できる。
請求項 8に記載の可変長符号化方法では、 請求項 7において、 パラメータ表の 一部は、 生起確率が高い符号化済みデータに対応するパラメータ部分である。 この符号化方法では、' 初期化されたパラメータ表のうち生起確率が高い符号化 済みデータに対応する部分のみを符号化するため、 符号化量を削減しつつも、 復 号化の際に十分に正しく復号化できる。
請求項 9に記載の可変長符号化方法では、 請求項 1〜 5のいずれかにおいて、 パラメータ表に関する情報はパラメータ表を示す情報である。
この符号化方法では、 パラメータ表を示す情報を符号化するのであってパラメ ータ表そのものを符号化するのではないため、 符号化量を削減できる。 請求項 1 0に記載の可変長符号化方法では、 請求項 9において、 情報符号化デ —タ配置ステップでは、 符号化されたパラメータ表を示す情報は所定単位データ に対する共通データの一部として配置される。
この符号化方法では、 パラメータ表に関する情報は所定単位データに対する共 通データの一部として配置されており、 その一部としての機能も有しているため 、 符号化量が削減できる。
請求項 1 1に記載の可変長符号化方法では、 請求項 1〜 1 0のいずれかにおい て、 情報符号化ステップでは、 パラメータ表に関する情報を固定的な符号化方法 で符号化する。
この符号化方法では、 固定的な符号化方法を用いているため、 初期化されたパ ラメータ表に関する情報は静的に符号化される。 そのため、 初期化されたパラメ ータ表に関する情報は確実に復号化される。
請求項 1 2に記載の可変長符号化方法は、 請求項 1〜1 1のいずれかにおいて 、 初期化されたパラメータ表に関する情報を符号化するか否かを判断する符号化 判断ステップと、 判断結果を識別するフラグを符号化された所定単位データより 先に取得できる位置に配置して出力するフラグ配置ステップとをさらに備えてい る。
この符号化方法では、 初期化されたパラメータ表に関する情報が符号化された か否かは、 符号化された所定単位データより先に取得できる位置に配置されたフ ラグによって判断できる。 なお、 初期値として使われたパラメータ表に関する情 報が符号化されないのは、 例えば、 次にパラメータ表が初期化されるまでのデー タ数が十分に多い (つまり十分に学習するのに必要なデータ数が全体のデータ数 に占める割合が小さく、 そのため学習効率がよい) 場合や、 又は、 初期値として 使われたパラメータ表が学習によって得られる最適なパラメータ表とほとんど一 致する場合などである。
請求項 1 3に記載の可変長符号化方法では、 請求項 1〜1 2のいずれかにおい て、 所定単位データは画像データにおけるピクチャである。
この符号化方法では、 全画像データ内でパラメータ表を符号化する頻度が適切 であり、 そのため、 伝送路誤りで学習すべき符号化データの一部が欠落し、 符号 化時と同じパラメータ表が復号化時に再現できなくなった場合でも、 高頻度で符 号化されたパラメータ表を複号化することで数秒以上画像が再生不可能となる状 態が生じることがなく、 またパラメータ表のデータ量の冗長が大きくなることも ない。
請求項 1 4に記載の可変長符号化方法では、 請求項 1〜 1 2のいずれかにおい て、 所定単位データは画像データにおけるスライスである。
この符号化方法では、 全画像データ内でパラメータ表を符号化する頻度が適切 であり、 そのため、 伝送路誤りで学習すべき符号化データの一部が欠落し、 符号 化時と同じパラメータ表が複号化時に再現できなくなった場合でも、 高頻度で符 号化されたパラメータ表を復号化することで数秒以上画像が再生不可能となる状 態が生じることがなく、 またパラメータ表のデータ量の冗長が大きくなることも なレ、。
請求項 1 5に記載の可変長複号化方法は、 ストリームを構成する各所定単位デ ータを、 パラメータ表を参照して復号化する方法であって、 以下のステップを備 えている。
©ストリームのパラメータ表に関する情報を復号化するパラメータ表情報復号 化ステップステップ
@パラメータ表に関する情報に基づきパラメ一タ表の初期値を設定するパラメ ータ表初期化ステップ
◎所定単位データを構成するサブデータの復号化に用いられる符号化パラメ一 タをパラメータ表から取得するパラメータ取得ステップ
©ストリームのサブデータを、 取得された符号化パラメータを参照して可変長 復号化するサブデータ複号化ステップ
この復号化方法では、 パラメータ表に関する情報を復号化し、 それに基づいて 取得したパラメータ表を初期値に設定するため、 所定単位データを正しく復号化 することができる。
請求項 1 6に記載の可変長復号化方法では、 請求項 1 5において、 復号化した サブデータの値に基づいてパラメータ表を更新し、 符号化パラメータをパラメ一 タ表から取得する。 請求項 1 7に記載の可変長複号化方法では、 請求項 1 5又は 1 6において、 サ ブデータ複号化ステップでは、 サブデータを、 符号化パラメータを参照して算術 復号化する。
請求項 1 8に記載の可変長復号化方法では、 請求項 1 5〜1 7のいずれかにお いて、 パラメータ表情報復号化ステップでは、 パラメータ表に関する情報を固定 的な複号化方法で復号化する。
請求項 1 9に記載の記憶媒体は、 コンピュータに可変長符号化処理を行わせる ためのプログラムを格納したものである。 可変長符号化処理は、 パラメータ表を 参照しながら各所定単位データを符号化する可変長符号化方法であって、 以下の ステップを備えている。
◎パラメータ表を初期値に設定する初期化ステツプ
◎初期化されたパラメータ表に関する情報を符号化するパラメータ表情報符号 化ステップ
◎所定単位データを構成する各サブデ一タの符号化に用いられる符号化パラメ ータをパラメータ表から取得するパラメータ取得ステップ
◎サブデータを、 取得された符号化パラメータを参照して可変長符号化するサ ブデータ符号化ステップ
◎符号化された情報を符号化された所定単位データより先に取得できる位置に 配置して出力する情報符号化データ配置ステップ
この記憶媒体では、 格納されたプログラムをコンピュータにロードすることに より、 コンピュータに可変長符号化処理を行わせる。 その処理において、 各サブ データの符号化においてパラメータ表から取得した符号化パラメータを利用して いるため、 所定単位データを符号化する際の圧縮効率が向上する。 また、 初期化 されたパラメータ表に関する情報は符号化され、 符号化された所定単位データ符 号化された所定単位データより先に取得できる位置に配置されているため、 復号 化の際にはそのパラメータ表を初期値として符号化された所定単位データを正し く復号化することができる。
請求項 2 0に記載の記憶媒体は、 コンピュータに可変長複号化処理を行わせる ためのプログラムを格納したものである。 可変長複号化処理は、 ス トリームを構 成する各所定単位データを、 パラメータ表を参照して複号化する可変長複号化方 法であって、 以下のステップを備えている。
©ス トリ一ムのパラメータ表に関する情報を複号化するパラメータ表情報復号 化ステップ
◎パラメータ表に関する情報に基づきパラメータ表の初期値を設定するパラメ ータ表初期化ステップ
◎所定単位データを構成するサブデータの復号化に用いられる符号化パラメ一 タをパラメータ表から取得するパラメータ取得ステップ
©ストリームのサブデータを、 取得された符号化パラメータを参照して可変長 複号化するサブデータ復号化ステップ
この記憶媒体では、 格納されたプログラムをコンピュータにロードすることに より、 コンピュータに可変長復号化処理を行わせる。 その処理において、 パラメ ータ表に関する情報を複号化し、 それに基づいて取得したパラメータ表を初期値 に設定するため、 所定単位データを正しく復号化することができる。
請求項 2 1に記載の可変長符号化方法は、 可変長符号表を切り換えながら各所 定単位データを符号化する可変長符号化方法であって、 以下のステップを備えて いる。
◎可変長符号表を初期値に設定する初期化ステップ
◎初期化された可変長符号表を示す情報を符号化する可変長符号表情報符号化 ステップ
◎所定単位データを構成する各サブデータの符号化に用いられる可変長符号表 を選択する可変長符号表選択ステップ
◎サブデータを、 選択された可変長符号表を参照して符号化するサブデータ符 号化ステップ
◎符号化された可変長符号表を示す情報を符号化された所定単位データより先 に取得できる位置に配置して出力する情報符号化データ配置ステップ
この符号化方法では、 各サブデータの符号化において選択された可変長符号表 を利用しているため、 所定単位データを符号化する際の圧縮効率が向上する。 ま た、 初期化された可変長符号表を示す情報は符号化され、 符号化された所定単位 データより先に取得できる位置に配置されているため、 復号化の際にはその情報 が示す可変長符号表を初期値として符号化された所定単位データを正しく複号化 することができる。
請求項 2 2に記載の可変長符号化方法では、 請求項 2 1において、 符号化した サブデータの値に基づいて可変長符号表を選択する。
この符号化方法では、 符号化したサブデータの値に基づいて可変長符号表を選 択しているため、 所定単位データを符号化する際の圧縮効率が向上する。
請求項 2 3に記載の可変長符号化方法では、 請求項 2 2において、 サブデータ 符号化ステップでは、 符号化に用いられる可変長符号表は、 符号化した直前のサ ブデータの値に基づいて選択された可変長符号表である。
この符号化方法では、 サブデータは、 直前の符号化したサブデータの値に基づ いて選択された可変長符号表に基づいて符号化されるため、 リアルタイムで符号 化でき、 符号化が高速になる。
請求項 2 4に記載の可変長符号化方法では、 請求項 2 2において、 サブデータ 符号化ステップでは、 符号化に用いられる可変長符号表は、 符号化した当該サブ データの値に基づいて選択された可変長符号表である。
この符号化方法では、 サブデータは、 当該符号化したサブデータの値に基づい て選択された可変長符号表に基づいて符号化されるため、 当該サブデータと直前 のサブデータの内容が大きく異なる場合でも、 圧縮効率が高い。
請求項 2 5に記載の可変長符号化方法では、 請求項 2 1〜 2 4のいずれかにお いて、 可変長符号表情報符号化ステップでは、 固定的な符号化方法で符号化する この符号化方法では、 固定的な符号化方法を用いているため、 初期化された可 変長符号表を示す情報は確実に復号化される。
請求項 2 6に記載の可変長符号化方法は、 請求項 2 1〜2 5のいずれかにおい て、 初期化された可変長符号表を示す情報を符号化するか否かを判断する符号化 判断ステップと、 判断結果を識別するフラグを符号化された所定単位データより 先に取得できる位置に配置して出力するフラグ配置ステップとをさらに備えてい る。 この符号化方法では、 初期化された可変長符号表を示す情報が符号化されたか 否かは、 符号化所定単位データより先に取得できる位置に配置されたフラグによ つて判断できる。 なお、 初期値として使われた可変長符号表を示す情報が符号化 されないのは、 例えば、 次に可変長符号表が初期化されるまでのデータ数が十分 に多い (つまり十分に学習するのに必要なデータ数が全体のデータ数に占める割 合が小さく、 そのため学習効率がよい) 場合や、 又は、 初期値として使われた可 変長符号表が学習によって得られる最適な可変長符号表と一致する場合などであ る。
請求項 2 7に記載の可変長符号化方法では、 請求項 2 1〜2 6のいずれかにお いて、 所定単位データは画像データにおけるピクチャである。
この符号化方法では、 全画像データ内で可変長符号表を示す情報を符号化する 頻度が適切であり、 そのため、 伝送路誤りで情報符号化データが破壊された場合 でも数秒以上画像が再生不可能となる状態が生じることがなく、 また情報符号化 データの量の冗長が大きくなることもない。
請求項 2 8に記載の可変長符号化方法では、 請求項 2 1〜 2 6のいずれかにお いて、 所定単位データは画像データにおけるスライスである。
この符号化方法では、 全画像データ内で可変長符号表を示す情報を符号化する 頻度が適切であり、 そのため、 伝送路誤りで情報符号化データが破壊された場合 でも数秒以上画像が再生不可能となる状態が生じることがなく、 また情報符号化 データの量の冗長が大きくなることもない。
請求項 2 9に記載の可変長符号化方法では、 請求項 2:!〜 2 8のいずれかにお いて、 サブデータの複数のシンタックス要素は、 可変長符号表を切り換える可変 長符号化方法によつて符号化される部分と、 固定的な符号化方法によつて符号化 される部分とを含んでいる。
この符号化方法では、 例えば画像データにおいて、 可変長符号表を切り換える 可変長符号化方法によってサブデータを符号化することで高い圧縮効率を得るこ とができるとともに、 固定的な符号化方法によって共通データであるヘッダを符 号化することで処理を簡単にできる。 なお、 ヘッダはもともと圧縮効果が少ない ため、 固定的な符号化方法を用いても特に支障はない。 請求項 3 0に記載の可変長復号化方法は、 ス トリームを構成する各所定単位デ ータを、 可変長符号表を切り換えながら複号化する方法であって、 以下のステツ プを備えている。
©ストリームの可変長符号表を示す情報を復号化する可変長符号表情報復号化
◎可変長符号表を示す情報に基づき可変長符号表の初期値を設定する可変長符 号表初期化ステップ
◎所定単位データを構成するサブデータの複号化に用いられる可変長符号表を 選択する可変長符号表選択ステップ
©ストリームのサブデータを、 選択された可変長符号表を参照して可変長復号 化するサブデータ復号化ステップ
この複号化方法では、 選択された可変長符号表を示す情報を複号化し、 その情 報が示す可変長符号表を初期値に設定するため、 符号化された所定単位データを 正しく複号化することができる。
請求項 3 1に記載の記憶媒体は、 コンピュータに可変長符号化処理を行わせる ためのプログラムを格納したものである。 可変長符号化処理は、 可変長符号表を 切り換えながら各所定単位データを符号化する可変長符号化方法であって、 以下 のステップを備えている。
◎可変長符号表を初期値に設定する初期化ステップ
◎初期化された可変長符号表を示す情報を符号化する可変長符号表情報符号化
◎所定単位データを構成する各サブデータの符号化に用いられる可変長符号表 を選択する可変長符号表選択ステップ
◎サブデータを、 選択された可変長符号表を参照して符号化するサブデータ符 号化ステップ
◎符号化された可変長符号表を示す情報を符号化された所定単位データより先 に取得できる位置に配置して出力する情報符号化データ配置ステップ
この記憶媒体では、 格納されたプログラムがコンピュータに行わせる符号化処 理において、 各サブデータの符号化において選択された可変長符号表を利用して いるため、 所定単位データを符号化する際の圧縮効率が向上する。 また、 初期化 された可変長符号表を示す情報は符号化され、 符号化された所定単位データより 先に取得できる位置に配置されるため、 複号化の際にはその情報が示す可変長符 号表を初期値として符号化された所定単位データを正しく複号化することができ る。
請求項 3 2に記載の記憶媒体は、 コンピュータに可変長復号化処理を行わせる ためのプログラムを格納したものである。 可変長複号化処理は、 ス トリームを構 成する各所定単位データを、 可変長符号表を切り換えながら復号化する可変長復 号化方法であって、 以下のステップを備えている。
©ストリームの可変長符号表を示す情報を復号化する可変長符号表情報復号化
◎可変長符号表を示す情報に基づき可変長符号表の初期値を設定する可変長符 号表初期化ステップ
◎所定単位データを構成するサブデータの複号化に用いられる可変長符号表を 選択する可変長符号表選択ステップ
©ストリームのサブデータを、 選択された可変長符号表を参照して可変長復号 化するサブデータ複号化ステップ
この記憶媒体では、 格納されたプログラムがコンピュータに行わせる複号化処 理において、 可変長符号表を示す情報を複号化しその情報が示す可変長符号表を 初期値に設定するため、 符号化された所定単位データを正しく復号化することが できる。
請求項 3 3に記載の可変長符号化装置は、 パラメータ表を参照しながら各所定 単位データを符号化する可変長符号化装置であって、 初期化手段と、 パラメータ 表情報取得手段と、 パラメータ表情報符号化手段と、 パラメータ取得手段と、 サ ブデータ符号化手段と、 情報符号化データ配置手段とを備えている。 初期化手段 は、 パラメータ表を初期値に設定する。 パラメータ表情報符号化手段は、 初期化 されたパラメータ表に関する情報を符号化する。 パラメータ取得手段は、 所定単 位データを構成する各サブデータの符号化に用レ、られる符号化パラメ一タをパラ メータ表から取得する。 サブデータ符号化手段は、 サブデータを、 取得された符 号化パラメータを参照して可変長符号化する。 情報符号化データ配置手段は、 符 号化されたパラメータ表に関する情報を符号化された所定単位データより先に取 得できる位置に配置して出力する。
この符号化装置では、 サブデータ符号化手段がサブデータを符号化する際にパ ラメータ表から取得した符号化パラメータを利用しているため、 所定単位データ を符号化する際の圧縮効率が向上する。 また、 初期化されたパラメータ表に関す る情報は、 パラメータ表情報符号化手段によって符号化され、 さらに情報符号化 データ配置手段によって符号化された所定単位データより先に取得できる位置に 配置されるため、 複号化の際にはその情報に基づきパラメータ表を取得し、 その パラメータ表を初期値として符号化された所定単位データを正しく復号化するこ とができる。
請求項 3 4に記載の可変長復号化装置は、 ストリームを構成する各所定単位デ ータを、 パラメータ表を参照して複号化する可変長複号化装置であって、 パラメ —タ表情報復号化手段と、 パラメータ表初期化手段と、 パラメータ取得手段と、 サブデータ復号化手段とを備えている。 パラメータ表情報復号化手段は、 ストリ ームのパラメータ表に関する情報を復号化する。 パラメータ表初期化手段は、 パ ラメータ表に関する情報に基づきパラメータ表の初期値を設定する。 パラメータ 取得手段は、 所定単位データを構成するサブデータの複号化に用いられる符号化 パラメータをパラメータ表から取得する。 サブデータ複号化手段は、 ス トリーム のサブデータを、 取得された符号化パラメータを参照して可変長復号化する。 この複号化装置では、 パラメータ表に関する情報を複号化し、 それに基づいて 取得したパラメータ表を初期値に設定するため、 所定単位データを正しく復号化 することができる。
請求項 3 5に記載の可変長符号化装置は、 可変.長符号表を切り換えながら各所 定単位データを符号化する可変長符号化装置であって、 初期化手段と、 可変長符 号表情報符号化手段と、 可変長符号表選択手段と、 サブデータ符号化手段と、 情 報符号化データ配置手段とを備えている。 初期化手段は、 可変長符号表を初期値 に設定する。 可変長符号表情報符号化手段は、 初期化された可変長符号表を示す 情報を符号化する。 可変長符号表選択手段は、 所定単位データを構成する各サブ データの符号化に用いられる可変長符号表を選択する。 サブデータ符号化手段は 、 サブデータを、 選択された可変長符号表を参照して符号化する。 情報符号化デ ータ配置手段は、 符号化された可変長符号表を示す情報を符号化された所定単位 データより先に取得できる位置に配置して出力する。
この符号化装置では、 サブデータ符号化手段がサブデータを符号化する際に選 択した可変長符号表を利用しているため、 所定単位データを符号化する際の圧縮 効率が向上する。 また、 初期化された可変長符号表を示す情報は、 可変長符号表 情報符号化手段によつて符号化され、 さらに情報符号化データ配置手段によって 符号化された所定単位データより先に取得できる位置に配置されるため、 復号化 の際にはその情報が示す可変長符号表を取得し、 その可変長符号表を初期値とし て符号化された所定単位データを正しく複号化することができる。
請求項 3 6に記載の可変長復号化装置は、 ストリームを構成する各所定単位デ ータを、 可変長符号表を切り換えながら複号化する可変長復号化装置であって、 可変長符号表情報復号化手段と、 可変長符号表初期化手段と、 可変長符号表選択 手段と、 サブデータ復号化手段とを備えている。 可変長符号表情報復号化手段は 、 ス トリームの可変長符号表を示す情報を復号化する。 可変長符号表初期化手段 は、 可変長符号表を示す情報に基づき可変長符号表の初期値を設定する。 可変長 符号表選択手段は、 所定単位データを構成するサブデータの複号化に用いられる 可変長符号表を選択する。 サブデータ複号化手段は、 ス トリームのサブデータを 、 選択された可変長符号表を参照して可変長複号化する。
この復号化装置では、 可変長符号表を示す情報を複号化し、 それに基づいて選 択した可変長符号表を初期値に設定するため、 所定単位データを正しく複号化す ることができる。
請求項 3 7に記載のビットストリームは、 パラメータ表を参照しながら各所定 単位データを符号化する可変長符号化方法によって生成されたビットス トリーム である。 この可変長符号化方法は請求項 1〜 1 4又は 2 1〜2 9のいずれかに記 載の可変長符号化方法である。
このビッ トス トリームでは、 所定単位データを符号化する際の圧縮効率が向上 するなど、 各可変長符号化方法による効果が得られる。 (図面の簡単な説明)
第 1図は、 本発明の第 1実施形態における可変長符号化装置の概略構成を示す ブロック図である。
第 2図は、 一般的な画像符号化装置の概略構成を示すブロック図である。
第 3図は、 データ符号化部の概略動作を示すフローチヤ一トである。
第 4図は、 データ符号化部の概略動作を示す、 変形例のフローチャートである 第 5図は、 画像データのストリーム構造の一例を示す図である。
第 6図は、 画像データのストリーム構造の他の例を示す図である。
第 7図は、 可変長符号化装置によって生成されるビットストリームのデータ構 造である。
第 8図は、 可変長符号化装置によって生成されるビットストリームのデータ構 造である。
第 9図は、 本発明の第 1実施形態における可変長複号化装置の概略構成を示す ブロック図である。
第 1 0図は、 一般的な画像復号化装置の概略構成を示すブロック図である。 第 1 1図は、 データ複号化部の概略動作を示すフローチャートである。
第 1 2図は、 本発明の第 2実施形態における可変長符号化装置の概略構成を示 すブロック図である。
第 1 3図は、 複数の可変長符号表の構成を示す図である。
第 1 4図は、 データ符号化部の概略動作を示すフローチャートである。
第 1 5図は、 可変長符号化装置によって生成されるビットストリームのデータ 構造である。
第 1 6図は、 可変長符号化装置によって生成されるビッ トストリ一ムのデータ 構造である。
第 1 7図は、 本発明の第 2実施形態における可変長複号化装置の概略構成を示 すブロック図である。
第 1 8図は、 データ復号化部の概略動作を示すフローチャートである。 第 1 9図は、 第 1及び第 2実施形態の可変長符号化方法又は可変長復号化方法 を格納したフロッピーディスクを用いて、 コンピュータシステムにより実施する 場合の説明図である。
第 2 0図は、 コンテンツ供給システムの全体構成を示すブロック図である。 第 2 1図は、 動画像符号化方法、 動画像複号化方法を用いた携帯電話の例であ る。
第 2 2図は、 携帯電話のブロック図である。
第 2 3図は、 ディジタル放送用システムの例である。
(発明を実施するための最良の形態)
1 . 第 1実施形態
( 1 ) 可変長符号化装置の構成
①本発明に係る可変長符号化装置
図 1は、 本発明の一実施形態としての可変長符号化装置 1の概略構成プロック 図である。 可変長符号化装置 1は、 入力されたデータを可変長符号化し、 ビット ストリームを生成するための装置である。 特に、 この可変長符号化装置 1は、 主 たる符号化方法として算術符号化を採用していることを特徴としている。 なお、 算術符号化とは、 実際に発生したシンボルの生起確率に応じて動的に確率表を更 新することにより符号化効率を高める符号化方法をいう。
可変長符号化装置 1に入力されるデータは、 様々な種類があり得るが、 この実 施形態では画像データが入力されるものとして説明する。 すなわち、 可変長符号 化装置 1は、 情報変換された画像信号をエントロピ一符号化する機能を有してい る。 特に M P E G方式においては、 この可変長符号化装置 1に入力される画像デ ータは、 量子化された D C T係数や動きべク トルなどである。
可変長符号化装置 1は、 主に、 データ符号化部 2と、 ヘッダ符号化器 3とを備 えている。
データ符号化部 2は、 所定単位データごとにへッダ以外のデータを算術符号化 するための装置であり、 算術符号化器 7と、 確率表更新器 8と、 初期化部 9とを 備えている。 なお、 ここでいう所定単位データとは、 画像データの場合はピクチ ャ又はスライスを意味する。 また、 各所定単位データは複数のサブデータから構 成されており、 所定単位データがピクチヤの場合にサブデータはスライス、 マク ロブロック又はブロックであり、 所定単位データがスライスの場合にサブデ一タ はマクロブロック又はブロックである。
算術符号化器 7は、 データが入力されると、 発生データを確率表更新器 8に出 力するとともに、 確率表更新器 8から出力される確率表すなわち符号語に基づい てデータを符号化するための装置である。
確率表更新器 8は、 確率表を更新する機能を有しており、 算術符号化器 7から 出力されてきた発生データの生起確率に応じて確率表を更新しながら、 その確率 表すなわち符号語を算術符号化器 7に出力するための装置である。
初期化部 9は、 確率表更新器 8に対して確率表の初期化指令を出力するための 装置である。
ヘッダ符号化器 3は、 ヘッダデータを固定的な符号化方法で符号化するための 装置である。 固定的な符号化方法とは、 符号化の途中で各符号に対応する符号語 が変化しない方法をいい、 固定長符号化方法や固定の可変長符号表を用いる可変 長符号化方法を含む。 固定的な符号化方法を用いているため、 ヘッダデータは容 易に符号化できる。
一方、 各符号に対応する符号語が変化する符号化方法を適応的な符号化方法と 呼ぶ。 更に適応的な符号化方法には、 単純に符号と符号に対応する符号語の関係 を表すテーブルを切り換える静的な符号化方法と、 符号語自体を逐次更新する動 的符号化がある。 言い換えると、 静的符号化方法とは、 動的な符号化方法 (動的 に符号とそれに対応する符号語の対応関係を変更する算術符号化等の符号化方法 ) ではないことを意味する。 従って、 静的符号化方法よりも動的符号化方法の方 が圧縮率を向上することができる。
可変長符号化装置 1は、 さらに、 確率表符号化器 6を備えている。 確率表符号 化器 6は、 確率表更新器 8から出力されてきた確率表を固定的な符号化方法で符 号化するための装置である。 固定的な符号化方法を用いているため、 確率表は容 易に符号化される。 多重化器 4は、 へッダ符号化器 3から出力されてくるへッダ符号化デ一タと、 算術符号化器 7から出力されてくるヘッダ以外の符号化データと、 確率表符号化 器 6から出力されてくる確率表符号化データとを多重化して符号列 (ビットスト リーム) を生成し、 さらにそれを伝送路に出力するための装置である。
②一般的な画像符号化装置
ここで、 図 2のブロック図を用いて、 一般的な画像符号化装置 1 0 0の構成を 示す。 画像符号化装置 1 0◦は、 主に、 動き推定 Z補償部 (ME ZMC ) 1 0 2 と、 減算器 1 0 3と、 変換符号化部 1 0 4と、 変換復号化部 1 0 5と、 加算器 1 0 6と、 エントロピー符号化部 1 0 7とから構成されている。 なお、 前述のデー タ符号化部 2はエントロピー符号化部 1 0 7に対応している。
動き推定/補償部 1 0 2は、 入力画像データ Piclnを受け、 符号化対象ピクチ ャにおける符号化対象プロックに対する予測プロックのデータを生成する。 動き 推定 補償部 1 0 2は、 動き検出器 (ME ) 1 1 1と、 動き補償器 (MC ) 1 1 2と、 ピクチャメモリ 1 1 3とから構成されている。
動き検出器 1 1 1は、 入力画像 Piclnが入力され、 ピクチャメモリ 1 1 3内の 再構成画像に対する入力画像 Piclnの動きである動きべク トル MVを算出する。 動き検出器 1 1 1は、 動きべク トル MVを、 動き補償器 1 1 2とピクチャメモリ 1 1 3とエントロピー符号化部 1 0 7に出力する。 動き補償器 1 1 2は、 動き検 出器 1 1 1からの動きべク トル MVに基づいて、 ピクチャメモリ 1 1 3に格納さ れている再構成画像から動きに対応する画像データを参照画像として作成し (動 き補償) 、 それを減算器 1 0 3と加算器 1 0 6とに出力する。 ピクチャメモリ 1 1 3は、 再構成画像を貯え、 動き検出器 1 1 1や動き補償器 1 1 2によって再構 成画像を読み出される。 なお、 画面内符号化の場合は動き補償された参照画像の 画素値を 0とし、 減算器 1 0 3および加算器 1 0 6では減算および加算を行わな いで入力されたデータをそのまま出力する。
減算器 1 0 3は、 入力画像 Piclnの対象データと、 動き補償器 1 1 2からの参 照画像との差分値を求め、 その差分値である差分データを変換符号化部 1 0 4に 出力する。
変換符号化部 1 0 4は、 減算器 1 0 3からの差分データにデータ圧縮処理を施 して、 圧縮データを出力する。 変換符号化部 1 0 4は直交変換器 1 1 4と量子化 器 1 1 5とから構成されている。 直交変換器 1 1 4は、 減算器 1 0 3からの差分 データに対して、 直交変換処理の一種である空間領域のデータを周波数領域のデ ータに変換する離散コサイン変換処理 (D C T処理) を施し、 そのデータを量子 化器 1 1 5に出力する。 量子化器 1 1 5は、 直交変換器 1 1 4からの D C Tデー タを所定の量子化ステップでもって量子化して、 量子化係数を変換複号化部 1 0 5とエントロピー符号ィ匕部 1 0 7に出力する。 .
変換複号化部 1 0 5は、 変換符号化部 1 0 4からの出力にデータ伸長処理を施 して伸長データを出力する。 変換複号化部 1 0 5は逆量子化器 1 1 6と逆直交変 換器 1 1 7とから構成されている。 逆量子化器 1 1 6は、 変換符号化部 1 0 4か らの出力を上記量子化ステップでもって逆量子化し、 それを逆直交変換器 1 1 7 に出力する。 逆直交変換器 1 1 7は、 逆量子化器 1 1 6からの出力に対して、 周 波数領域のデータを空間領域のデータに変換する逆離散コサイン変換処理 ( I D C T処理) を施して、 伸長データを予測残差信号として加算器 1 0 6に出力する 。
加算器 1 0 6は、 当該マクロブロックが画面間動き補償予測符号化されている 場合は、 変換復号化部 1 0 5からの予測残差信号と動き補償器 1 1 2からの参照 画像とを加算した画像データを再構成画像としてピクチャメモリ 1 1 3に出力す る。
エントロピー符号化部 1 0 7は、 DCT符号化部 1 0 4からの量子化された D C T後のデータに対してエントロピー符号化を施す。 エントロピー符号化とは、 0 と 1のビット列に対してそのビット列の統計的な性質を利用してより少ないビッ ト列に変換する符号化のことである。
( 2 ) 可変長符号化装置の動作
①データ符号化部及び確率表符号化器の動作
図 3は、 データ符号化部 2及び確率表符号化器 6の概略動作を示すフ口一チヤ ートである。
ステップ S 1では、 初期化部 9が確率表更新器 8に初期化指令を出力し、 確率 表更新器 8は所定の確率表を所定単位データ毎に初期値に設定する。 この初期化 動作において、 初期化部 9及び確率表更新器 8は、 ヘッダ内の初期化情報に基づ いて確率表の初期化を行う。 確率表の初期化情報としては、 所定単位データ全体 の共通データが用いられることがある。 初期化に有効な共通データの例としては 、 例えば、 所定単位データがピクチャの場合は、 ピクチャ符号化タイプ (画面内 符号化ピクチャと、 画面間予測符号化ピクチャ、 双画面間予測符号化ピクチャの 区別) 、 ピクチャの量子化パラメータの初期値などがある。 なお、 初期化にはあ まり関係がない共通データとしては、 ピクチャの符号化順序、 ピクチャの表示順 序、 動きベク トルや画像サイズ等のパラメータがある。 所定単位データがスライ スの場合は、 スライス符号化タイプ (画面内符号化スライスと、 画面間予測符号 化スライス、 双画面間予視 1}符号化スライスの区別) 、 スライスの量子化パラメ一 タの初期値などがある。
ステップ S 2では、 算術符号化器 7と確率表更新器 8とが協働して、 サブデー タを算術符号化する。 より具体的には、 算術符号化器 7は確率表更新器 8から出 力した確率表に基づいて、 サブデータの符号化に用いられる確率を確率表から取 得し、 さらに、 その確率を参照してデータを符号化する。 具体的には所定単位デ 一タはピクチャ又はスライスであり、 サブデータであるマクロブロック又はブロ ックが符号化される。
ステップ S 3では、 発生データにより、 確率表更新器 8で発生データの確率表 を更新する。 この実施形態では、 この更新された確率表が、 次のサブデータを算 術符号化する際に用いられることになる。
ステップ S 4では、 全てのサブデータの符号化が終了したか否かを判断する。 全て終了していないと判断するとステップ S 2に戻り、 前述の動作を繰り返す。 ステップ S 5では、 確率表を符号化するか否かを判定し、 符号化する場合はス テツプ S 6に進み、 符号化しない場合はステップ S 6をスキップする。 算術符号 化器 7は、 その判定結果を識別するための初期値フラグを作成し、 それを符号化 データとともに多重化器 4に出力する。 なお、 初期値として使われた確率表が符 号化されないのは、 例えば、 次に確率表が初期化されるまでのデータ数が十分に 多い (つまり十分に学習するのに必要なデータ数が全体のデータ数に占める割合 が小さく、 そのため学習効率がよい) 場合や、 又は、 初期値として使われた確率 表が学習によって得られる最適な確率表とほとんど一致する場合、 または完全に 一致する場合などである。
ステップ S 6では、 確率表更新器 8の確率表を確率表符号化器 6で符号化する 以上に述べた符号化方法では、 最初のサブデータの符号化を除いて、 符号化し たサブデータの値に基づいて確率表が更新され、 確率を確率表から取得している ため、 圧縮効率が向上する。 特に、 サブデータの符号化に用いられる確率表は、 直前のサブデータの算術符号化により更新された確率表であるため、 リアルタイ ムで符号化ができ、 符号化が高速化する。 しかも画像の空間的又は時間的相関に より十分な圧縮効率が得られる。
なお、 所定単位データの初期値を自らの算術符号化により得られた確率表を用 いて算術符号化してもよレ、。 その場合は、 当該所定単位データと直前の所定単位 データの内容が大きく異なる場合でも、 圧縮効率が高い。
図 4に示すフローチャートは、 図 3に示すフローチャートの変形例であり、 ス テツプ S 6において確率表更新器 8の符号表を確率表符号化器 6で符号化する際 に、 確率表の一部のみを符号化する場合を示している。 この場合は、 符号量を削 減することができ、 さらに取得された確率表のうち生起確率が高い符号化済みデ ータに対応する部分のみを符号化する方法を採用することで、 復号化の際に十分 に正しく複号化できる。 生起確率の低いデータに対応する部分は、 所定の初期値 で初期化する。 ステップ S 7では、 確率表で符号化されていなかった部分を所定 の初期値で初期化する。 すなわち、 確率表の重要な部分だけを符号化した場合は 、 符号化していない部分を所定の初期値で初期化することで、 確率表の符号化が 指示された場合に確率表の全ての確率をそれまでの確率表の値に依らず特定の値 にすることができ、 符号化装置と複号化装置で確率表を一致させることができる
②ヘッダ符号化器の動作
ヘッダ符号化器 3は、 入力されたヘッダデータを符号化し、 ヘッダ符号化デ一 タを多重化器 4に出力する。
③多重化器の動作 多重化器 4は、 算術符号化器 7、 ヘッダ符号化器 3、 確率表符号化器 6から出 力されてくるデータから所定のビットス トリ一ムを生成し、 それを伝送路に出力 する。
図 5は、 画像データのス トリーム構造の一例を示す図である。 図 5に示される ように、 ス トリームは、 ヘッダ等の共通情報領域と G O P (Group Of Picture) 領域から構成されている。 G O P領域は、 ヘッダ等の共通情報領域と複数のピク チヤ (picture ) 領域から構成されている。 ピクチャ領域は、 ヘッダ等の共通情 報領域と複数のスライス (slice) データ領域から構成される。 スライスデータ 領域は、 ヘッダ等の共通情報領域と複数のマクロブロック (macro block) デ一 タ領域から構成される。
また、 ストリームが連続したビットストリームでなく、 細切れのデータの単位 であるパケット等で伝送する場合はへッダ部とヘッダ以外のデータ部を分離して 別に伝送してもよい。 その場合は、 図 5のようにヘッダ部とデータ部が 1つのビ ットス トリームとなることはない。 しかしながら、 パケットの場合は、 ヘッダ部 とデータ部の伝送する順序が連続しなくても、 対応するデータ部に対応するへッ ダ部が別のバケツトで伝送されるだけであり、 1つのビットストリームとなって いなくても、 概念は図 5で説明したビットストリームの場合と同じである。
図 6は、 画像データのス トリーム構造の他の例を示す図である。 このス トリー ム構造は図 5に示したストリーム構造とは基本的な構造は同じである。 そこで、 以下、 異なる点のみを説明する。 このス ト リーム構造は、 G O Pとピクチャはそ れぞれヘッダを有しておらず、 スライスのみがヘッダを有している。 G O Pとピ クチャは、 共通情報としての各種パラメータ (parameter) を先頭に有している。 パラメータはへッダに相当するものであるが、 パラメータが更新されない限りは そのパラメータが後続のピクチャでも有効な点が異なっている。 例えば、 ピクチ ャ .ヘッダに相当するパラメータは、 次にピクチャ ·ヘッダに相当するパラメ一 タが伝送されるまでのピクチャの全てのピクチャ ·ヘッダという意味を有してい る。
図 7は、 前述の所定単位データが画像データのピクチャである場合に多重化器 4から出力されるビットス トリームのデータ構造を示す。 ピクチャは、 一般に、 ヘッダと、 符号化サブデータとしての複数のスライスとから構成されている。 へ ッダは、 1ピクチャ内の符号化データの開始を表すものであり、 各スライスに共 通のデータ (例えば、 ピクチャ符号化タイプ (画面内符号化ピクチャと、 画面間 予測符号化ピクチャの区別) 、 ピクチャの符号化順序もしくは表示順序を示す番 号等のパラメータ) から主に構成されている。
ヘッダ内には初期値フラグが配置されている。 初期値フラグは、 初期値として 用いられた確率表が符号化されたか否かを識別するためのフラグであり、 確率表 が符号化された場合は" 1 " となり、 符号化されていない場合は" 0 " となる。 さらに、 ヘッダ内には、 図 7 ( a ) に示すように、 確率表初期値としての確率 表符号化データが配置されている。 確率表が符号化されなかった場合は、 確率表 符号化データは確率表符号化器 6から多重化器 4には出力されておらず、 その結 果図 7 ( b ) に示すようにビットストリームには確率表符号化データは配置され ていない。
以上に述べたように、 ヘッダ内には、 本来のヘッダを意味しヘッダ符号化器 3 によって符号化される共通データ部分と、 算術符号化器 7によって生成された初 期値フラグと、 確率表符号化器 6により符号化された確率表符号化データとが存 在する。 さらに詳細には、 共通データ部分は先頭側と画像データ側とに分かれ、 その間に初期値フラグと確率表符号化データがその順番で挿入されている。
図 8は、 所定単位データが画像データのスライスである場合に多重化器 4から 出力されるビットストリームのデータ構造を示す。 スライスは、 一般に、 ヘッダ と、 符号化サブデータとしての複数のブロック (又はマクロブロック) と力 ら構 成されている。 ヘッダは、 1スライス内の符号化データの開始を表すものであり 、 各スライスに共通のデータ (開始符号、 量子化スケール等のパラメータ) から 主に構成されている。 さらに、 ヘッダ内には初期値フラグが配置されている。 初 期値フラグは、 初期値として用いられた確率表が符号化されたか否かを識別する ためのフラグであり、 確率表が符号化された場合は" 1 " となり、 符号化されて いない場合は" 0 " となる。
さらに、 ヘッダ内には、 図 8 ( a ) に示すように、 確率表初期値としての確率 表符号化データが配置されている。 確率表が符号化されなかった場合は確率表符 号化器 6からは確率表符号化データは多重化器 4には出力されておらず、 その結 果図 8 ( b ) に示すようにビットストリームには確率表符号化データは配置され ていない。
以上に述べたように、 ヘッダ内には、 本来のヘッダを意味しヘッダ符号化器 3 によって符号化された共通データ部分と、 算術符号化器 7によって生成された初 期値フラグと、 確率表符号化器 6により符号化された確率表符号化データとが存 在する。 さらに詳細には、 共通データ部分は先頭側と画像データ側とに分かれ、 その間に初期値フラグと確率表符号化データがその順番で挿入されている。
なお、 前記実施形態では、 確率表に関する情報として、 確率表自体を符号化し てヘッダ内に埋め込んでいたが、 代わりに、 取得された確率表を示す情報 (例え ば、 計算式、 確率表を示すフラグ、 これらの組合せを示す情報) を符号化してへ ッダ内に埋め込んでもよい。 その場合は、 確率表そのものを符号化するのではな いため、 符号化量を削減できる。
さらに、 取得された確率表を示す情報としては、 例えば、 ヘッダ内の共通デ一 タの一部を利用することができる。 その場合は、 その情報は所定単位データに対 する共通データの一部としての機能も有しているため、 符号化量をさらに削減で きる。 共通データの例としては、 例えば、 所定単位データがピクチャの場合は、 ピクチャ符号化タイプ (画面内符号化ピクチャと、 画面間予測符号化ピクチャ、 双画面間予測符号化ピクチャの区別) 、 ピクチャの量子化パラメータの初期値な どがある。 なお、 初期化にはあまり関係がない共通データとしては、 ピクチャの 符号化順序、 ピクチャの表示順序、 動きベク トルや画像サイズ等のパラメータが ある。 所定単位データがスライスの場合は、 スライス符号化タイプ (画面内符号 化スライスと、 画面間予測符号化スライス、 双画面間予測符号化スライスの区別 ) 、 スライスの量子化パラメータの初期値などがある。 更に、 初期値を必ず更 新するようにして、 つまり、 必ず初期値を送るようにして初期値フラグを省略し ても良い。
( 3 ) 可変長複号化装置の構成
①本発明に係る可変長複号化装置
図 9は、 本発明の一実施形態としての可変長復号化装置 1 1の概略構成ブロッ ク図である。 可変長複号化装置 1 1は、 例えば可変長符号化装置 1によって符号 化されたデータを復号化するための装置である。 画像データを対象としている場 合は、 可変長複号化装置 1 1は、 データをエントロピー復号化し、 変換画像情報 を得る機能を有している。
可変長復号化装置 1 1は、 主に、 データ復号化部 1 2と、 ヘッダ複号化器 1 3 とを備えている。
データ復号化部 1 2は、 ヘッダ以外のデータを所定単位データごとに算術復号 化するための装置であり、 算術復号化器 1 7と、 確率表更新器 1 8と、 初期化部 1 9とを備えている。 なお、 ここでいう所定単位データとは、 画像データの場合 はピクチャ又はスライスを意味する。
算術複号化器 1 7は、 符号化データが入力されると、 発生データを確率表更新 器 1 8に出力するとともに、 データを確率表更新器 1 8から出力される確率表す なわち符号語に基づいて符号化データを複号化するための装置である。
確率表更新器 1 8は、 確率表を更新する機能を有しており、 算術複号化器 1 7 から出力された発生データの生起確率に応じて確率表を更新しながら、 その確率 表すなわち符号語を算術復号化器 1 7に出力するための装置である。
初期化部 1 9は、 確率表の初期化指令を確率表更新器 1 8に対して出力するた めの装置である。
ヘッダ複号化器 1 3は、 ヘッダ符号化データを固定的な復号化方法で復号化す るための装置である。
可変長複号化装置 1 1は、 さらに、 確率表復号化器 1 6を備えている。 確率表 複号化器 1 6は、 確率表符号化データを固定的な複号化方法で復号化するための 装置である。
分離化器 1 4は、 ビットストリームを、 へッダ符号化データと、 へッダ以外の 符号化データと、 確率表符号化データとに分離し出力するための装置である。 ②一般的な画像復号化装置
ここで、 図 1 0のブロック図を用いて、 一般的な画像復号化装置 2 0 0の内部 構成を説明する。 画像複号化装置 2 0 0は、 主に、 予測データ生成部 2 0 2と、 変換復号化部 2 0 4と、 加算器 2 0 6と、 エントロピー復号化部 2 0 7とから構 成されている。 なお、 前述のデータ復号化部 1 2はエントロピー複号化部 2 0 7 に対応している。
エントロピ一複号化部 2 0 7は、 確率表に基づいて、 入力されたス トリームの データに対してエントロピ一複号化を施し、 そのデータを変換複号化部 2 0 4お よび予測データ生成部 2 0 2に出力する。 エントロピー複号化とは、 エントロピ 一符号化の逆方向の処理であり、 この実施形態では算術複号化である。
予測データ生成部 2 0 2は、 動き補償器 2 1 2と、 ピクチャメモリ 2 1 3とを 有している。 ピクチャメモリ 2 1 3には、 加算器 2 0 6から出力画像が参照画像 として出力され、 貯えられている。 動き補償器 2 1 2は、 エントロピー複号化部 2 0 7で復号化された動きベク トル MVに基づいて、 ピクチャメモリ 2 1 3に格 納されている参照画像から動きべク トル MVに対応する画像データを予測画像とし て作成し (動き補償) 、 それを加算器 2 0 6に出力する。 なお、 画面内符号化の 場合は動き補償された参照画像の画素値を 0とし、 加算器 2 0 6では加算を行わ ないで入力されたデータをそのまま出力する。 また、 復号化された動きべク トル はピクチャメモリ 2 1 3に格納される。
変換複号化部 2 0 4は、 エントロピー複号化部 2 0 7からの出力にデータ伸長 処理を施して、 伸長データを出力する。 変換復号化部 2 0 4は逆量子化器 2 1 4 と逆直交変換器 2 1 5とから構成されている。 逆量子化器 2 1 4は、 エントロピ —復号化部 2 0 7からの出力を逆量子化し、 それを逆直交変換器 2 1 5に出力す る。 逆直交変換器 2 1 5は、 逆量子化器 2 1 4からの出力に対して、 周波数領域 のデータを空間領域のデータに変換する逆離散コサイン変換処理 (I D C T処理 ) を施して、 伸長データを加算器 2 0 6に出力する。
加算器 2 0 6は、 変換複号化部 2 0 4からの画像データと動き補償器 2 1 2か らの予測画像とを加算した画像データを出力画像として外部に出力し、 さらにピ クチャメモリ 2 1 3にも出力する。
( 4 ) 可変長複号化装置の動作
①分離化器の動作
分離化器 1 4は、 ビットス トリームを分離し、 へッダ符号化データをへッダ復 号化器 1 3に出力し、 ヘッダ以外の符号化データを算術複号化器 1 7に出力し、 確率表符号化データがある場合はそれを確率表複号化器 1 6に出力する。 なお、 ヘッダ複号化器 1 3は、 復号化されたヘッダ内の初期値フラグを初期化部 1 9に 出力する。
②ヘッダ復号化器の動作
ヘッダ複号化器 1 3は、 分離化器 1 4から出力されたヘッダ符号化データを復 号化し、 ヘッダデータを出力する。
③データ復号化部及び確率表符号化器の動作
図 1 1は、 データ複号化部 1 2及び確率表複号化器 1 6の概略動作を示すフロ —チヤ一トである。
ステップ S 2 1では、 初期化部 1 9が確率表更新器 1 8を初期化し、 所定の確 率表が初期値に設定される。
ステップ S 2 2では、 初期化部 1 9が、 ヘッダ内に埋め込まれていた初期値フ ラグによって、 確率表が符号化されているか否かを判定する。 確率表が符号化さ れていると判定するとステップ S 2 3に移行し、 確率表が符号化されていないと 判定するステップ S 2 3をスキップしてステップ S 2 4に移行する。
ステップ S 2 3では、 確率表更新器 1 8が、 確率表復号化器 1 6から出力され てきた確率表で、 確率表を更新する。 確率表復号化器 1 6に入力される確率表符 号化データは、 確率表の全ての場合もあれば、 確率表の一部のみの場合もある。 確率表の一部のみが符号化されている場合でも、 取得された確率表のうち生起確 率が高い符号化済みデータに対応する部分が符号化されていれば、 後述する復号 化作業において正しく復号化できる。 なお、 符号表の一部のみが符号化されてい た場合には、 符号化されていない確率表はステップ S 2 1と同じ値で初期化する なお、 確率表そのものではなく確率表を示す情報を符号化している場合は、 最 初にその情報を複号化し、 次に確率表更新器 1 8がその情報の示す確率表を選択 する。
ステップ S 2 4では、 算術復号化器 1 7と確率表更新器 1 8とが協働して、 サ ブデータを算術複号化する。 具体的には、 算術復号化器 1 7は、 確率表更新器 1 8からの確率表に基づいて符号化サブデータを複号化して、 データを出力する。 所定単位データが例えばピクチャである場合は、 スライスが復号化される。 ステ ップ S 2 6では、 算術復号化器 1 7の発生データを確率表更新器 1 8に出力し、 確率表更新器 1 8は発生データにより確率表を書き換える。 この更新された確率 表は、 次のサブデータをステップ S 2 4で復号ィ匕する際に利用される。
ステップ S 2 5では、 全てのサブデータの複号化が終了したか否かを判断する 。 全て終了していないと判断するとステップ S 2 4に戻り、 前述の動作を繰り返 す。
( 5 ) 上記符号化方法及び複号化方法の効果
①前述の符号化及び復号化方法では、 各サブデータは算術符号化により取得さ れた確率表に基づいて符号化されているため、 圧縮効率が向上している。 言い換 えると、 この符号化及び複号化方法では、 全体のデータ数が小さくそのため従来 であれば学習によって最適な符号化が得られるまでの符号化済みのデータ数の割 合を無視できないようなデータであっても、 高い学習効率によって圧縮効率を高 めることができる。
また、 初期化された確率表は符号化され、 符号化された所定単位データのへッ ダ内に配置されているため、 複号化の際にはその確率表を初期値として、 符号化 された所定単位データを正しく復号化することができる。
②前述の符号化及び復号化方法では、 ピクチャ又はスライス単位で確率表を符 号化しているため、 確率表を符号化する頻度が適切である。 第 1に、 伝送路誤り で学習すべき符号化データの一部が欠落し、 符号化時と同じ確率表が複号化時に 再現できなくなつた場合でも、 高頻度で符号化された確率表を復号化することで 数秒以上画像が再生不可能となる状態が生じることがない。 これがストリームや G O P単位である場合は、 確率表の符号化の頻度が低く、 学習すべき符号化デ一 タの一部が伝送路で欠落し確率表が再現できない場合には数秒以上画像が再生不 可能となる状態が生じてしまう。 第 2に、 確率表のデータ量の冗長が大きくなる こともない。 これがブロック (又はマクロブロック) 単位である場合は、 初期化 のデータの冗長が大きくなりすぎる。
③前述の符号化及び復号化方法では、 画像データの本体は算術符号化によって 圧縮効率が高くなつている。 その一方、 共通データであるヘッダは固定的な符号 化方法で簡単にかつ静的に符号化されている。 より詳細には、 ヘッダのうち、 本 来のヘッダである部分は固定的な符号化方法で符号化され、 挿入された確率表初 期値も固定的な符号化方法で符号化されている。 もともとへッダは画像データの 本体に比べて圧縮効果が低いため、 固定的な符号化方法を使用しても全体の圧縮 効率の点からは特に大きな問題にはならない。
2 . 第 2実施形態
( 1 ) 可変長符号化装置の構成
図 1 2は、 本発明の一実施形態としての可変長符号化装置 2 1の概略構成プロ ック図である。 可変長符号化装置 2 1は、 入力されたデータを可変長符号化し、 ビットス トリームを生成するための装置である。 特に、 この可変長符号化装置 2 1は、 主たる符号化方法として複数の可変長符号表を切り換えることを特徴とし ている。 可変長符号化の代表例としては、 ハフマン符号化がある。 以下、 説明で はハフマン符号化を例として説明する。
可変長符号化装置 2 1に入力されるデータは、 様々な種類があり得るが、 この 実施形態では画像データが入力されるものとして説明する。 すなわち、 可変長符 号化装置 2 1は、 情報変換された画像信号をエントロピー符号化する機能を有し ている。 特に M P E G方式においては、 この可変長符号化装置 2 1に入力される 画像データは、 量子化された D C T係数や動きべク トルなどである。
可変長符号化装置 2 1は、 主に、 データ符号化部 2 2と、 ヘッダ符号化器 2 3 とを備えている。
データ符号化部 2 2は、 ヘッダ以外のデータを所定単位データごとにハフマン 符号化するための装置であり、 可変長符号化器 2 7と、 符号表選択部 2 8と、 初 期化部 2 9とを備えている。 なお、 各所定単位データは複数のサブデータから構 成されており、 所定単位データがピクチャの場合にサブデータはスライス、 マク ロブロック又はブロックであり、 所定単位データがスライスの場合にサブデータ はマクロブロック又はブロックである。 また、 データ符号化部 2 2は、 前述の図 2で示した一般的な画像符号化装置 1 0 0においては、 ェントロピー符号化部 1 0 7に対応している。
可変長符号化器 2 7は、 データが入力されると、 発生データを符号表選択部 2 8に出力するとともに、 符号表選択部 2 8によって切り換えられた可変長符号表 3 0すなわち符号語に基づいてデータを符号化するための装置である。
符号表選択部 2 8は、 可変長符号化器 2 7から出力された発生データの生起確 率に応じて、 スィツチ 2 5に対して符号表選択信号を出力するための装置である スィツチ 2 5は、 符号表選択部 2 8から出力される符号表選択信号に従って、 可変長符号化器 2 7が符号化の際に使用する可変長符号表 3 0を切り換えるため の装置である。
初期化部 2 9は、 符号表選択部 2 8に対して符号表選択信号の初期化指令を出 力するための装置である。
図 1 3に、 可変長符号表 3 0の具体例を示す。 各可変長符号表 3 0 a〜 3 0 c は、 データとそれに対応するビット列との組み合わせから構成されている。 これ ら可変長符号表 3 0 a〜 3 0 cは、 白地部分 (符号表 3 0 aにおいてはデータ 1 以降、 符号表 3 0 bにおいてはデータ 2以降、 符号表 3 0 cにおいてはデータ 4 以降) に、 共通のビット列が採用されている。 また、 網掛け部分 (符号表 3 0 a においてはデータ 0、 符号表 3 0 bにおいてはデータ 0, 1、 符号表 3 0 cにお いてはデータ 0〜3 ) には異なるビット列が採用されている。 網掛け部分のデー タは生起確率が比較的高いものであり、 生起確率が高いデータを 1ビットで処理 できるならば符号表 3 0 aが選択され、 生起確率が高いデータを 2ビットで処理 できるならば符号表 3 0 bが選択され、 生起確率が高い符号を 3ビットで処理で きるならば符号表 3 0 cが選択される。 それに対して、 白地部分の符号は生起確 率が比較的低いものである。 このように、 生起確率の比較的低いデータに対して 共通のビット列を配置することで、 異なる可変長符号表を少ないデータ量で用意 することができてメモリを削減でき、 さらに符号化作業も簡単になる。
ヘッダ符号化器 2 3は、 ヘッダデータを固定的な符号化方法で符号化するため の装置である。
可変長符号化装置 2 1は、 さらに、 選択信号符号化器 2 6を備えている。 選択 信号符号化器 2 6は、 符号表選択部 2 8から出力されてきた符号表選択信号を固 定的な符号化方法で符号化するための装置である。 多重化器 2 4は、 ヘッダ符号化器 2 3から出力されてくるヘッダ符号化データ と、 可変長符号化器 2 7から出力されてくるヘッダ以外の符号化データと、 選択 信号符号化器 2 6から出力されてくる選択信号符号化データとを多重化して、 符 号列 (ビッ トストリーム) を生成し、 さらにそれを伝送路に出力するための装置 である。
( 2 ) 可変長符号化装置の動作
①データ符号化部及び選択信号符号化器の動作
図 1 4は、 データ符号化部 2 2及び選択信号符号化器 2 6の概略動作を示すフ ローチャートである。
ステップ S 3 1では、 初期化部 2 9が符号表選択部 2 8に初期化指令を出力し 、 符号表選択部 2 8が所定の選択表符号信号をスィッチ 2 5に出力する。 この結 果、 スィッチ 2 5は所定の可変長符号表 3 0を所定単位データ符号化の初期値と して選択する。 この初期化動作において、 初期化部 2 9及び符号表選択部 2 8は 、 ヘッダ内の初期化情報に基づいて所定の可変長符号表 3 0を選択する。 なお、 図 1 2において、 ヘッダデータが初期化部 2 9及ぴ符号表選択部 2 8に送られる 線はは省略されている。
ステップ S 3 2では、 可変長符号化器 2 7と符号表選択部 2 8とが協働して、 サブデータをハフマン符号化する。 より具体的には、 符号表選択部 2 8はこれま での発生データにより符号表選択信号をスィツチ 2 5に出力する。 スィツチ 2 5 は、 符号表選択信号に基づいて可変長符号表 3 0を切り換え、 可変長符号化器 2 7は選択された可変長符号表 3 0の符号語によってサブデータを符号化する。 ま た、 各所定単位データは複数のサブデータから構成されており、 具体的には所定 単位データがピクチャである場合はスライス、 マクロプロック又はプロックが符 号化され、 所定単位データがスライスである場合はマクロプロック又はブロック が符号化される。
ステップ S 3 3では、 サブデータを符号表選択部 2 8に出力し、 符号表選択部 2 8はサブデータの発生頻度を更新して次にスィツチ 2 5を切り換える際に、 ど の符号表を選択すべきかの指標とする。 この実施形態では、 この符号表が次のサ プデータを可変長符号化する際に用いられることになる。 ステップ S 3 4では、 全てのサブデータの符号化が終了したか否かを判断する 。 全て終了していないと判断するとステップ S 3 2に戻り、 前述の動作を繰り返 す。
ステップ S 3 5では、 初期値として用いた可変長符号表 3 0を示す情報 (すな わち符号表選択信号) を符号化するか否かが判定される。 符号化する場合はステ ップ S 3 6に進み、 符号化しない場合はステップ S 3 6をスキップする。 なお、 初期値として使われた可変長符号表が符号化されないのは、 例えば、 次に可変長 符号表が初期化されるまでのデータ数が十分に多い (つまり十分に学習するのに 必要なデータ数が全体のデータ数に占める割合が小さく、 そのため学習効率がよ レ、) 場合や、 又は、 初期値として使われた可変長符号表が学習によって選択され る最適な符号表と一致する場合などである。 可変長符号化器 2 7は、 その判定結 果を識別するための初期値フラグを作成し、 それを符号化データとともに多重化 器 2 4に出力する。
ステップ S 3 6では、 符号表選択部 2 8が当該可変長符号表を示す符号表選択 信号を選択信号符号化器 2 6に出力する。
以上に述べた符号化方法では、 最初のサブデータの符号化を除いて、 符号化し たサブデータの値に基づいて可変長符号表が選択されているため、 サブデータの 圧縮効率が向上する。 特に、 サブデータの符号化に用いられる可変長符号表は、 直前のサブデータのハフマン符号化により選択された可変長符号表であるため、 リアルタイムで符号化ができ、 符号化が高速化になり、 しかも画像の空間的又は 時間的相関により十分な圧縮効率が得られる。
②ヘッダ符号化器の動作
ヘッダ符号化器 2 3は、 入力されたヘッダデータを符号化し、 それを多重化器 2 4に出力する。
③多重化器の動作
多重化器 2 4は、 可変長符号化器 2 7、 ヘッダ符号化器 2 3及び選択信号符号 化器 2 6から出力されてくるデータから所定のビッ トストリームを生成し、 伝送 路に出力する
図 1 5は、 前述の所定単位データが画像データのピクチャである場合に多重化 器 2 4から出力されるビットストリームのデータ構造を示す。 ピクチャは、 一般 に、 ヘッダと、 符号化サブデータとしての複数のスライスとから構成されている 。 ヘッダは、 1ピクチャ内の符号化データの開始を表すものであり、 各スライス に共通のデータ (例えば、 ピクチャ符号化タイプ (画面内符号化ピクチャと、 画 面間予測符号化ピクチャ、 双画面間予測符号化ピクチャの区別) 、 ピクチャの量 子化パラメータの初期値など) がある。 なお、 初期化にはあまり関係がない共通 データとしては、 ピクチャの符号化順序、 ピクチャの表示順序動きベク トルや画 像サイズ等のパラメータがある。
ヘッダ内には初期値フラグが配置されている。 初期値フラグは、 可変長符号表 を示す情報が符号化されたか否かを識別するためのフラグであり、 可変長符号表 を示す情報が符号化された場合は" 1 " となり、 符号化されていない場合は" 0
" となる。
さらに、 ヘッダ内には、 図 1 5 ( a ) に示すように、 使用する可変長符号表を 示す選択信号符号化データ (例えば、 計算式、 確率表を示すフラグ、 これらの組 合せを示す情報) が配置されている。 なお、 可変長符号表を示す情報が符号化さ れなかった場合は、 選択信号符号化データは選択信号符号化器 2 6から多重化器 2 4には出力されておらず、 その結果図 1 5 ( b ) に示すようにビットストリー ムには選択信号符号化データは配置されていない。
以上に述べたように、 ヘッダ内には、 本来のヘッダを意味しヘッダ符号化器 2 3によって符号化された共通データ部分と、 可変長符号化器 2 7によって生成さ れた初期値フラグと、 選択信号符号化器 2 6により符号化された選択信号符号化 データとが存在する。 さらに詳細には、 共通データ部分は先頭側と画像データ側 とに分かれ、 その間に初期値フラグと選択信号符号化データがその順番で挿入さ れている。
図 1 6は、 所定単位データが画像データのスライスである場合に多重化器 2 4 から出力されるビットストリームデータ構造を示す。 スライスは、 一般に、 へッ ダと、 複数のブロック (又はマクロブロック) とから構成されている。 ヘッダは 、 1スライス内の符号化データの開始を表すものであり、 各スライスに共通のデ —タ (開始符号、 量子化スケール等のパラメータ) から主に構成されている。 共通のデータとしては、 スライス符号化タイプ (画面内符号化スライスと、 画 面間予測符号化スライス、 双画面間予測符号化スライスの区別) 、 スライスの量 子化パラメータの初期値などがある。
さらに、 ヘッダ内には初期値フラグが配置されている。 初期値フラグは、 可変 長符号表を示す情報が符号化されたか否かを識別するためのフラグであり、 情報 が符号化された場合は" 1 " となり、 符号化されていない場合は" 0 " となる。 さらに、 ヘッダ内には、 図 1 6 ( a ) に示すように、 使用する可変長符号表を 示す選択信号符号化データが配置されている。 なお、 可変長符号表が符号化され なかった場合は選択信号符号化器 2 6からは選択信号符号化データは多重化器 2 4には出力されておらず、 その結果図 1 6 ( b ) に示すようにビットストストリ ームには選択信号符号化データは配置されていない。
以上に述べたように、 ヘッダ内には、 本来のヘッダを意味しヘッダ符号化器 2 3によって符号化された共通データ部分と、 可変長符号化器 2 7によって生成さ れた初期値フラグと、 選択信号符号化器 2 6により符号化された選択信号符号化 データとが存在する。 さらに詳細には、 共通データ部分は先頭側と画像データ側 とに分かれ、 その間に初期値フラグと選択信号符号化データがその順番で挿入さ れている。
なお、 本実施形態では、 可変長符号表自体を符号化してヘッダ内に埋め込むの ではなく、 使用する可変長符号表を示す選択信号符号化データをヘッダ内に埋め 込んでいる。 したがって、 可変長符号表そのものを符号化するのではないため、 符号化量を削減できる。
さらに、 使用する可変長符号表を示す選択信号符号化データとしては、 例えば 、 ヘッダ内の共通データの一部を利用することができる。 その場合は、 そのデー タは所定単位デ一タに対する共通データの一部としての機能も有しているため、 符号化量をさらに削減できる。 共通データの例としては、 例えば、 所定単位デー タがピクチャの場合は、 ピクチャ符号化タイプ (画面内符号化ピクチャと、 画面 間予測符号化ピクチャ、 双画面間予測符号化ピクチャの区別) 、 ピクチャの量子 化パラメータの初期値などがある。 なお、 初期化にはあまり関係がない共通デー タとしては、 ピクチャの符号化順序、 ピクチャの表示順序、 動きベク トルや画像 サイズ等のパラメータがある。 所定単位データがスライスの場合は、 スライス符 号化タイプ (画面内符号化スライスと、 画面間予測符号化スライス、 双画面間予 測符号化スライスの区別) 、 スライスの量子化パラメータの初期値などがある。 更に、 初期値を必ず更新するようにして、 初期値フラグを省略しても良い。 . ( 3 ) 可変長複号化装置の構成
図 1 7は、 本発明の一実施形態としての可変長複号化装置 3 1の概略構成プロ ック図である。 可変長復号化装置 3 1は、 例えば可変長符号化装置 2 1によって 符号化されたデータを復号化するための装置である。 画像データを対象としてい る場合は、 可変長複号化装置 3 1は、 データをエントロピー復号化し、 変換画像 情報を得る機能を有している。
可変長復号化装置 3 1は、 主に、 データ複号化部 3 2と、 ヘッダ復号化器 3 3 とを備えている。
データ復号化部 3 2は、 ヘッダ以外のデータを所定単位データごとにハフマン 復号化するための装置であり、 可変長複号化器 3 7と、 選択信号複号化器 3 6と を備えている。 なお、 ここでいう所定単位データとは、 画像データの場合はピク チヤ又はスライスを意味する。 また、 データ復号化部 3 2は、 前述の図 1 0で示 した一般的な画像復号化装置 2 0 0においては、 エントロピー復号化部 2 0 7に 対応している。
可変長復号化器 3 7は、 スィッチ 3 5によって、 切り換えられた可変長符号表 3 0の符号語に基づいて、 符号化データを復号化するための装置である。
選択信号復号化器 3 6は、 分離化器 3 4から出力される選択信号符号化データ を固定的な複号化方法で復号化し、 それをスィッチ 3 5に出力するための装置で ある。
スィツチ 3 5は、 選択信号複号化器 3 6から出力される符号表選択信号に従つ て、 可変長複号化器 3 7が複号化の際に使用する可変長符号表 3 0を切り換える ための装置である。
初期化部 3 9は、 初期化指令を選択信号複号化器 3 6に対して出力するための 装置である。
ヘッダ復号化器 3 3は、 ヘッダ符号化データを固定的な複号化方法で複号化す るための装置である
分離化器 3 4は、 ビッ トス トリームを、 へッダ符号化データと、 へッダ以外の 符号化データと、 選択信号符号化データとに分離し出力するための装置である。
( 4 ) 可変長複号化装置の動作
①分離化器の動作
分離化器 3 4は、 ビッ トス トリームを分離し、 ヘッダ符号化データをヘッダ復 号化器 3 3に出力し、 ヘッダ以外の符号化データを可変長復号化器 3 7に出力し 、 選択信号符号化データがある場合はそれを選択信号復号化器 3 6に出力する。 なお、 ヘッダ複号化器 3 3は、 ヘッダ内の初期値フラグについては初期化部 3 9 に出力する。
②ヘッダ複号化器の動作
ヘッダ復号化器 3 3は、 分離化器 3 4から出力されたヘッダ符号化データを復 号化し、 ヘッダデータを出力する。
③データ復号化部の動作
図 1 8は、 データ復号化部 3 2の概略動作を示すフローチャートである。
ステップ S 5 1では、 初期化部 3 9が選択信号復号化器 3 6に初期化指令を出 力し、 選択信号複号化器 3 6が所定の選択表符号信号をスィッチ 3 5に出力する 。 この結果、 スィッチ 3 5が所定の可変長符号表 3 0を所定単位データの復号化 の初期値として選択する。
ステップ S 5 2では、 可変長復号化器 3 7力 ヘッダ内に埋め込まれていた初 期値フラグによって、 使用する可変長符号表を示す情報が符号化されているか否 かを判断する。 可変長符号表を示す情報が符号化されていると判断するとステツ プ S 5 3に移行し、 符号化されていないと判断するステップ S 5 3をスキップし てステップ S 5 4に移行する。
ステップ S 5 3では、 スィッチ 3 5力 選択信号複号化器 3 6から出力されて きた選択信号に基づいて、 それが示す可変長符号表 3 0を選択する。
ステップ S 5 4では、 可変長復号化器 3 7がサブデータをハフマン復号化する 。 より具体的には、 可変長復号化器 3 7は、 スィッチ 3 5によって選択された可 変長符号表 3 0に基づいて、 符号化サブデータを復号化して、 データを出力する 。 所定単位データが例えばピクチャである場合は、 スライスが復号化される。 ス テツプ S 5 6では、 可変長複号化器 3 7は発生データによりスィツチ 3 5を介し て可変長符号表 3 0を選択する。 この選択された可変長符号表 3 0は、 次のサブ データをステップ S 5 4で復号化する際に利用される。
ステップ S 5 5では、 全てのサブデータの復号化が終了したか否かを判断する 。 全て終了していないと判断するとステップ S 5 2に戻り、 前述の動作を繰り返 す。
( 5 ) 上記符号化方法及び復号化方法の効果
①前述の符号化及び復号化方法では、 各サブデータはハフマン符号化により取 得された可変長符号表に基づいて符号化されているため、 圧縮効率が向上してい る。 言い換えると、 この符号化及び複号化方法では、 全体のデータ数が小さくそ のため従来であれば学習によって最適な符号化が得られるまでの符号化済みのデ 一タ数の割合を無視できないようなデータであっても、 高レ、学習効率によって圧 縮効率を高めることができる。
また、 初期化された可変長符号表を示す情報は符号化され、 符号化された所定 単位データのへッダ内に配置されているため、 復号化の際にはその情報が示す可 変長符号表を初期値として、 符号化された所定単位データを正しく復号化するこ とができる。
②前述の符号化及び複号化方法では、 ピクチャ又はスライス単位で可変長符号 表を符号化しているため、 可変長符号表を示す情報を符号化する頻度が適切であ る。 第 1に、 伝送路誤りで選択信号符号化データが破壊された場合でも数秒以上 画像が再生不可能となる状態が生じることがない。 これがストリームゃ G O P単 位である場合は、 可変長符号表を示す情報の符号化の頻度が低く、 伝送路で選択 信号符号化データ破壊された場合には数秒以上画像が再生不可能となる状態が生 じてしまう。 第 2に、 可変長符号表を示す情報のデータ量の冗長が大きくなるこ ともない。 これがブロック (又はマクロブロック) 単位である場合は、 初期化の データの冗長が大きくなりすぎる。
③前述の符号化及び複号化方法では、 画像データの本体は複数の可変長符号表 を切り換えるハフマン符号化によって圧縮効率が高くなつている。 その一方、 共 通データであるヘッダは固定的な符号化方法で符号化されている。 より詳細には 、 ヘッダのうち、 本来のヘッダである部分は固定的な符号化方法で符号化され、 挿入された可変長符号表を示す情報も固定的な符号化方法で符号化されている。 もともとヘッダは画像データの本体に比べて圧縮効果が低いため、 固定的な符号 化方法を使用しても全体の圧縮効率の点からは特に大きな問題にはならない。
3 . 記録媒体の実施の形態
さらに、 上記各実施の形態で示した可変長符号化方法または可変長複号化方法 の構成を実現するためのプログラムを、 フロッピーディスク等の記憶媒体に記録 するようにすることにより、 上記各実施の形態で示した処理を、 独立したコンビ ユータシステムにおいて簡単に実施することが可能となる。
図 1 9は、 上記第実施形態の可変長符号化方法または可変長複号化方法を格納 したフロッピーディスクを用いて、 コンピュータシステムにより実施する場合の 説明図である。
図 1 9 ( b ) は、 フロッピーディスクの正面からみた外観、 断面構造、 及びフ ロッピーディスクを示し、 図 1 9 ( a ) は、 記録媒体本体であるフロッピーディ スクの物理フォーマツトの例を示している。 フロッピーディスク F Dはケース F 内に内蔵され、 該ディスクの表面には、 同心円状に外周からは内周に向かって複 数のトラック T rが形成され、 各トラックは角度方向に 1 6のセクタ S eに分割 されている。 従って、 上記プログラムを格納したフロッピーディスクでは、 上記 フロッピーディスク F D上に割り当てられた領域に、 上記プログラムとしての可 変長符号化方法または可変長複号化方法が記録されている。
また、 図 1 9 ( c ) は、 フロッピ一ディスク F Dに上記プログラムの記録再生 を行うための構成を示す。 上記プログラムをフロッピーディスク F Dに記録する 場合は、 コンピュータシステム C sから上記プログラムとしての可変長符号化方 法または可変長復号化方法をフロッピ一ディスク ドライブを介して書き込む。 ま た、 フロッピーディスク内のプログラムにより上記可変長符号化方法または可変 長複号化方法をコンピュータシステム中に構築する場合は、 フロッピーディスク ドライブによりプログラムをフロッピ一ディスクから読み出し、 コンピュータシ ステムに転送する。 なお、 上記説明では、 記録媒体としてフロッピ一ディスクを用いて説明を行つ たが、 光ディスクを用いても同様に行うことができる。 また、 記録媒体はこれに 限らず、 CD— ROM、 メモリカード、 ROMカセット等、 プログラムを記録で きるものであれば同様に実施することができる。
4. 本願発明の応用例とそれを用いたシステム
さらにここで、 上記実施の形態で示した動画像符号化方法や動画像複号化方法 の応用例とそれを用いたシステムを説明する。
図 20は、 コンテンツ配信サービスを実現するコンテンツ供給システム exl 00の全体構成を示すプロック図である。 通信サービスの提供エリアを所望の大 きさに分割し、 各セル内にそれぞれ固定無線局である基地局 exl 07〜exl 1 0が設置されている。
このコンテンツ供給システム exl 00は、 例えば、 インターネッ ト exl 01 にィンターネットサービスプロバイダ exl 02および電話網 exl 04、 および 基地局 e x l 0 7〜e x l l 0を介して、 コンピュータ ex l 1 1、 PDA (personal digital assistant ex丄 丄 2、 カメフ exl 丄 3、 携帯 ¾古 ex丄 1 4、 カメラ付きの携帯電話 e X 1 1 5などの各機器が接続される。
しかし、 コンテンツ供給システム exl 00は図 1 7のような組合せに限定さ れず、 いずれかを組み合わせて接続するようにしてもよい。 また、 固定無線局で ある基地局 exl 07〜exl 10を介さずに、 各機器が電話網 exl 04に直接接 続されてもよレヽ。
カメラ exl 1 3はデジタルビデオカメラ等の動画撮影が可能な機器である。 また、 携帯電話は、 PDC (Personal Digital Communications) 方式、 C DM A (Code Division Multiple Access) 方式、 W— CDMA (Wideband-Code Division Multiple Access) 方式、 若しくは GSM (Global System for Mobile Communications) 方式の携帯電話機、 または P H S (Personal Handyphone System) 等であり、 いずれでも構わない。
また、 ストリーミングサーバ exl 03は、 カメラ exl 1 3から基地局 ex 1 0 9、 電話網 exl 04を通じて接続されており、 カメラ exl 1 3を用いてユーザ が送信する符号化処理されたデータに基づいたライブ配信等が可能になる。 撮影 したデータの符号化処理はカメラ exl 1 3で行っても、 データの送信処理をす るサーバ等で行ってもよい。 また、 カメラ 1 1 6で撮影した動画データはコンビ ユータ exl 1 1を介してストリーミングサーバ exl 0 3に送信されてもよレヽ。 カメラ exl 1 6はデジタルカメラ等の静止画、 動画が撮影可能な機器である。 この場合、 動画データの符号化はカメラ exl 1 6で行ってもコンピュータ exl 1 1で行ってもどちらでもよレ、。 また、 符号化処理はコンピュータ exl 1 1や カメラ exl 1 6が有する L S I exl 1 7において処理することになる。 なお、 画像符号化 ·複号化用のソフトウエアをコンピュータ exl 1 1等で読み取り可 能な記録媒体である何らかの蓄積メディア (CD_ROM、 フレキシブルデイス ク、 ハードディスクなど) に組み込んでもよい。 さらに、 カメラ付きの携帯電話 exl 1 5で動画データを送信してもよい。 このときの動画データは携帯電話 ex 1 1 5が有する L S Iで符号化処理されたデータである。
このコンテンツ供給システム exl 00では、 ユーザがカメラ exl 1 3、 カメ ラ exl 1 6等で撮影しているコンテンツ (例えば、 音楽ライブを撮影した映像 等) を上記実施の形態同様に符号化処理してストリーミングサーバ exl 0 3に 送信する一方で、 ストリーミングサーバ exl 0 3は要求のあったクライアント に対して上記コンテンツデータをストリーム配信する。 クライアントとしては、 上記符号化処理されたデータを複号化することが可能な、 コンピュータ exl l 1、 PDAexl 1 2、 カメラ ex 1 1 3、 携帯電話 ex 1 1 4等がある。 このよう にすることでコンテンツ供給システム exl 0 0は、 符号化されたデータをクラ イアントにおいて受信して再生することができ、 さらにクライアントにおいてリ アルタイムで受信して複号化し、 再生することにより、 個人放送をも実現可能に なるシステムである。
このシステムを構成する各機器の符号化、 復号化には上記各実施の形態で示し た動画像符号化装置あるいは動画像復号化装置を用いるようにすればよい。
その一例として携帯電話について説明する。
図 2 1は、 上記実施の形態で説明した動画像符号化方法と動画像復号化方法を 用いた携帯電話 exl 1 5を示す図である。 携帯電話 exl 1 5は、 基地局 ex 1 1 0との間で電波を送受信するためのアンテナ ex2 0 1、 CCDカメラ等の映像、 静止画を撮ることが可能なカメラ部 ex203、 カメラ部 ex203で撮影した映 像、 アンテナ ex20 1で受信した映像等が復号化されたデータを表示する液晶 ディスプレイ等の表示部 ex202、 操作キー e X 204群から構成される本体 部、 音声出力をするためのスピーカ等の音声出力部 ex208、 音声入力をする ためのマイク等の音声入力部 ex205、 撮影した動画もしくは静止画のデータ、 受信したメールのデータ、 動画のデータもしくは静止画のデータ等、 符号化され たデータまたは復号化されたデータを保存するための記録メディア ex207、 携帯電話 exl 1 5に記録メディア ex 207を装着可能とするためのスロット部 ex206を有している。 記録メディア ex207は SDカード等のプラスチック ケース内に電気的に書換えや消去が可能な不揮発性メモリである EE PROM (Electrically Erasable and Programmable Read Only Memory) の一種!:、ある フラッシュメモリ素子を格納したものである。
さらに、 携帯電話 exl 1 5について図 22を用いて説明する。 携帯電話 exl 1 5は表示部 ex 202及び操作キー e x 204を備えた本体部の各部を統括的 に制御するようになされた主制御部 ex31 1に対して、 電源回路部 ex310、 操作入力制御部 ex304、 画像符号化部 ex31 2、 カメラインターフエ一ス部 ex303、 LCD (Liquid Crystal Display) 制御部 ex 302、 画像復号化部 ex 309、 多重分離部 ex 308、 記録再生部 ex 307、 変復調回路部 ex 306 及び音声処理部 ex 305が同期バス ex 31 3を介して互いに接続されている。 電源回路部 ex 3 1 0は、 ユーザの操作により終話及び電源キーがオン状態に されると、 バッテリパックから各部に対して電力を供給することによりカメラ付 ディジタル携帯電話 ex 1 15を動作可能な状態に起動する。
携帯電話 exl 1 5は、 CPU、 ROM及び RAM等でなる主制御部 ex 3 1 1 の制御に基づいて、 音声通話モード時に音声入力部 ex205で集音した音声信 号を音声処理部 ex305によってディジタル音声データに変換し、 これを変復 調回路部 ex 306でスぺク トラム拡散処理し、 送受信回路部 ex30 1でディジ タルアナログ変換処理及び周波数変換処理を施した後にアンテナ ex201を介 して送信する。 また携帯電話機 exl 1 5は、 音声通話モード時にアンテナ ex2 01で受信した受信信号を増幅して周波数変換処理及びアナログディジタル変換 処理を施し、 変復調回路部 ex 3 0 6でスぺク トラム逆拡散処理し、 音声処理部 ex 3 0 5によってアナログ音声信号に変換した後、 これを音声出力部 e x 2 0 8 を介して出力する。
さらに、 データ通信モード時に電子メールを送信する場合、 本体部の操作キー e X 2 0 4の操作によって入力された電子メールのテキストデータは操作入力制 御部 ex 3 0 4を介して主制御部 ex 3 1 1に送出される。 主制御部 ex 3 1 1は、 テキストデータを変復調回路部 ex 3 0 6でスぺク トラム拡散処理し、 送受信回 路部 ex 3 0 1でディジタルアナログ変換処理及び周波数変換処理を施した後に ァンテナ ex 2 0 1を介して基地局 ex 1 1 0へ送信する。
データ通信モード時に画像データを送信する場合、 カメラ部 ex 2 0 3で撮像 された画像データをカメラインターフヱース部 ex 3 0 3を介して画像符号化部 ex 3 1 2に供給する。 また、 画像データを送信しない場合には、 カメラ部 ex 2 0 3で撮像した画像データをカメラインターフェース部 ex 3 0 3及び L C D制 御部 ex 3 0 2を介して表示部 ex 2 0 2に直接表示することも可能である。
画像符号化部 ex 3 1 2は、 本願発明で説明した画像符号化装置を備えた構成 であり、 カメラ部 ex 2 0 3から供給された画像データを上記実施の形態で示し た画像符号化装置に用いた符号化方法によつて圧縮符号化することにより符号化 画像データに変換し、 これを多重分離部 ex 3 0 8に送出する。 また、 このとき 同時に携帯電話機 ex 1 1 5は、 カメラ部 ex 2 0 3で撮像中に音声入力部 ex 2 0 5で集音した音声を音声処理部 ex 3 0 5を介してディジタルの音声データとし て多重分離部 ex 3 0 8に送出する。
多重分離部 ex 3 0 8は、 画像符号化部 ex 3 1 2から供給された符号化画像デ ータと音声処理部 ex 3 0 5から供給された音声データとを所定の方式で多重化 し、 その結果得られる多重化データを変復調回路部 ex 3 0 6でスぺク トラム拡 散処理し、 送受信回路部 ex 3 0 1でディジタルアナログ変換処理及び周波数変 換処理を施した後にアンテナ ex 2 0 1を介して送信する。
データ通信モ一ド時にホームページ等にリンクされた動画像ファイルのデータ を受信する場合、 アンテナ ex 2 0 1を介して基地局 ex l 1 0から受信した受信 信号を変復調回路部 ex 3 0 6でスぺク トラム逆拡散処理し、 その結果得られる 多重化データを多重分離部 ex 3 0 8に送出する。
また、 アンテナ ex 2 0 1を介して受信された多重化データを複号化するには、 多重分離部 ex 3 0 8は、 多重化データを分離することにより画像データの符号 化ビットストリームと音声データの符号化ビットストリームとに分け、 同期バス ex 3 1 3を介して当該符号化画像データを画像複号化部 ex 3 0 9に供給すると 共に当該音声データを音声処理部 ex 3 0 5に供給する。
次に、 画像復号化部 ex 3 0 9は、 本願発明で説明した画像復号化装置を備え た構成であり、 画像データの符号化ビットストリームを上記実施の形態で示した 符号化方法に対応した復号化方法で復号することにより再生動画像データを生成 し、 これを L C D制御部 ex 3 0 2を介して表示部 ex 2 0 2に供給し、 これによ り、 例えばホームページにリンクされた動画像ファイルに含まれる動画データが 表示される。 このとき同時に音声処理部 ex 3 0 5は、 音声データをアナログ音 声信号に変換した後、 これを音声出力部 ex 2 0 8に供給し、 これにより、 例え ばホームページにリンクされた動画像ファイルに含まる音声データが再生される。 なお、 上記システムの例に限られず、 最近は衛星、 地上波によるディジタル放 送が話題となっており、 図 2 3に示すようにディジタル放送用システムにも上記 実施の形態の少なくとも画像符号化装置または画像複号化装置のいずれかを組み 込むことができる。 具体的には、 放送局 ex 4 0 9では映像情報の符号化ビッ ト ス トリームが電波を介して通信または放送衛星 ex 4 1 0に伝送される。 これを 受けた放送衛星 ex 4 1 0は、 放送用の電波を発信し、 この電波を衛星放送受信 設備をもつ家庭のアンテナ ex 4 0 6で受信し、 テレビ (受信機) ex 4 0 1また はセッ ト トップボックス ( S T B ) ex 4 0 7などの装置により符号化ビッ トス ト リームを複号化してこれを再生する。 また、 記録媒体である CDや DVD等の蓄積 メディア ex 4 0 2に記録した符号化ビッ トス トリームを読み取り、 復号化する 再生装置 ex 4 0 3にも上記実施の形態で示した画像複号化装置を実装すること が可能である。 この場合、 再生された映像信号はモニタ ex 4 0 4に表示される。 また、 ケーブルテレビ用のケーブル ex 4 0 5または衛星 地上波放送のアンテ ナ ex 4 0 6に接続されたセッ トトップボックス ex 4 0 7内に画像復号化装置を 実装し、 これをテレビのモニタ ex 4 0 8で再生する構成も考えられる。 このと きセットトップボックスではなく、 テレビ内に画像複号化装置を組み込んでも良 レヽ。 また、 アンテナ ex 4 1 1を有する車 ex 4 1 2で衛星 ex 4 1 0からまたは基 地局 ex l 0 7等から信号を受信し、 車 ex 4 1 2が有するカーナビゲーション ex 4 1 3等の表示装置に動画を再生することも可能である。
更に、 画像信号を上記実施の形態で示した画像符号化装置で符号化し、 記録媒 体に記録することもできる。 具体例としては、 DVD ディスク e X 4 2 1に画像信 号を記録する DVD レコーダや、 ハードディスクに記録するディスクレコーダなど のレコーダ e x 4 2 0がある。 更に SDカード e X 4 2 2に記録することもできる。 レコーダ e X 4 2 0が上記実施の形態で示した画像復号化装置を備えていれば、 DVD ディスク e X 4 2 1や SD カード e x 4 2 2に記録した画像信号を再生し、 モニタ e X 4 0 8で表示することができる。
なお、 カーナビゲーシヨン ex 4 1 3の構成は例えば図 1 9に示す構成のうち、 カメラ部 ex 2 0 3とカメラインターフェース部 ex 3 0 3、 画像符号化部 e x 3 1 2を除いた構成が考えられ、 同様なことがコンピュータ ex l 1 1やテレビ (受信機) ex 4 0 1等でも考えられる。
また、 上記携帯電話 ex l 1 4等の端末は、 符号化器 ·複号化器を両方持つ送 受信型の端末の他に、 符号化器のみの送信端末、 複号化器のみの受信端末の 3通 りの実装形式が考えられる。
このように、 上記実施の形態で示した動画像符号化方法あるいは動画像復号化 方法を上述したいずれの機器 · システムに用いることは可能であり、 そうするこ とで、 上記実施の形態で説明した効果を得ることができる。
5 . 他の実施形態
本発明はかかる上記実施形態に限定されるものではなく、 本発明の範囲を逸脱 することなく種々の変形又は修正が可能である。

Claims

請 求 の 範 囲
パラメ一タ表を参照しながら各所定単位データを符号化する可変長符号化方法 5 であって、
パラメ一タ表を初期値に設定する初期化ステップと、
初期化されたパラメータ表に関する情報を符号化するパラメータ表情報符号化 ステップと、
前記所定単位データを構成する各サブデータの符号化に用いられる符号化パラ 0 メータを前記パラメータ表から取得するパラメータ取得ステップと、
前記サブデータを、 取得された符号化パラメータを参照して可変長符号化する サブデータ符号化ステップと、
符号化された前記パラメータ表に関する情報を符号化された所定単位データよ り先に取得できる位置に配置して出力する情報符号ィヒデータ配置ステップと、 5 を備えている可変長符号化方法。
2 .
- 符号化したサブデータの値に基づいて前記パラメータ表を更新し、 前記符号化 パラメータを更新した前記パラメータ表から取得する、 請求項 1に記載の可変長 符号化方法。
0 3 .
前記サブデータ符号化ステップで用いられる符号化パラメータの値 (初期値) は、 直前の符号化したサブデータの値に基づいた前記パラメータ表から導出され ている、 請求項 1又は 2に記載の可変長符号化方法。
4 .
5 前記サブデータ符号化ステップで用いられる符号化パラメータの値 (初期値) は、 当該符号化したサブデータの値に基づいた前記パラメータ表から導出されて いる、 請求項 1又は 2に記載の可変長符号化方法。
•5 .
前記サブデータ符号化ステップでは、 前記サブデータを、 前記符号化パラメ一 タを参照して算術符号化する、 請求項 1〜 4のいずれかに記載の可変長符号化方 法。
6 .
前記パラメータ表に関する情報はパラメータ表そのものである、 請求項 1〜 5 のいずれかに記載の可変長符号化方法。
7 .
前記情報符号化ステップでは、 前記パラメータ表の一部のみを符号化する、 請 求項 6に記載の可変長符号化方法。
8 .
前記パラメータ表の一部は、 生起確率が高い符号化データに対応するパラメ一 タ部分である、 請求項 7に記載の可変長符号化方法。
9 .
前記パラメータ表に関する情報はパラメータ表を示す情報である、 請求項 1〜 5のいずれかに記載の可変長符号化方法。
1 0 .
前記情報符号化データ配置ステップでは、 前記符号化されたパラメータ表を示 す情報は前記所定単位データに対する共通データの一部として配置される、 請求 項 9に記載の可変長符号化方法。 前記情報符号化ステップでは、 前記パラメータ表に関する情報を固定的な符号 化方法で符号化する、 請求項 1〜1 0のいずれかに記載の可変長符号化方法。 1 2 .
初期化されたパラメータ表に関する情報を符号化するか否かを判断する符号化 判断ステップと、
判断結果を識別するフラグを前記符号化された所定単位データより先に取得で きる位置に配置して出力するフラグ配置ステップと、
をさらに備えている、 請求項 1〜1 1のいずれかに記載の可変長符号化方法。 1 3 .
前記所定単位データは画像データにおけるピクチャである、 請求項 1〜1 2の レ、ずれかに記載の可変長符号化方法。
1 4 .
前記所定単位データは画像データにおけるスライスである、 請求項 1〜1 2の いずれかに記載の可変長符号化方法。
1 5 .
ス トリームを構成する各所定単位データを、 パラメータ表を参照して複号化す る可変長複号化方法であつて、
前記ストリームのパラメータ表に関する情報を複号化するパラメータ表情報復 号化ステップと、
前記パラメータ表に関する情報に基づきパラメータ表の初期値を設定するパラ メータ表初期化ステップと、
前記所定単位データを構成するサブデータの複号化に用いられる符号化パラメ ータを前記パラメータ表から取得するパラメータ取得ステップと、
前記ストリームの前記サブデータを、 取得された符号化パラメータを参照して 可変長復号化するサブデータ復号化ステップと、
を備えている可変長複号化方法。
1 6 .
複号化したサブデータの値に基づいて前記パラメータ表を更新し、 前記符号化 パラメータを前記パラメータ表から取得する、 請求項 1 5に記載の可変長複号化 方法。
1 7 .
前記サブデータ復号化ステップでは、 前記サブデータを、 前記符号化パラメ一 タを参照して算術復号化する、 請求項 1 5又は 1 6に記載の可変長複号化方法。 1 8 .
前記パラメータ表情報復号化ステップでは、 パラメータ表に関する情報を固定 的な複号化方法で複号化する、 請求項 1 5〜1 7のいずれかに記載の可変長復号 化方法。
1 9 .
コンピュータに可変長符号化処理を行わせるためのプログラムを格納した記憶 媒体であって、
前記可変長符号化処理は、
パラメ一タ表を参照しながら各所定単位データを符号化する可変長符号化方法 であって、
パラメータ表を初期値に設定する初期化ステップと、
初期化されたパラメータ表に関する情報を符号化するパラメータ表情報符号化 ステップと、
前記所定単位データを構成する各サブデータの符号化に用いられる符号化パラ メータを前記パラメータ表から取得するパラメータ取得ステップと、
前記サブデータを、 取得された符号化パラメータを参照して可変長符号化する サブデータ符号化ステップと、
符号化された前記パラメータ表に関する情報を符号化された所定単位データよ り先に取得できる位置に配置して出力する情報符号ィヒデータ配置ステップと、 を備えている、 記憶媒体。
2 0 .
コンピュータに可変長複号化処理を行わせるためのプログラムを格納した記憶 媒体であって、
前記可変長複号化処理は、
ストリームを構成する各所定単位データを、 パラメータ表を参照して復号化す る可変長復号化方法であって、
前記ストリームのパラメータ表に関する情報を複号化するパラメータ表情報復 号化ステップと、
前記パラメータ表に関する情報に基づきパラメ一タ表の初期値を設定するパラ メータ表初期化ステップと、
前記所定単位データを構成するサブデータの復号化に用いられる符号化パラメ 一タを前記パラメータ表から取得するパラメータ取得ステツプと、
前記ストリームの前記サブデータを、 取得された符号化パラメータを参照して 可変長復号化するサブデータ複号化ステップと、
を備えている、 記憶媒体。
2 1 .
可変長符号表を切り換えながら各所定単位データを符号化する可変長符号化方 法であって、
可変長符号表を初期値に設定する初期化ステップと、
初期化された可変長符号表を示す情報を符号化する可変長符号表情報符号化ス テツプと、
前記所定単位データを構成する各サブデータの符号化に用いられる可変長符号 表を選択する可変長符号表選択ステツプと、
前記サブデータを、 選択された可変長符号表を参照して符号化するサブデータ 符号化ステップと、
符号化された可変長符号表を示す情報を符号化された所定単位データより先に 取得できる位置に配置して出力する情報符号化データ配置ステップと、
を備えている可変長符号化方法。
2 2 .
符号化したサブデータの値に基づいて前記可変長符号表を選択する、 請求項 2 1に記載の可変長符号化方法。
2 3 .
前記サブデータ符号化ステップでは、 符号化に用いられる可変長符号表は、 符 号化した直前のサブデータの値に基づいて選択された可変長符号表である、 請求 項 2 2に記載の可変長符号化方法。
2 4 .
前記サブデータ符号化ステップでは、 符号化に用いられる可変長符号表は、 符 号化した当該サブデータの値に基づいて選択された可変長符号表である、 請求項 2 2に記載の可変長符号化方法。
2 5 .
前記可変長符号表情報符号化ステップでは、 固定的な符号化方法で符号化する 、 請求項 2 1〜2 4のいずれかに記載の可変長符号化方法。
2 6 .
選択された可変長符号表を示す情報を符号化するか否かを判断する符号化判断 ステップと、
判断結果を識別するフラグを前記符号化された所定単位データより先に取得で きる位置に配置して出力するフラグ配置ステップと、
をさらに備えている、 請求項 2 1〜2 5のいずれかに記載の可変長符号化方法。 2 7 .
前記所定単位データは画像データにおけるピクチャである、 請求項 2 1〜2 6 のいずれかに記載の可変長符号化方法。
2 8 .
前記所定単位データは画像データにおけるスライスである、 請求項 2 1〜 2 6 のいずれかに記載の可変長符号化方法。
2 9 .
前記サブデータの複数のシンタックス要素は、 可変長符号表を切り換える可変 長符号化方法によつて符号化される部分と、 固定的な符号化方法によつて符号化 される部分とを含んでいる、 請求項 2 1〜2 8のいずれかに記載の可変長符号化 方法。
3 0 .
ストリームを構成する各所定単位データを、 可変長符号表を切り換えながら復 号化する可変長復号化方法であって、
前記ストリームの可変長符号表を示す情報を復号化する可変長符号表情報復号 化ステップと、
前記可変長符号表を示す情報に基づき可変長符号表の初期値を設定する可変長 符号表初期化ステップと、
前記所定単位データを構成するサブデータの複号化に用いられる可変長符号表 を選択する可変長符号表選択ステツプと、
前記ストリームの前記サブデータを、 選択された可変長符号表を参照して可変 長復号化するサブデータ復号化ステップと、
を備えている可変長複号化方法。
3 1 .
コンピュータに可変長符号化処理を行わせるためのプログラムを格納した記憶 媒体であって、
前記可変長符号化処理は、
可変長符号表を切り換えながら各所定単位データを符号化する可変長符号化方 法であって、
可変長符号表を初期値に設定する初期化ステップと、
初期化された可変長符号表を示す情報を符号化する可変長符号表情報符号化ス テツプと、
前記所定単位データを構成する各サブデータの符号化に用いられる可変長符号 表を選択する可変長符号表選択ステツプと、
前記サブデータを、 選択された可変長符号表を参照して符号化するサブデータ 符号化ステップと、
符号化された可変長符号表を示す情報を符号化された所定単位データより先に 取得できる位置に配置して出力する情報符号化データ配置ステップと、 を備えている、 記憶媒体。
3 2 .
コンピュータに可変長復号化処理を行わせるためのプログラムを格納した記憶 媒体であって、
前記可変長復号化処理は、 ス トリームを構成する各所定単位データを、 可変長 符号表を切り換えながら復号化する可変長複号化方法であって、
前記ス トリームの可変長符号表を示す情報を複号化する可変長符号表情報復号 化ステップと、
前記可変長符号表を示す情報に基づき可変長符号表の初期値を設定する可変長 符号表初期化ステップと、
前記所定単位データを構成するサブデータの複号化に用いられる可変長符号表 を選択する可変長符号表選択ステップと、
前記ストリームの前記サブデータを、 選択された可変長符号表を参照して可変 長復号化するサブデ一タ復号化ステツプと、
を備えている、 記憶媒体。
3 3 . パラメ一タ表を参照しながら各所定単位データを符号化する可変長符号化装置 であって、
パラメータ表を初期値に設定する初期化手段と、
初期化されたパラメータ表に関する情報を符号化するパラメータ表情報符号化 手段と、
前記所定単位データを構成する各サブデータの符号化に用いられる符号化パラ メータを前記パラメータ表から取得するパラメータ取得手段と、
前記サブデータを、 取得された符号化パラメータを参照して可変長符号化する サブデータ符号化手段と、
符号化されたパラメータ表に関する情報を符号化された所定単位データより先 に取得できる位置に配置して出力する情報符号化データ配置手段と、
を備えている可変長符号化装置。
3 4 .
ストリームを構成する各所定単位データを、 パラメータ表を参照して復号化す る可変長復号化装置であって、
前記ストリームのパラメータ表に関する情報を複号化するパラメータ表情報復 号化手段と、
前記パラメータ表に関する情報に基づきパラメ一タ表の初期値を設定するパラ メータ表初期化手段と、
前記所定単位デ一タを構成するサブデータの複号化に用いられる符号化パラメ ータを前記パラメータ表から取得するパラメータ取得手段と、
前記ストリームの前記サブデータを、 取得された符号化パラメータを参照して 可変長復号化するサブデータ復号化手段と、
を備えている可変長復号化装置。
3 5 .
可変長符号表を切り換えながら各所定単位データを符号化する可変長符号化装 置であって、
可変長符号表を初期値に設定する初期化手段と、
初期化された可変長符号表を示す情報を符号化する可変長符号表情報符号化手 段と、
前記所定単位データを構成する各サブデータの符号化に用いられる可変長符号 表を選択する可変長符号表選択手段と、
前記サブデータを、 選択された可変長符号表を参照して符号化するサブデータ 符号化手段と、
符号化された可変長符号表を示す情報を符号化された所定単位データより先に 取得できる位置に配置して出力する情報符号化データ配置手段と、
を備えている可変長符号化装置。
3 6 .
ス トリームを構成する各所定単位データを、 可変長符号表を切り換えながら復 号化する可変長復号化装置であって、
前記ストリームの可変長符号表を示す情報を復号化する可変長符号表情報復号 化手段と、
前記可変長符号表を示す情報に基づき可変長符号表の初期値を設定する可変長 符号表初期化手段と、
前記所定単位データを構成するサブデータの復号化に用いられる可変長符号表 を選択する可変長符号表選択手段と、
前記ストリームの前記サブデータを、 選択された可変長符号表を参照して可変 長復号化するサブデータ復号化手段と、
を備えている可変長複号化装置。
3 7 .
パラメータ表を参照しながら各所定単位データを符号化する可変長符号化方法 によって生成されたビットストリームであって、
前記可変長符号化方法は請求項 1〜 1 4又は 2 1〜2 9のいずれかに記載の可 変長符号化方法であることを特徴とするビットストリーム。
PCT/JP2003/003035 2002-03-27 2003-03-13 Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream WO2003081784A1 (en)

Priority Applications (13)

Application Number Priority Date Filing Date Title
SI200332219T SI1445869T1 (sl) 2002-03-27 2003-03-13 Postopek kodiranja s spremenljivo dolĹľino, postopek dekodiranja s spremenljivo dolĹľino, medij za shranjevanje, naprava za kodiranje s spremenljivo dolĹľino, naprava za dekodiranje s spremenljivo dolĹľino in bitni tok
US10/476,647 US6954156B2 (en) 2002-03-27 2003-03-13 Variable-length encoding/decoding methods and variable-length encoding/decoding devices
EP03710347A EP1445869B1 (en) 2002-03-27 2003-03-13 Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream
CA2447840A CA2447840C (en) 2002-03-27 2003-03-13 Variable-length encoding method, variable-length decoding method, storage medium, variable-length encoding device, variable-length decoding device, and bit stream
BRPI0303661A BRPI0303661B1 (pt) 2002-03-27 2003-03-13 método e dispositivo de codificação de comprimento variável e meio de armazenamento
DK03710347.0T DK1445869T3 (da) 2002-03-27 2003-03-13 Fremgangsmåde til kodning med variabel længde, fremgangsmåde til afkodning med variabel længde, lagringsmedium, indretning til kodning med variabel længde, indretning til afkodning med variabel længde og bitstrøm
KR1020037015428A KR100927510B1 (ko) 2002-03-27 2003-03-13 가변 길이 부호화 방법, 가변 길이 부호화 장치 및 기억 매체
AU2003221378A AU2003221378B9 (en) 2002-03-27 2003-03-13 Variable length encoding method, storage medium, and variable length encoding device.
MXPA03010827A MXPA03010827A (es) 2002-03-27 2003-03-13 METODO DE CODIFICACIoN DE LONGITUD VARIABLE, METODO DE DECODIFICACION DE LONGITUD VARIABLE, MEDIO DE ALMACENAMIENTO, DISPOSITIVO DE CODIFICACIoN DE LONGITUD.
ES03710347T ES2399422T3 (es) 2002-03-27 2003-03-13 Procedimiento de codificación de longitud variable, procedimiento de decodificación de longitud variable, soporte de almacenamiento, dispositivo de codificación de longitud variable y flujo de bits
EP16171139.5A EP3098969B1 (en) 2002-03-27 2003-03-13 Variable length encoding method and device
US11/064,455 US7088269B2 (en) 2002-03-27 2005-02-24 Variable-length encoding method, variable-length decoding method, storage medium, variable-length encoding device, variable-length decoding device, and bit stream
US11/368,437 US7248190B2 (en) 2002-03-27 2006-03-07 Variable-length encoding method, variable-length decoding method, storage medium, variable-length encoding device, variable-length decoding device, and bit stream

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002-088345 2002-03-27
JP2002088345 2002-03-27

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US10/476,647 A-371-Of-International US6954156B2 (en) 2002-03-27 2003-03-13 Variable-length encoding/decoding methods and variable-length encoding/decoding devices
US11/064,455 Division US7088269B2 (en) 2002-03-27 2005-02-24 Variable-length encoding method, variable-length decoding method, storage medium, variable-length encoding device, variable-length decoding device, and bit stream

Publications (1)

Publication Number Publication Date
WO2003081784A1 true WO2003081784A1 (en) 2003-10-02

Family

ID=28449441

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/003035 WO2003081784A1 (en) 2002-03-27 2003-03-13 Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream

Country Status (17)

Country Link
US (3) US6954156B2 (ja)
EP (4) EP2391019B1 (ja)
KR (1) KR100927510B1 (ja)
CN (2) CN101692610B (ja)
AU (1) AU2003221378B9 (ja)
BR (1) BRPI0303661B1 (ja)
CA (1) CA2447840C (ja)
CY (1) CY1113502T1 (ja)
DK (3) DK1445869T3 (ja)
ES (4) ES2599637T3 (ja)
HK (1) HK1196720A1 (ja)
HU (2) HUE030635T2 (ja)
MX (1) MXPA03010827A (ja)
PT (3) PT1445869E (ja)
SI (3) SI2765708T1 (ja)
TR (1) TR201906516T4 (ja)
WO (1) WO2003081784A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100848370B1 (ko) * 2004-02-13 2008-07-24 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 오디오 부호화

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400727B2 (en) * 1997-07-03 2008-07-15 Matsushita Electric Industrial Co., Ltd. Information embedding method, information extracting method, information embedding apparatus, information extracting apparatus, and recording media
US7286670B2 (en) * 1999-11-09 2007-10-23 Chaoticom, Inc. Method and apparatus for chaotic opportunistic lossless compression of data
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
KR100701810B1 (ko) * 2002-04-26 2007-04-02 가부시키가이샤 엔티티 도코모 신호 부호화 방법, 신호 복호 방법, 신호 부호화 장치, 신호 복호 장치, 및 컴퓨터로 판독가능한 기록매체
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
WO2004081719A2 (en) * 2003-03-07 2004-09-23 Chaoticom, Inc. Methods and systems for digital rights management of protected content
US7400277B2 (en) * 2004-04-06 2008-07-15 International Business Machines Corporation Method and system for the compression of probability tables
US7573406B2 (en) * 2004-05-21 2009-08-11 Broadcom Corporation System and method for decoding context adaptive variable length coding
EP1797722B1 (en) * 2004-10-05 2019-05-29 Vectormax Corporation Adaptive overlapped block matching for accurate motion compensation
AU2005338930B2 (en) * 2005-12-05 2010-12-09 Thomson Licensing Watermarking encoded content
US7365658B2 (en) * 2006-02-28 2008-04-29 The Board Of Trustees Of The University Of Arkansas Method and apparatus for lossless run-length data encoding
US8660188B2 (en) * 2006-08-08 2014-02-25 Panasonic Corporation Variable length coding apparatus, and method and integrated circuit of the same
US8942292B2 (en) * 2006-10-13 2015-01-27 Qualcomm Incorporated Efficient significant coefficients coding in scalable video codecs
JP2009152990A (ja) * 2007-12-21 2009-07-09 Panasonic Corp 画像符号化装置及び画像復号化装置
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
US20090260397A1 (en) * 2008-04-21 2009-10-22 Cornejo Ivan A Glass Structure Having Sub-Micron and Nano-Size Bandgap Structures and Method For Producing Same
GB2465809B (en) * 2008-12-01 2012-12-12 Advanced Risc Mach Ltd Dynamic selection of suitable codes for variable length coding and decoding
JP4866484B2 (ja) * 2009-01-23 2012-02-01 日本電信電話株式会社 パラメータ選択方法、パラメータ選択装置、プログラム及び記録媒体
JP5274317B2 (ja) * 2009-03-17 2013-08-28 パナソニック株式会社 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路
KR101773009B1 (ko) 2009-06-29 2017-08-30 톰슨 라이센싱 코딩되지 않은 구문에 대한 적응 확률 갱신을 위한 방법 및 장치
US8565811B2 (en) * 2009-08-04 2013-10-22 Microsoft Corporation Software-defined radio using multi-core processor
KR101474756B1 (ko) 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
US9753884B2 (en) * 2009-09-30 2017-09-05 Microsoft Technology Licensing, Llc Radio-control board for software-defined radio platform
CN102754437B (zh) * 2009-10-29 2015-03-18 松下电器(美国)知识产权公司 图像编码方法、图像编码装置及集成电路
US8627189B2 (en) 2009-12-03 2014-01-07 Microsoft Corporation High performance digital signal processing in software radios
US20110136439A1 (en) * 2009-12-04 2011-06-09 Microsoft Corporation Analyzing Wireless Technologies Based On Software-Defined Radio
CN101770367B (zh) * 2009-12-30 2012-10-31 飞天诚信科技股份有限公司 .net文件压缩方法和装置
CN101794219B (zh) * 2009-12-30 2012-12-12 飞天诚信科技股份有限公司 .net文件的压缩方法和装置
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
ES2937066T3 (es) * 2010-07-20 2023-03-23 Fraunhofer Ges Forschung Decodificador de audio, procedimiento y programa informático para decodificación de audio
US20120195366A1 (en) * 2011-02-01 2012-08-02 Mediatek Singapore Pte. Ltd. Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes
WO2012149679A1 (en) 2011-05-04 2012-11-08 Microsoft Corporation Spectrum allocation for base station
US9635374B2 (en) 2011-08-01 2017-04-25 Apple Inc. Systems and methods for coding video data using switchable encoders and decoders
US8989286B2 (en) 2011-11-10 2015-03-24 Microsoft Corporation Mapping a transmission stream in a virtual baseband to a physical baseband with equalization
US9130711B2 (en) 2011-11-10 2015-09-08 Microsoft Technology Licensing, Llc Mapping signals from a virtual frequency band to physical frequency bands
JP6641857B2 (ja) * 2015-10-05 2020-02-05 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US20170180757A1 (en) * 2015-12-18 2017-06-22 Blackberry Limited Binarizer selection for image and video coding
US10869032B1 (en) 2016-11-04 2020-12-15 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10484701B1 (en) * 2016-11-08 2019-11-19 Amazon Technologies, Inc. Rendition switch indicator
US10264265B1 (en) 2016-12-05 2019-04-16 Amazon Technologies, Inc. Compression encoding of images
US10681382B1 (en) 2016-12-20 2020-06-09 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10944423B2 (en) * 2019-03-14 2021-03-09 International Business Machines Corporation Verifying the correctness of a deflate compression accelerator
CN112399181B (zh) * 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05199422A (ja) * 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
JPH06225279A (ja) * 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
JPH0846521A (ja) * 1994-01-18 1996-02-16 Daewoo Electron Co Ltd 可変長符号化器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287468A (en) * 1987-06-03 1994-02-15 Sony Corporation Method and apparatus for processing information data
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
JP3463299B2 (ja) * 1993-03-26 2003-11-05 ソニー株式会社 ディスク再生装置
US5666161A (en) * 1993-04-26 1997-09-09 Hitachi, Ltd. Method and apparatus for creating less amount of compressd image data from compressed still image data and system for transmitting compressed image data through transmission line
JP3274284B2 (ja) * 1994-08-08 2002-04-15 キヤノン株式会社 符号化装置およびその方法
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
JP3747525B2 (ja) * 1996-08-28 2006-02-22 株式会社日立製作所 並列データベースシステム検索方法
US5995148A (en) * 1997-02-14 1999-11-30 At&T Corp Video coder having scalar dependent variable length coder
WO1999022525A1 (en) * 1997-10-23 1999-05-06 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
CN1173567C (zh) * 2000-02-09 2004-10-27 德国汤姆森-布兰特有限公司 使用加密、解密来保护数据流的方法、编码和解码装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05199422A (ja) * 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
JPH06225279A (ja) * 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
JPH0846521A (ja) * 1994-01-18 1996-02-16 Daewoo Electron Co Ltd 可変長符号化器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100848370B1 (ko) * 2004-02-13 2008-07-24 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 오디오 부호화

Also Published As

Publication number Publication date
US7088269B2 (en) 2006-08-08
DK2391019T3 (da) 2014-09-01
DK2765708T3 (en) 2016-11-14
EP2391019A2 (en) 2011-11-30
EP1445869A4 (en) 2007-03-14
EP2391019B1 (en) 2014-06-25
EP1445869B1 (en) 2012-11-28
EP1445869A1 (en) 2004-08-11
ES2724399T3 (es) 2019-09-10
AU2003221378B9 (en) 2009-01-08
PT2765708T (pt) 2016-10-25
SI2391019T1 (sl) 2014-09-30
EP2391019A3 (en) 2011-12-28
US7248190B2 (en) 2007-07-24
BR0303661A (pt) 2004-07-13
CY1113502T1 (el) 2016-06-22
ES2399422T3 (es) 2013-04-01
US20060145897A1 (en) 2006-07-06
CN101692610A (zh) 2010-04-07
US6954156B2 (en) 2005-10-11
EP3098969A1 (en) 2016-11-30
EP2765708B1 (en) 2016-07-27
US20050156763A1 (en) 2005-07-21
EP2765708A1 (en) 2014-08-13
HUE030635T2 (en) 2017-06-28
CN101692610B (zh) 2014-06-25
KR20040099101A (ko) 2004-11-26
PT1445869E (pt) 2012-12-17
PT2391019E (pt) 2014-08-29
BRPI0303661B1 (pt) 2016-09-27
HUE044878T2 (hu) 2019-11-28
SI1445869T1 (sl) 2013-01-31
CA2447840A1 (en) 2003-10-02
KR100927510B1 (ko) 2009-11-17
DK1445869T3 (da) 2013-01-02
HK1196720A1 (zh) 2014-12-19
TR201906516T4 (tr) 2019-05-21
SI2765708T1 (sl) 2016-11-30
ES2599637T3 (es) 2017-02-02
CN1515078A (zh) 2004-07-21
EP3098969B1 (en) 2019-02-20
AU2003221378B2 (en) 2008-07-24
AU2003221378A1 (en) 2003-10-08
US20050012647A1 (en) 2005-01-20
MXPA03010827A (es) 2004-02-17
CN100555877C (zh) 2009-10-28
CA2447840C (en) 2011-08-09
ES2493616T3 (es) 2014-09-12

Similar Documents

Publication Publication Date Title
WO2003081784A1 (en) Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream
US9204164B2 (en) Filtering strength determination method, moving picture coding method and moving picture decoding method
JP3923898B2 (ja) 画像符号化方法及び装置
US9369718B2 (en) Decoding method, decoding apparatus, coding method, and coding apparatus using a quantization matrix
JP3762392B2 (ja) 動画像符号化方法及び装置
US20110110423A1 (en) Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus, and program thereof
US20050094726A1 (en) System for encoding video data and system for decoding video data
US20050265444A1 (en) Moving image encoding/decoding apparatus and method
US8942493B2 (en) Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
JP4125565B2 (ja) 画像符号化方法、画像復号化方法及びその装置
JP4742018B2 (ja) 画像符号化装置及び画像符号化方法
JP4197262B2 (ja) 可変長符号化方法、可変長復号化方法、記憶媒体、可変長符号化装置、可変長復号化装置、及びビットストリーム
JP4197345B2 (ja) 可変長復号化方法、記憶媒体、及び可変長復号化装置
JP2001045490A (ja) 動画像信号の符号化装置及び符号化方法
JP4125739B2 (ja) 画像符号化方法、画像復号化方法及びその装置
JP2008141530A (ja) 画像符号化装置及び画像符号化方法
JP2010172003A (ja) 復号再生方法及び復号再生装置
WO2013046895A1 (ja) 画像処理装置と画像処理方法
JP2007151163A (ja) 画像復号化方法及び装置
KR20040031948A (ko) 동영상 디코딩 방법
JP2005123722A (ja) 動画像復号再生方法及び動画像復号再生装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2003221378

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2003710347

Country of ref document: EP

Ref document number: 1395/KOLNP/2003

Country of ref document: IN

Ref document number: 01395/KOLNP/2003

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 10476647

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2447840

Country of ref document: CA

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: PA/a/2003/010827

Country of ref document: MX

Ref document number: 1020037015428

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 038003309

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2003710347

Country of ref document: EP