WO2009157250A1 - Decode processing device, processor, electronic device, decode processing method, and decode processing program - Google Patents

Decode processing device, processor, electronic device, decode processing method, and decode processing program Download PDF

Info

Publication number
WO2009157250A1
WO2009157250A1 PCT/JP2009/057832 JP2009057832W WO2009157250A1 WO 2009157250 A1 WO2009157250 A1 WO 2009157250A1 JP 2009057832 W JP2009057832 W JP 2009057832W WO 2009157250 A1 WO2009157250 A1 WO 2009157250A1
Authority
WO
WIPO (PCT)
Prior art keywords
prefix
decoding
length
variable
address
Prior art date
Application number
PCT/JP2009/057832
Other languages
French (fr)
Japanese (ja)
Inventor
希実 石原
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2010517811A priority Critical patent/JP5083579B2/en
Publication of WO2009157250A1 publication Critical patent/WO2009157250A1/en

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Definitions

  • the present invention relates to a decoding processing device, a processor, an electronic device, a decoding processing method, and a decoding processing program.
  • the present invention relates to a decoding processing apparatus that decodes data encoded based on the H.264 standard and decodes variable-length codes.
  • an input time domain signal is converted into a frequency domain coefficient by orthogonal transform, for example, discrete cosine transform (DCT), quantized, and then coded. Assign.
  • orthogonal transform for example, discrete cosine transform (DCT)
  • Assign In this code allocation, in order to improve compression efficiency, variable length coding is often performed in which the code length is changed in accordance with the probability of occurrence frequency.
  • variable length coding H.264 / AVC (MPEG-4AVC: Moving Picture Expert Group4 Part10 Advanced Video Coding) used in the CAVLC (Context-based Adaptive Variable Code length encoding type such as Context Adaptation)
  • MPEG-4AVC Moving Picture Expert Group4 Part10 Advanced Video Coding
  • CAVLC Context-based Adaptive Variable Code length encoding type such as Context Adaptation
  • a quantized DCT coefficient is encoded for each 4 ⁇ 4 block to generate an encoded bit stream.
  • decoding the encoded bit stream that is the encoded data string it can be performed by dividing it into the following four processes.
  • the first process the number of non-zero coefficients (TC: Total Coefficient) appearing in the 4 ⁇ 4 block and the number of consecutive ⁇ 1 (T1s: Trailing ones) appearing in the 4 ⁇ 4 block are performed.
  • T1s Trailing ones
  • Patent Document 1 As a related technique of such a decoding calculation processing method by CAVLC, for example, Patent Document 1 shown below can be cited.
  • FIG. 42 is a table constructed based on the table of FIG. 41 disclosed in Patent Document 1.
  • a computer that performs decoding processing first obtains a prefix length. Next, a suffix following the prefix is obtained, and a table is referenced using the prefix length and the suffix to obtain TC and T1s.
  • an operation for cutting out data having a specified bit width from the bit stream is required.
  • An example of an apparatus that performs an unpacking process is described in Patent Document 2.
  • FIG. 47 is a diagram illustrating a configuration in which a processing device 1032 is incorporated into a processor 1031 of related technology disclosed in Patent Document 2.
  • This processor 1031 has a five-stage pipeline, an IF stage for fetching instructions, a REG stage for decoding the instructions and fetching data from the core register (Core Reg), an EXE stage by a numerical arithmetic unit (ALU), a bus (BUS) and a MEM stage for inputting / outputting data to / from the memory 1033, and a WB stage for writing data back to the core register (Core Reg).
  • ALU numerical arithmetic unit
  • the processor 1031 is provided with a dedicated register (Reg) 1034 at the REG stage and a computing unit 1035 at the EXE stage, respectively, and a processing device 1032 by the dedicated register (Reg) 1034 and the computing unit 1035 is added.
  • the processor 1031 adds an unpacking instruction for cutting out data having a specified bit width from the dedicated register (Reg) 1034.
  • the CAVLC processing unit in the CAVLC unit issues a get request with a predetermined number of requested bits to a data access circuit having an M-bit buffer storing stream data. After obtaining the data, the number of “0 coefficients” is detected. Then, the CAVLC processing unit returns unnecessary bits to the data access circuit by an unget request. Similarly, the CAVLC processing unit issues a get request with a predetermined number of requested bits to a data access circuit having an M-bit buffer that stores stream data, acquires data from the data acquisition circuit, The number of consecutive “0 coefficients” is detected. Unnecessary bits are returned to the data access circuit by an unget request (paragraph numbers 0108 to 0114 in Patent Document 3).
  • the CAVLC processing unit sequentially obtains and returns data every time it detects the number of “0 coefficients” or the continuous number of “0 coefficients” from the stream data of the data access circuit.
  • the first problem is that a plurality of cycles are required to determine the cut-out width of the bit specified by the unpacking instruction.
  • the cause of this problem is that the bit cutout width depends on the bit pattern in the bit stream, so that data must be read from the bit stream and the bit pattern must be examined.
  • the second problem is that a large number of cycles are required for address calculation necessary for referring to a table for obtaining a decoding result.
  • the cause of this problem is to calculate the row index from the prefix length and the column index from the suffix in order to obtain the address necessary for the table reference to obtain the decoding result. This is because the address for decoding referring to the table must be calculated.
  • FIG. 48 is a time chart showing a process of decoding TC and T1s created based on the processing apparatus disclosed in Patent Document 2.
  • the processor performs a process for obtaining a row index and a suffix length. Specifically, the processor loads data from the memory, calculates a prefix length, obtains an address referring to the row index table and the suffix length table from the obtained prefix length, and obtains the row index and the suffix length by referring to the table.
  • the processor cuts out the suffix from the read data and performs a process for obtaining a column index.
  • the ALU erases the read data by masking the prefix portion, shifts the data, extracts only the suffix, and calculates the column index.
  • the processor decodes TC and T1s.
  • the arithmetic unit (ALU) calculates a decoding address from the row index and the column index obtained by the above processing, and obtains TC and T1s by load processing using the address.
  • the processor performs a process of updating the dedicated register (Reg) 1034 in FIG.
  • the arithmetic unit (ALU) adds the prefix length and the suffix length to calculate the amount of bits to be updated, and updates the dedicated register (Reg) 1034 by a bit read instruction.
  • ALU arithmetic unit
  • An object of the present invention is to provide a decoding processing device, a processor, an electronic device, a decoding processing method, and a decoding processing program capable of reducing the number of cycles necessary for decoding a variable length code represented by TC and T1s encoding of CAVLC Is to provide.
  • a decoding processing apparatus of the present invention is a decoding processing apparatus that performs a process of decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix that follows the prefix. , Temporarily holding a part of the variable-length code bitstream, and controlling input / output processing for holding, and the variable-length code bitstream input from the first control means Based on the prefix and the suffix, a decoding address used for referring to a decoding table necessary for decoding is generated, and control information for updating the variable-length code bitstream to the first control means is provided. Second control means for supplying, wherein the second control means provides the address for decoding. A process of forming, and characterized by performing a process of updating the variable length code bit stream held in said first control means.
  • a processor is a processor capable of executing pipeline processing including a decoding processing device that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix following the prefix.
  • a decoding processing device that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix following the prefix.
  • a first control unit for controlling an input / output process for holding, and in the processor pipeline process
  • a decoding address used for decoding table reference necessary for decoding is generated, and First control Second control means for generating control information for updating the variable-length code bitstream for a stage, wherein the second control means generates the decoding address, and the first control And a process of updating the variable-length code bitstream of the means.
  • the decoding processing method of the present invention is a decoding processing method for performing processing for decoding a variable-length code bitstream that is an encoded data string including at least a prefix and a suffix following the prefix, and the variable-length code bitstream
  • a first control for performing an input / output process for temporarily holding a part of the bit stream temporarily holding unit, and subsequently, the prefix of the variable length code bit stream input from the bit stream temporary holding unit and Based on the suffix, a decoding address used for referring to a decoding table necessary for decoding is generated, and control information for updating the variable-length code bitstream is supplied to the bitstream temporary holding unit. 2 and when performing the second control, the decoding add And generating a scan, and characterized by performing a process of updating the variable length code bit stream of the bit stream temporary storage unit.
  • the decoding processing program of the present invention is a decoding processing program capable of realizing various functions by a computer that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix following the prefix.
  • a first control function for performing an input / output process for temporarily holding a part of the variable length code bitstream in the bitstream temporary holding unit, and the variable length code bits held in the bitstream temporary holding unit Based on the prefix and the suffix of the stream, a decoding address used for referring to a decoding table necessary for decoding is generated, and control information for updating the variable-length code bitstream of the bitstream temporary holding unit is generated
  • a second control function to In the second control function the computer implements a function of performing the process of generating the decoding address and the process of updating the variable-length code bitstream of the bitstream temporary holding unit. It is characterized by letting.
  • a decoding address generation process based on a prefix and a suffix and a variable-length code bitstream update process can be performed to prepare for the next decoding, and for variable-length code decoding.
  • the number of necessary cycles can be reduced.
  • FIG. 1 is a block diagram showing an example of an overall schematic configuration of a processor including a decoding processing device according to the first embodiment of the present invention.
  • the processor system 1 of the present embodiment shown in FIG. 1 includes a memory 10 and a processor 20 connected to the memory 10 via a bus Bus.
  • the processor 20 in the present embodiment replaces the processor shown in FIG. 47 with the processing device 1032, and a decoding processing device 50 (variable length) having a bit storage 52, a control information / row index generator 53, and a decoding address generator 54.
  • a coding / decoding device A coding / decoding device).
  • the decoding processing device 50 decodes a variable-length code bit stream that is an encoded data sequence including at least a prefix and a suffix subsequent to the prefix.
  • the decoding processing device 50 stores a bit stream in the REG stage in the processor pipeline process, and stores a bit index 52 and a bit index in the EXE stage in the processor pipeline process.
  • a control information / row index generator 53 for generating information for the buffer 52 to control the buffer, and a decoding address generator 54 for receiving information from the control information / row index generator 53 and generating an address. It is configured to include.
  • the processor 20 is equipped with a decoding processing device 50 and can execute pipeline processing.
  • the processor 20 has a five-stage pipeline, an IF stage for fetching an instruction into the IF unit 21, and decoding the instruction.
  • REG stage for fetching data from the core register (Core Reg) 22, EXE stage by the numerical operation unit (ALU) 23, MEM stage for inputting / outputting data to / from the memory 10 via the bus (BUS), core register ( (Core Reg) 22 to execute the processing at the WB stage for writing back the data.
  • the IF stage is an abbreviation for Instruction Fetch stage (instruction fetch stage).
  • the IF unit (instruction memory) 21 performs processing for fetching an instruction from the memory 10.
  • the REG stage is an abbreviation for Register stage (register stage).
  • the numerical operation unit (ALU) 23 performs a process of extracting data from the core register (Core Reg) 22.
  • the EXE stage is an abbreviation for an execution stage (execution stage), and in the EXE stage, a numerical operation unit (ALU) 23 performs arithmetic processing.
  • the MEM stage is an abbreviation for a Memory stage (memory stage).
  • the Load / Store Unit 24 performs a process of inputting / outputting data to / from the memory 10 via a bus (BUS).
  • the WB stage is an abbreviation for the Write Back stage (write back stage), and in the WB stage, the core register (Core Reg) 22 performs a process of storing data. Instructions and data are sequentially transferred to each of the above stages, and processing by the numerical operation unit (ALU) 23 is executed.
  • the processor 20 has processor pipeline registers 31A, 31B, 31C, and 31D for each stage boundary.
  • the bit storage 52 has a bit buffer controller 61 and a bit buffer 62 controlled by the bit buffer controller 61.
  • the bit buffer controller 61 operates according to an input signal INST_CNTL transferred from the IF stage.
  • INST_CNTL is an instruction indicating initialization of the bit buffer 62
  • the bit buffer controller 61 reads data from the memory 10 using the address indicated in the instruction and stores the read data in the bit buffer 62. To do.
  • bit buffer controller 61 advances the address indicated in the instruction by the data read from the memory 10 and stores the bit stream (data) read up to that address in the bit buffer 62.
  • INST_CNTL is an instruction to perform variable length code decoding processing
  • the bit buffer controller 61 outputs the data REG_DATA read from the bit buffer 62 and, at the same time, adds the output bit width BIT_WIDTH to the data REG_DATA.
  • bit buffer controller 61 outputs a SEL_TAB signal for selecting a table in the control information / row index generator 53.
  • SEL_TAB a value read from a register designated by a decoding processing instruction of INST_CNTL is used.
  • bit buffer controller 61 When the bit buffer controller 61 receives the instruction INST_UPD for updating the bit buffer 62, the bit buffer controller 61 shifts the data of the bit stream stored in the bit buffer 62 by the number of bits specified by the INST_UPD. The data of the bit stream stored in is updated.
  • the bit buffer controller 61 When the bit buffer controller 61 reads data from the bit buffer 62, the bit buffer controller 61 determines that the number of bits of data stored in the bit buffer 62 is small. A bit replenishment process is performed by replenishing the bit buffer 62 with a number of data.
  • the case where it is determined that the number of bits is small means a case where the number of bits of data written to the bit buffer 62 is smaller than the number of bits of data to be read.
  • the determination condition is that the number of bits stored in the bit buffer 62 in the specific period is preferably, for example, one third or less of the storable capacity of the bit buffer 62. More specifically, bit supplementation is performed when the bit buffer is 96 bits or less, for example, 32 bits or less.
  • bit buffer controller 61 When the bit buffer controller 61 performs the bit replenishment process, it is possible to prevent the reading process of data (variable length bit stream) from the bit buffer 62 from being stopped, and to contribute to the speedup in the decoding process.
  • the bit buffer controller 61 issues an instruction MEM_LOAD using the address held when the instruction for initialization is executed, and acquires new bit data from the memory 10.
  • the bit data read from the memory 10 is input to the bit buffer 62 as MEM_ST shown in FIG.
  • FIG. 3 shows a detailed configuration of the control information / row index generator 53 of FIG.
  • the control information / row index generator 53 has a four-stage pipeline structure, and the prefix counter 71 that counts the prefix length of the data REG_DATA read from the bit buffer 62, and the count
  • a prefix address generator 72 for generating an address for referring to a table to be described later from the prefix length, a row index table (first table) group 73 composed of a plurality of tables storing row indexes, and a plurality of storing suffix lengths
  • a suffix length table (second table) group 74 consisting of the following tables, an acquisition unit 77 for acquiring a corresponding row index from a selected table of the row index table group 73 based on a prefix address, and a suffix length table
  • An acquisition unit 78 that acquires a corresponding suffix length from a selected table of the group of colors 74 based on a prefix address, an add
  • the row index table (first table) group 73 and the suffix length table (second table) group 74 are stored in the storage unit, and the acquisition units 77 and 78 access the storage unit respectively.
  • the row index from the row index table (first table) group 73 and the suffix length from the suffix length table (second table) group 74 are respectively acquired.
  • the control information / row index generator 53 generates control information and a row index.
  • control information / row index generator 53 has pipeline registers 81A, 81B, 81C for each boundary of the pipeline stages.
  • the prefix counter 71 sets the prefix length of the REG_DATA. Count.
  • the prefix counter 71 outputs the counted prefix length of REG_DATA to the pipeline register 81A.
  • the control information / low index generator 53 performs the following operation. That is, when the counted prefix length is input to the prefix address generator 72 via the pipeline register 81A, the prefix generator 72 uses the row index table group 73 and the suffix length table group 74 based on the counted prefix length. Calculate the address referring to. The prefix generator 72 outputs the address to the pipeline register 81B.
  • the control information / row index generator 53 performs the following operation. That is, when the calculated address information is input to the acquisition unit 77 and the acquisition unit 78 via the pipeline register 81B, the acquisition unit 77 receives the table selection signal SEL_TAB from the bit buffer controller 61 and the address. Based on this, the row index table group 73 is accessed to obtain a row index. Similarly, the acquisition unit 78 obtains a suffix length by accessing the suffix length table group 74 based on the table selection signal SEL_TAB from the bit buffer controller 61 and the address. The acquisition unit 77 passes the acquired row index through the pipeline register 81C and outputs it as ROW_INDEX.
  • the control information / low index generator 53 performs the following operation. That is, the adder 76 obtains the prefix length counted by the prefix counter 71 and the suffix length acquired by the acquisition unit 78, adds the prefix length and the suffix length, and decodes the code.
  • the code length COD_WIDTH is obtained.
  • the control information / low index generator 53 performs the following operation. That is, the update instruction generator 75 includes the suffix length acquired by the acquisition unit 78, the prefix length counted by the prefix counter 71, the data REG_DATA read from the bit buffer 62, and the bit buffer controller 61. And an instruction INST_UPD for updating the bit buffer 62 of FIG. 2 is generated on the basis of the output bit width BIT_WIDTH output from.
  • the contents of the row index table group 73 are updated by the instruction UPD_ROW.
  • the instruction UPD_ROW is executed, the register data specified in the instruction is read from the core register (Core Reg) in the REG stage, and the contents to be updated, the table to be updated, and the position to be updated are displayed. Data at the indicated address is obtained.
  • the row index table is updated using the data read in the REG stage.
  • suffix length table group 74 is updated in the same manner as the row index table group 73 based on the instruction UPD_SUF.
  • FIG. 4 shows details of the decoding address generator 54 of FIG. 4
  • the decoding address generator 54 shown in FIG. 4 receives REG_DATA, COD_WIDTH, and BIT_WIDTH, adjusts the bits of REG_DATA to generate a column index, and generates a column index and input.
  • the adder 92 adds the ROW_INDEX, and generates and outputs a decoding address ADDRESS.
  • bit adjustment / column index generator 91 performs the processing described in the flowchart of FIG. First, in step S101 of FIG. 5, the bit adjustment / column index generator 91 calculates COD_WIDTH (added prefix length and suffix length) and BIT_WIDTH (number of bits of the variable length code bit stream output from the bit buffer). The difference is obtained (difference calculating step or difference calculating function). Here, the result is X.
  • bit adjustment / column index generator 91 right-shifts REG_DATA by X in step S102 (prefix and suffix data extraction step or prefix and suffix data extraction function).
  • the result is SH_DATA.
  • bit adjustment / column index generator 91 obtains and outputs the column index COL_INDEX from SH_DATA in step S103 (column index calculation step or column index calculation function).
  • the bit adjustment / column index generator 91 performs bit adjustment, and in addition to this, the bit adjustment / column index generator 91 generates a column index.
  • bit storage 52 of the present embodiment can also be referred to as an example of “first control means”.
  • control information / row index generator 53, the decoding address generator 54, and the generator pipeline register 55 of the present embodiment may constitute an example of the “second control means 51”.
  • the bit buffer 62 of the present embodiment can also be referred to as an example of a “bitstream temporary storage unit”. Furthermore, the bit buffer controller 61 of the present embodiment can also be referred to as an example of a “bit control unit”. Furthermore, the control information / row index generator 53 of the present embodiment can also be said to be an example of a “first generation control unit”. The decoding address generator 54 according to the present embodiment can also be said to be an example of a “second generation control unit”.
  • an example of a “table information acquisition unit” can be configured by the acquisition unit 77 and the acquisition unit 78 of the present embodiment.
  • the update instruction generator 75 of the present embodiment can also be said to be an example of an “update instruction generator”.
  • the prefix counter 71 of the present embodiment can also be said to be an example of a “prefix counter”.
  • the prefix address generator 72 according to the present embodiment can be said to be an example of a “prefix address calculation unit”.
  • bit adjustment / column index generator 91 of the present embodiment can also be referred to as an example of a “column index generation unit”.
  • adder 92 of the present embodiment can also be referred to as an example of an “adder”.
  • This “first control means” can temporarily hold a part of the variable-length code bitstream and can control input / output processing for holding it.
  • the “second control unit” performs decoding based on the prefix and the suffix of the variable-length code bitstream input from the first control unit in the execution stage in the processor pipeline processing.
  • a decoding address used for referring to a necessary decoding table can be generated, and control information for updating the variable-length code bitstream can be supplied to the first control means.
  • the second control unit can perform a process of generating the decoding address and a process of updating the variable length code bitstream held in the first control unit.
  • the second control unit simultaneously performs the process of generating the decoding address and the process of updating the variable length code bitstream held in the first control unit.
  • the number of cycles is reduced as compared with the case where each process is performed sequentially, and the processing speed can be improved.
  • “simultaneously performing” a plurality of processes includes a case where a plurality of processes are performed in parallel.
  • a case where a plurality of processes are performed “simultaneously” can include a case where “a process is performed in a pseudo manner” in a process like a computer.
  • the present invention is not limited to the case where a plurality of processes are performed simultaneously, and a plurality of processes may be started at the same time, and the timings at which each process ends may differ. Furthermore, the start timing of each process may be different, and the end timing of each process may be different. Furthermore, each process may be executed sequentially.
  • the control that can be performed “simultaneously” in the present specification can include the various control methods described above.
  • the bit storage 52 of the processor performs a process of holding a part of the variable length code bit stream.
  • control information / row index generator 53 (first generation control unit) of the processor sets the decoding address based on the prefix of the variable-length code bitstream in the execution stage in the processor pipeline processing.
  • a row index to be obtained is generated by referring to the row index table, and a suffix length corresponding to the prefix length is generated by referring to the suffix length table.
  • the control information / row index generator 53 of the processor updates the variable length code bit stream in the bit storage 52 as an example of the control information after generating them in the execution stage in the processor pipeline processing. Generate update instructions.
  • the decoding address generator 54 (second generation control unit) of the processor generates a column index for obtaining the decoding address from the suffix length in the execution stage in the processor pipeline processing.
  • the decoding address is generated based on the column index and the row index.
  • control information / row index generator 53 generates a decoding address in the second generation control unit after generating the row index and the suffix length;
  • the process of updating the variable-length code bitstream can be executed simultaneously (in parallel with the unit clock period).
  • a first table (row index table) storing a prefix address and a row index according to the prefix length, and a prefix address and a suffix length according to the prefix length are stored.
  • a second table (suffix length table).
  • the prefix counter 71 is in the execution stage in the processor pipeline processing, and the first control means in the first stage in the index generation pipeline processing.
  • the prefix length of the variable-length code bit stream read from is counted.
  • a prefix address generator 72 in the second stage in the index generation pipeline process, the first table from the prefix length counted by the prefix counting unit, A prefix address for referring to the second table is calculated.
  • the acquisition units 77 and 78 use the prefix address obtained by the prefix address calculation unit in the third stage in the index generation pipeline processing, and Each of the first table and the second table is referred to, and the corresponding row index and the suffix length are obtained.
  • the update instruction generator 75 performs the suffix length and prefix count acquired by the acquisition units 77 and 78 in the fourth stage of the index generation pipeline processing. Based on the prefix length counted in the unit, the data REG_DATA read from the bit buffer 62, and the output bit width BIT_WIDTH output from the bit buffer controller 61, an update command which is the control information to be updated is generated.
  • bit adjustment / column index generator 91 of the decoding address generator 54 generates the column index based on the suffix length, and the adder 92 adds the column index and the row index to decode. Address.
  • the “first control means” includes a bit stream temporary holding unit that temporarily holds the variable length code bit stream, and bit control that performs input / output control of the variable length code bit stream in the bit stream temporary holding unit. Parts.
  • the bit control unit reads bit data having a predetermined number of bits from the variable-length code bit stream held by the bit stream temporary holding unit, and the remaining number of bits after reading is small, A bit replenishment function for concatenating and storing a part of the variable-length code bitstream holding the correct data, and updating the variable-length code bitstream held based on the update command that is the control information to be updated And an update processing function for performing processing.
  • the first table and the second table may each include a plurality of tables corresponding to the type of decoding NumVLC table in the context adaptive variable length coding scheme.
  • the first control means can generate table selection control information for selecting the type and supply it to the first generation control unit (control information / row index generator).
  • the table information acquisition unit selects one of the plurality of tables in the first table based on the table selection control information, and the plurality of tables in the second table Any one can be selected.
  • the decoding address generation process based on the prefix and the update process of the bit storage control unit can be performed at the same time, and preparation for the next decoding can be performed. Can reduce the number of cycles required.
  • the first effect is that the update of the bit buffer based on the prefix length, the suffix length, and the data REG_DATA read from the bit buffer 62 can be performed simultaneously with the generation of the decoding address to prepare for the next decoding. It can be done.
  • the reason for this is that by providing an update instruction device for generating an instruction for updating the bit buffer from the prefix length, the suffix length, and the data REG_DATA read from the bit buffer 62 in the variable length decoding device of the present invention, This is because the bit buffer can be updated simultaneously with the generation of the decoding address after the suffix length is known.
  • the second effect is that the number of cycles required for decoding the variable length code can be reduced, and the decoding processing speed can be increased.
  • the reason for this is that by providing a circuit that automatically checks the bit pattern of the bit stream to determine the prefix length, suffix, and decoding address, the number of cycles required for checking the bit pattern for reading data is reduced. is there. In other words, the bit width specified by the unpacking instruction is automatically determined based on the bit pattern in the bit stream, and an address used for table reference for decoding the code code can be generated.
  • bitstream prefix is counted, the row index and suffix length are read from the row index table and suffix length table, respectively, using the prefix as a key, and the prefix length, suffix length, and data REG_DATA read from the bit buffer 62 are stored. Then, a suffix is extracted from the bit stream, a column index is obtained, and a row index and a column index are added and output to obtain a decoding address. At the same time, the bit buffer storing the bit stream can be updated based on the prefix length and the suffix length, and the decoding processing speed can be increased.
  • FIG. 6 is a block diagram showing an example of a detailed configuration of the control information / row index generator according to the second embodiment of the present invention.
  • control information / row index generator has a configuration including a row index table group and a suffix length table group made up of a plurality of tables.
  • the generator has a single row index table and a single suffix length table.
  • the control information / row index generator 153 of this embodiment includes a single row index table 173, a single suffix length table 174, and each of these tables. It is configured to include acquisition units 177 and 178 that acquire data. Accordingly, the control information / row index generator 153 does not require the table selection signal SEL_TAB, and the table selection signal SEL_TAB is deleted from the control information / row index generator 53 of the first embodiment. ing.
  • FIG. 7 shows a block diagram of a bit storage that is changed in accordance with the control information / row index generator.
  • the bit storage 152 according to the second embodiment has a configuration in which the table selection signal SEL_TAB is deleted from the same input / output as that of the first embodiment. That is, the bit buffer controller 161 is configured not to output a table selection signal.
  • the bit buffer 62 constituting the bit storage 52 is constituted by a register of 96 bits, for example. Further, the input INST_CNTL in the bit storage 52 is configured so that, for example, 16 bits can be input.
  • the input INST_UPD is 6 bits
  • the input MEM_ST is 32 bits
  • the output REG_DATA is 32 bits
  • the output SEL_TAB is 2 bits
  • the output BIT_WIDTH is 6 bits
  • the output MEM_LOAD is 40 bits. Is done.
  • the bit stream read from the memory is stored so that the left end of the bit buffer 62 is the head of the bit stream.
  • SEL_TAB SEL_TAB values 0, 1, and 2 select the 0th, 1st, and 2nd tables of the row index and suffix length table, respectively.
  • INST_UPD Bit buffer update instruction
  • the bit buffer controller updates the bit buffer when the control information is 1, and does nothing when it is 0.
  • the bit buffer is updated, and the bit buffer is updated by left shift by 7 bits, which is the number of bits indicated in the subsequent bit number update data.
  • FIG. 13 shows a configuration example in the present embodiment regarding the instruction INST_CNTL from the processor.
  • the DEC_CODE instruction shown in FIG. 12 and the INITIALIZE instruction shown in FIG. 13 are 16-bit wide instructions.
  • the DEC_CODE instruction (decoding start instruction) includes an 8-bit operand code OPCODE, a 3-bit REGNUM1 that specifies a register number for storing the generated address, and a 3-bit REGNUM2 that specifies a register that stores a value to be output to SEL_TAB. And 2-bit 0.
  • This instruction is an instruction to start the variable length decoding process.
  • the bit buffer controller 61 loads 32-bit data from the bit buffer 62 and outputs it to REG_DATA. Output to BIT_WIDTH, and further output to SEL_TAB the value read from the register specified by REGNUM2. Further, the result of instruction execution is returned with the result address stored in the register designated by REGNUM1.
  • the INITIALIZE instruction (initialization instruction) is composed of an 8-bit operand code OPCODE, a 3-bit REGNUM that designates a register number in which a memory address is stored, and a 5-bit 0, and performs an operation for initializing the decoding processor. .
  • OPCODE operand code
  • REGNUM register number in which a memory address is stored
  • 5-bit 5-bit 0
  • bit buffer controller 61 holds an address obtained by advancing the address of the register designated by REGNUM by 96 bits.
  • bit replenishment processing A bit replenishment method for the bit buffer 62 in this embodiment will be described.
  • the bit buffer controller 61 performs bit replenishment processing.
  • Bit replenishment processing is performed by issuing a bit replenishment instruction MEM_LOAD using the address held by the bit buffer controller 61.
  • FIG. 14 shows an outline of the MEM_LOAD instruction (bit supplement instruction).
  • MEM_LOAD has an 8-bit operand code OPCODE indicating a load instruction, and an ADDRESS field indicating an address held by the bit buffer 62.
  • the 32-bit data read from the memory is transferred to the bit buffer controller through the input MEM_ST.
  • the bit buffer controller 61 loads 32-bit data using this MEM_LOAD instruction, and advances the address held by the bit buffer controller 61 by the loaded amount. Further, the bit buffer controller 61 adds the data obtained from the input MEM_ST to the end of the data held in the bit buffer 62. Therefore, for example, bit supplementation is performed like B1, B2, B3, and B4 shown in FIG.
  • the control information / row index generator 53 has an output of the prefix counter 71 of 4 bits and an output of the prefix address generator 72 of 32 bits.
  • the row index table group 73 has three tables, table 0, table 1, and table 2, and the output is, for example, 32 bits.
  • the suffix length table group 74 has three tables, table 0, table 1, and table 2, and the output is, for example, 3 bits.
  • the output COD_WIDTH of the control information / low index generator 53 is 6 bits.
  • the code shown in FIG. 16 is data read from the bit buffer 62 and input to the prefix counter. Now, the code shown in FIG. 16 has five consecutive zeros as a prefix.
  • the prefix counter 71 in this embodiment counts the number of consecutive 0s and outputs the prefix length as 5.
  • consecutive 0s are used as prefixes, but consecutive 1s may be used as prefixes.
  • the configuration method in the present embodiment will be described by taking the configuration of the table 0 shown in FIGS. 17 and 18 as an example.
  • the row index table 0 in FIG. 17 and the suffix length table 0 in FIG. 18 are configured based on the table in FIG. 40.
  • the prefix length and the row index from 0 to 14 are in the suffix length table.
  • Prefix lengths from 0 to 14 are associated with suffix lengths.
  • the NumVLC1 table for example, FIGS. 43 and 44
  • the NumVLC2 table for example, FIGS. 45 and 46
  • these three tables are used by appropriately switching as necessary. This is because H.264 CAVLC appropriately selects the NumVLC table and proceeds with decoding.
  • the UPD_ROW instruction (row index table update instruction) and the UPD_SUF instruction (suffix length table update instruction) for updating the row index table group 73 and the suffix length table group 73 will be described with reference to FIGS.
  • the UPD_ROW instruction and the UPD_SUF instruction are 32-bit instructions, respectively, REGNUM1 for specifying a register storing an 8-bit OPCODE indicating an operand and an address indicating a position to be updated in the table, and a register storing a content to be updated And a REGNUM3 field indicating a register storing contents for selecting a table.
  • the prefix address generator 72 that generates an address for referring to the table will be described. As shown in FIGS. 17 and 18, the address of the table corresponds to the prefix length, and when the prefix increases by 1, the address increases by 4. Therefore, the prefix address generator of this embodiment generates an address by shifting the input prefix length to the left by 2 bits.
  • bit adjustment / column index generator 91 is a 32-bit output, and the output column index is added to the input ROW_INDEX and output as a 32-bit decoding address.
  • bit adjustment / column index generator 91 takes the difference between the inputted BIT_WIDTH and COD_WIDTH and sets the result as X (difference calculating step or difference calculating function).
  • step S102 the bit adjustment / column index generator 91 right-shifts the input REG_DATA by X and sets the result to SH_DATA (prefix and suffix data extraction step or prefix and suffix data extraction function).
  • step S103 the bit adjustment / column index generator 91 calculates the column index COL_INDEX.
  • SH_DATA is converted to a 32-bit address by shifting left by 2 bits.
  • the bit adjustment / column index generator 91 outputs this address as the column index COL_INDEX (column index calculation step or column index calculation function).
  • FIGS. 21 is a flowchart illustrating an example of a processing procedure for decoding TC and T1s of CAVLC.
  • FIG. 22 shows an example of an assembler code for decoding TC and T1s of CAVLC.
  • the processor performs a process of selecting any one row index table from among a plurality of types of row index tables corresponding to the type of NumVLC and updating the selected row index table. (Step S210). Subsequently, the processor selects any one suffix length table from among a plurality of suffix length tables corresponding to the type of NumVLC, and performs a process of updating the selected suffix length table (step S220). Further, the processor performs processing for initializing the variable-length code decoding device (decoding processing device) (step S230).
  • step S240 the processor performs a process of determining whether or not the decoding process for all 4 ⁇ 4 blocks has been completed.
  • the processor ends the process.
  • the processor advances the process to the next step S250. That is, the processor performs a process of decoding TC and T1s in one 4 ⁇ 4 block (step S250). Then, the processor performs other decoding processing in one 4 ⁇ 4 block (step S260).
  • the processor returns to step S240, and repeats steps S240 to S260 to perform the decoding process for another 4 ⁇ 4 block.
  • Loop r3 is an instruction in which the processor repeats the processing described from the Loop instruction to the repetition end by the value stored in the register r3. Note that the repetition end is described by an instruction Loop end.
  • a value for selecting a table by the processor is stored in r2.
  • the processor stores the number of repetitions, that is, the number of 4 ⁇ 4 blocks.
  • the processor stores the start address of the variable-length code bitstream in the register dp1.
  • the processor stores an address of data in the memory indicating the update contents of the row index table.
  • the processor stores an address of data indicating a position to be updated in the row index table.
  • the processor stores an address of data indicating the update contents of the suffix table.
  • the processor stores an address of data indicating a position where the suffix table is updated.
  • the processor updates the raw index table (step S210).
  • the processor updates the row index using the UPD_ROW instruction (step S213).
  • the processor reads the contents of the next row index table and the address indicating the update position from the memory (steps S214 and S215).
  • the processor next updates the suffix length table in the same processing procedure (step S220). That is, in the 6th and 7th lines of the program, the processor reads the contents of the suffix length table and the address indicating the update position from the memory (steps S221 and S222). In the instruction on the eighth line, the processor updates the suffix length using the UPD_SUF instruction (step S223). In the instructions on the ninth and tenth lines, the processor reads the contents of the next suffix length table and the address indicating the update position from the memory (steps S224 and S225). When the update of the suffix table is completed, the processor initializes the decoding processing device with the INITIALIZE instruction (step S230).
  • the processor After initialization, the processor starts decoding. In the decoding process, first, the processor declares that the instruction below the Loop is repeated by the value stored in the register r3, that is, the number of 4 ⁇ 4 blocks, using the Loop instruction shown in the 12th line of the program. (Step S240). In the next instruction, the processor executes an instruction for decoding the variable length code, calculates a decoding address, and stores the result in the register dp2 (step S251). Further, the processor loads data using the address stored in the register dp2, obtains TC and T1s from the memory, and stores them in the register r0 (step S252).
  • step S260 the processor The other decoding process in H.264 is performed (step S260), and the repetition process is terminated by the Loop end instruction shown in the 15th line.
  • the processor determines that the process is repeated for the value indicated by r3
  • the processor exits the loop and proceeds to the next process.
  • the processor determines that iterative processing has not been performed for the value indicated by r2
  • the processor returns to the top of the loop and repeats processing.
  • FIG. 23 shows the output of each unit at each clock of the variable-length code decoding processing apparatus operating in synchronization with the clock signal.
  • the processor executes the decoding start instruction DEC_CODE of the variable-length code bitstream (step S11) (decoding start instruction execution processing step or decoding start instruction execution processing function).
  • the bit buffer controller 61 of the bit storage 52 receives the instruction INST_CNTL from the IF stage, performs bit read processing, and outputs it from the bit buffer 62 to REG_DATA (step S12) (variable). Long code bit stream output processing step or variable length code bit stream output processing function).
  • the prefix counter 71 of the control information / low index generator 53 counts the prefix included in REG_DATA (step S13) (prefix counting step or prefix counting function).
  • the prefix address generator 72 of the control information / row index generator 53 receives an address referring to the row index table group 73 and the suffix length table group 74 with the prefix length as an input.
  • Generate (step S14) (prefix address generation step or prefix address generation function).
  • the acquisition unit 77 of the control information / row index generator 53 receives the address calculated by the prefix address generator 72 and a signal for selecting a table (table selection signal) as inputs.
  • the row index corresponding to the prefix address is obtained by referring to the selected row index table (row index obtaining step or row index obtaining function).
  • the acquisition unit 78 of the control information / row index generator 53 refers to the selected suffix length table to acquire the suffix length corresponding to the prefix address (suffix length acquisition step or suffix length acquisition function).
  • step S15 table information acquisition step or table information acquisition).
  • the update instruction generator 75 of the control information / row index generator 53 receives the prefix length, suffix length, REG_DATA, and the output bit width output from the bit buffer controller 61. Then, an update instruction for updating the data in the bit buffer 62 is generated (step S16) (bit buffer update instruction generation step or bit buffer update instruction generation function).
  • the bit buffer controller 61 performs an update process on the bit buffer 62 with the update instruction generated from the update instruction generator 75 as an input, and the data in the bit buffer 62 is updated. (Bit buffer update processing step or bit buffer update processing function).
  • the decoding address generator 54 generates a column index, adds the generated column index to the row index, and outputs it (step S17) (column index row index addition step or decoding address calculation step, or column index row). Index addition function or decoding address calculation function). In this way, the process of generating the decoding address by the control information / row index generator 53 and the process of updating the variable length code bitstream held in the bit buffer 62 are performed simultaneously (in parallel with the unit clock period). )It can be carried out.
  • the processor refers to the decoding table with the decoding address generated by the decoding address generator 54 as an input, and variable length encoded TC and T1s are decoded.
  • Step S18 (TC / T1s decoding processing step or TC / T1s decoding processing function).
  • control information / decoding address generation control step can be configured by the above steps S13 to S17.
  • control information / row index generation step can be configured by the above steps S13 to S16.
  • decoding address generation (output) step can be configured by step S17.
  • bit storage processing step can be constituted by step S12.
  • the row index table 173 consists of one table.
  • the suffix length table 174 consists of one table.
  • the signal SEL_TAB for selecting the table becomes unnecessary. Further, as shown in FIG. 25, the signal SEL_TAB for selecting the table is not required for the output of the bit buffer controller 161 in the bit storage 152.
  • FIG. 26 shows a DEC_CODE instruction defined in the present embodiment.
  • the part REG_NUM2 designating a register including a signal for selecting a table is erased from the configuration of the DEC_CODE instruction in the third embodiment, and a 0 value is stored instead. It has become.
  • UPD_ROW and UPD_SUF instructions defined in the second embodiment are shown in FIGS.
  • the UPD_ROW and UPD_SUF instructions of this embodiment are 16-bit instructions, an 8-bit operand OPCODE, a REGNUM1 that specifies a register that stores an address indicating a table update position, and a register that stores the contents to be updated And REGNUM2 indicating 2 and 0 of 2 bits.
  • FIGS. 29 is a flowchart illustrating an example of a processing procedure for decoding TC and T1s of CAVLC.
  • FIG. 30 shows an example of an assembler code for decoding TC and T1s of CAVLC.
  • This program is not necessary to select any one of the plurality of row index tables. Further, it is not necessary to select any one suffix length table from among a plurality of types of suffix length tables.
  • the processor performs a process of updating the row index table (step S310). Subsequently, the processor performs a process of updating the suffix length table (step S320). Further, the processor performs processing for initializing the variable-length code decoding device (decoding processing device) (step S330).
  • step S340 the processor performs a process of determining whether or not the decoding process for all 4 ⁇ 4 blocks has been completed.
  • the processor ends the process.
  • the processor advances the process to the next step S350. That is, the processor performs a process of decoding TC and T1s in one 4 ⁇ 4 block (step S350). Then, the processor performs other decoding processing in one 4 ⁇ 4 block (step S360).
  • the processor returns to step S340, and repeats steps S340 to S360 to perform the decoding process for another 4 ⁇ 4 block.
  • the processor stores the number of repetitions, that is, the number of 4 ⁇ 4 blocks, in the register r3.
  • the processor stores the start address of the variable-length code bitstream in the register dp1.
  • the processor stores an address of data in the memory indicating the update contents of the row index table.
  • the processor stores an address of data indicating a position to be updated in the row index table.
  • the processor stores an address of data indicating the update contents of the suffix table.
  • the processor stores an address of data indicating a position where the suffix table is updated.
  • the registers specified by the instructions are two registers that store the update position and the value used for the update (step S313, step S323).
  • the decoding instruction DEC_CODE is obtained by removing the signal for selecting a table from the DEC_CODE instruction of the third embodiment (step S351).
  • S311, S312, S314, S315, S321, S322, S324, S325, S330, S340, S352, and S360 are the same as S211, S212, S214, S215, S221, S222, S224, and the like in the third embodiment. This is the same as S225, S230, S240, S252, and S260.
  • the bit buffer controller 261 of the bit storage 252 has a prefix counting function (prefix counting unit) in addition to the bit replenishment function and the update processing function.
  • prefix counting unit prefix counting unit
  • the prefix length of the bit data stored in the bit buffer 262 is counted in advance by the bit buffer controller 261, and the bit data is read from the bit buffer 262 by execution of the decoding processing instruction ( For example, 4 bits) are output.
  • control information / low index generator 253 does not require a prefix counter.
  • control information / row index generator 253 may have a three-stage pipeline configuration, and may include only the generator pipeline registers 281B and 281C.
  • the prefix address generator 272, the row index table group 273, the suffix length table group 274, the acquisition unit 277, the acquisition unit 278, the adder 276, and the update instruction generator 275, which are other configurations, are the same as those in the above embodiment. It has become.
  • Modification 2 Furthermore, it is possible to refer to the table using the counted prefix length as it is. In the case of this configuration, as shown in FIG. 33, the control information / row index generator 353 does not require a prefix address generator.
  • the acquisition unit 377 of the control information / row index generator 353 acquires the corresponding row index from the selected table in the row index table group 373 based on the prefix length. Further, the acquisition unit 378 of the control information / row index generator 353 acquires the corresponding suffix length from the selected table in the suffix length table group 374 based on the prefix length.
  • the adder 376 and the update instruction generator 375 which are other configurations are the same as those in the above embodiment.
  • the period for generating the prefix address (step S14 in FIG. 22) is also unnecessary, and S11, S12, S13, S15, S16, S17, and the like in the third embodiment. S21, S22, S23, S25, S26, S27, and S28, which are the same as S18, are sufficient.
  • the address generation for decoding which has been performed by the address generator for decoding, can be performed simultaneously with the generation of the fourth pipeline stage of the control information / row index generator, that is, the update instruction.
  • the decoding address generator 453 can be mounted in the control information / row index generator 453.
  • Other configurations are a prefix counter 471, a prefix address generator 472, a row index table group 473, a suffix length table group 474, an acquisition unit 477, an acquisition unit 478, an adder 476, an update instruction generator 475, and a generator pipeline.
  • the registers 481A, 481B, 481C are the same as those in the above embodiment.
  • FIG. 36 is a flowchart illustrating an example of a processing procedure in the decoding processing device according to another embodiment of the present invention.
  • the decoding processing method according to the present embodiment is intended for a method in which a computer (for example, a processor or the like) performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix that follows the prefix. It is what.
  • this decoding processing method for example, it can also be said to be an example of a detailed processing procedure of step S251 in FIG. 22 of the above-described embodiment.
  • the computer performs first control for performing input / output processing for temporarily storing a part of the variable-length code bitstream in the bitstream temporary storage unit (for example, The bit storage control step of step S401 shown in FIG. 36). That is, the computer performs a process of temporarily holding a part of the variable-length code bitstream in the bitstream temporary holding unit.
  • the computer After the computer generates a row index for obtaining the decoding address based on the prefix of the variable-length code bitstream, generates a suffix length corresponding to the prefix length, and generates these First generation control for generating the control information is performed (for example, the control information / raw index generation step in step S402 shown in FIG. 36).
  • the computer generates a column index for obtaining the decoding address from the suffix length, and performs second generation control for generating the decoding address based on the column index and the row index (for example, a decoding address generation step in step S403 shown in FIG. 36).
  • a process of generating a decoding address in the second generation control after the generation of the row index and the suffix length And the process of updating the variable-length code bit stream in the first control can be executed simultaneously (in parallel with the unit clock period).
  • FIG. 37 is a flowchart illustrating an example of a processing procedure in the decoding processing device according to another embodiment of the present invention.
  • a first table storing a row index corresponding to the prefix length and a second table storing a suffix length corresponding to the prefix length are provided. Then, the computer counts the prefix length of the previous variable-length code bitstream (step S501) (prefix counting step or prefix counting function).
  • the computer calculates a prefix address for referring to the first table and the second table from the prefix length counted in the prefix counting step of the previous step S501 (step S502) (prefix address calculating step) Or prefix address calculation function).
  • the computer refers to the first table and the second table, respectively, using the prefix address obtained in the prefix address calculation step of the previous step S502, and determines the corresponding row index and suffix length.
  • Obtain step S503 (table information obtaining step or table information obtaining function).
  • the computer stores the bit length of the bit storage control means based on the suffix length acquired in the table information acquisition step in the previous step S503, the prefix length counted in the prefix counting step in the step S501, and REG_DATA.
  • An update command that is control information for updating the variable-length code bitstream is generated (step S504) (update command generation step or update command generation function).
  • FIG. 38 shows an example of the detailed processing procedure of the decryption address generation step S403 shown in FIG.
  • FIG. 38 is a flowchart illustrating an example of a processing procedure in the decoding processing device according to another embodiment of the present invention.
  • the computer generates a column index for obtaining the decoding address based on the prefix length, the suffix length, the number of bits of the variable length code bit stream of the bit storage control means, and the bit stream ( Step S601) (column index generation step or column index generation function).
  • Step S601 column index generation step or column index generation function.
  • step S602 the computer adds the column index in the previous step S601 and the row index in step S503 to generate a decoding address (step S602) (column index row index addition step or column index row index addition function) ).
  • the computer executes a process of updating the variable length code bitstream of the bit storage control means based on the update command in step S504 (step S504).
  • step S504 step S504
  • step S603 bit storage update processing step or bit storage update processing function
  • the “second control step” can be configured by the above steps S402 and S403.
  • the computer uses the decoding table reference necessary for decoding based on the prefix and the suffix of the variable-length code bitstream input from the bitstream temporary storage unit.
  • second control for supplying control information for updating the variable-length code bitstream to the bitstream temporary storage unit can be performed.
  • the process of generating the decoding address and the process of updating the variable length code bitstream of the bitstream temporary storage unit can be performed simultaneously.
  • the decoding processing device 550 temporarily holds a part of the variable-length code bitstream and also controls first input / output processing for holding the first control means (for example, a bit storage unit 552 shown in FIG. 39). And the like, and a decoding address used for reference to a decoding table necessary for decoding, based on the prefix and the suffix of the variable-length code bitstream input from the first control unit, and Second control means (for example, reference numeral 551 shown in FIG.
  • the second control unit 551 simultaneously performs the process of generating the decoding address and the process of updating the variable length code bitstream held in the first control unit (for example, in parallel with a unit clock period). Can do).
  • the decoding address generation process based on the prefix and the suffix and the update process of the first control unit can be performed simultaneously, and the variable length code can be prepared for the next decoding.
  • the number of cycles required for decoding can be reduced.
  • the second control unit 551 generates a raw index for obtaining the decoding address based on the prefix of the variable-length code bitstream, and generates a suffix length corresponding to the prefix length.
  • a control information / row index generator 553 (first generation control unit) for controlling the processing operation for generating the control information after generating the column information, and generating a column index for obtaining the decoding address from the suffix length
  • a decoding address generator 554 (second generation control unit) for controlling a processing operation for generating the decoding address based on the column index and the row index.
  • control information / row index generator 553 generates the decoding address after generating the row index and the suffix length, and the variable length code bit held in the first control means.
  • the process of updating the stream can be performed simultaneously (for example, in parallel with the unit clock period).
  • the decoding processing device and the processor in the above-described embodiment can be configured separately.
  • the processor control unit 625 in the processor 620 includes a decoding start instruction (DEC_CODE) generation function 625a, a bit buffer update instruction (INST_UPD) generation function 625b, and a bit supplement instruction (MEM_LOAD) generation function 625c.
  • DEC_CODE decoding start instruction
  • INDT_UPD bit buffer update instruction
  • MEM_LOAD bit supplement instruction
  • a row index table update instruction (UPD_ROW) generation function 625d a suffix length table update instruction (UPD_SUF) generation function 625e
  • an initialization instruction INITIALIZE
  • the decoding processing device 650 includes a bit storage 652 (first control means), a control information / row index generator 653 (first generation control unit), and a decoding address generator 654 ( A second generation control unit).
  • the control information / row index generator 653 and the decoding address generator 654 can constitute the second control means 651.
  • the decoding processing device 650 starts the decoding process when the decoding start instruction (DEC_CODE) of the processor 620 is input to the bit storage 652. Also, when the decryption processing device 650 executes various processes based on other various instructions of the processor 620, the process can be performed in the same manner as in the above embodiment.
  • each block in the block diagram shown in FIG. 39 has a software module configuration showing a state functionalized by a computer by executing various programs stored in an appropriate memory. There may be.
  • the physical configuration is, for example, one or a plurality of CPUs (or one or a plurality of CPUs and one or a plurality of memories), the configuration shown in FIG. 39 is realized on software by causing the CPU to execute a program. You may do it.
  • each unit (means) described above can be interpreted as a computer functionalized by a program together with the functions of the program, or a plurality of functions permanently functioning by specific hardware. It can also be interpreted that the device comprising the electronic circuit block is described. Therefore, these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.
  • each unit may be configured as a device including a dedicated computer capable of communication, and the system may be configured by each of these devices. Conversely, a system in which each unit is configured as a single device may be used.
  • each part when configured as a circuit, it may be configured by various integrated circuits such as a semiconductor integrated circuit, an optical integrated circuit, or a combination thereof.
  • a bit storage unit having means for holding and controlling a part of a bit stream, and a variable length code according to a bit stream prefix using the bit stream as an input
  • a control information / row index generator having means for generating an address used for table reference necessary for decoding, that is, a row index and a suffix length corresponding to the prefix length, and generating information for controlling the bit storage
  • a decoding address generator having means for generating an address referring to a table necessary for decoding from the prefix length and the suffix.
  • the bit storage device reads bit data of a predetermined number of bits from the held bit stream, and when the remaining number of bits after the reading is small, newly reads data from the memory, and a part of the held bit stream And a means for updating the stored bit stream based on information for controlling the bit storage.
  • the control information / row index generator stores an address used for table reference necessary for decoding of a variable length code corresponding to a prefix length, that is, a table storing a row index and a suffix length corresponding to the prefix length.
  • the decoding address generator obtains a suffix of data read from the bit storage and calculates an address used for table reference necessary for decoding a variable length code calculated from the suffix, that is, a column index. And means for adding the row index and the column index.
  • the number, position, shape, and the like of the constituent members are not limited to the above-described embodiment, and can be set to a suitable number, position, shape, and the like in practicing the present invention. That is, in the above-described embodiment, the case where one decoding processor is provided in one processor has been described, but the present invention does not limit the number of these devices. For example, a configuration in which one decoding processing device is processed by a plurality of processors or a configuration in which a plurality of decoding processing devices are processed by one processor may be employed. Furthermore, although a pipeline processor is used in the case of one processor, a processor other than the pipeline processor may be used in the case of a plurality of processors. Further, the pipeline processor may be any of the case where there is no parallel processing and the case where there is parallel processing with a parallel degree k (superscaler).
  • the decoding process is performed in units of 4 ⁇ 4 block sizes has been described as an example.
  • the decoding process may be performed in units of other various block sizes.
  • H.M. It may be a 2 ⁇ 2 size block used in H.264.
  • decoding is performed using the NumVLC table for 2 ⁇ 2 size, and the decoding process of the 4 ⁇ 4 size block is performed except for the number of repetitions necessary for decoding the block coefficient.
  • the processing is equivalent.
  • the encoding process conforms to the CAVLC method, the method of the above embodiment can be used regardless of the block size.
  • examples of the electronic device including a decoder on which the processor as described above is mounted include a digital moving image reproducing device such as an HDD recorder and a DVD player, and other various communication devices.
  • a digital moving image reproducing device such as an HDD recorder and a DVD player
  • other various communication devices such as an HDD recorder and a DVD player
  • it may be mounted on any computer such as a desktop, laptop computer, other information device having wireless / wired communication function, information home appliance (TV / portable music player / game machine), or similar computer. ⁇ Any fixed type.
  • Various communication devices are not limited to personal computers, but various servers, EWS (engineering workstations), medium-sized computers, mainframes, portable information terminals, various mobile terminals, PDAs, mobile phones, wearable information terminals, various televisions, It may be a DVD recorder, various audio devices, a home appliance equipped with various information communication functions, a game device having a network function, or the like.
  • EWS engineing workstations
  • medium-sized computers mainframes
  • portable information terminals various mobile terminals
  • PDAs mobile phones
  • wearable information terminals various televisions
  • It may be a DVD recorder, various audio devices, a home appliance equipped with various information communication functions, a game device having a network function, or the like.
  • the decoding processing program of the present invention that realizes the functions of the above-described embodiments is a program corresponding to the processing unit (processing means), functions, and the like shown in the various block diagrams in each of the above-described embodiments, and a flowchart.
  • a computer that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix that follows the prefix has various functions. Can be realized.
  • the decoding processing program includes a first control function for performing input / output processing for temporarily holding a part of the variable length code bitstream in the bitstream temporary holding unit, and the bitstream temporary holding unit Based on the prefix and the suffix of the variable-length code bitstream, a decoding address used for referring to a decoding table necessary for decoding is generated, and the variable-length code bitstream of the bitstream temporary storage unit is updated
  • a function including a second control function (control information / decoding address generation control function) for generating control information can be realized by the computer.
  • control information / decoding address generation control function control information / decoding address generation control function
  • a process of generating the decoding address and a process of updating the variable-length code bitstream of the bitstream temporary storage unit
  • the computer can realize the function of performing the above simultaneously or sequentially.
  • the decoding processing program In the control information / decoding address generation control function, the decoding processing program generates a raw index for obtaining the decoding address based on the prefix of the variable-length code bitstream, and also adds a prefix length.
  • a function including a decoding address generation function (second generation control function) for controlling a processing operation for generating an index and generating the decoding address based on the column index and the row index is realized in the computer. Can be made.
  • control information / row index generation function (first generation control function) outputs the decoding address after the generation of the row index and the suffix length, and the bitstream temporary storage unit It is possible to cause the computer to realize a control function for simultaneously or sequentially performing processing for updating the variable-length code bitstream.
  • a first table storing a row index corresponding to the prefix length and a second table storing a suffix length corresponding to the prefix length can be provided.
  • a prefix counting function for counting the prefix length of the variable-length code bitstream
  • the prefix address calculation function for calculating a prefix address for referring to the first table and the second table from the prefix length counted in the above, and the prefix address obtained by the prefix address calculation function,
  • a table information acquisition function that refers to each of the one table and the second table and acquires the corresponding row index and the suffix length; and the suffix length and the prefix meter acquired by the table information acquisition function
  • the function including the update instruction generating function for generating an update command is control information for the update can be achieved in the computer.
  • the program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language as required.
  • the language may be a compiler type or an interpreter type, regardless of the form of the program.
  • the decoding processing program of the present invention if the decoding processing program is read from a storage medium such as a ROM storing the decoding processing program into a computer (CPU) and executed, or the decoding processing program is communicated If it is executed after being downloaded to a computer via the means, the above-described apparatus according to the present invention can be realized relatively easily.
  • the software of the apparatus is embodied as an embodiment of the idea of the invention, it naturally exists and is used on a storage medium storing such software.
  • the program does not have any problem regarding the replication stage such as the primary replica and the secondary replica. If the program is supplied using a communication line, the communication line becomes a transmission medium and the present invention is used. Furthermore, the dependent claims in the apparatus may be configured to correspond to the dependent claims in the method and the program.
  • the information recording medium stores an application program including the above-described program, and the computer can read the application program from the information recording medium and install the application program on the hard disk.
  • the program can be provided by being recorded on an information recording medium such as a magnetic recording medium, an optical recording medium, or a ROM.
  • an information recording medium in which such a program is recorded in a computer constitutes a convenient information processing apparatus.
  • ROM read only memory
  • RAM random access memory
  • semiconductor memory such as flash memory and SRAM
  • an integrated circuit or a USB memory
  • memory card optical disk, magneto-optical disk, magnetic recording medium and the like including them.
  • flexible disk CD-ROM, CD-R, CD-RW, FD, DVDROM, HDDVD (HDDVD-R-SL ⁇ single layer>, HDDVD-R-DL ⁇ double layer>, HDDVD-RW) -SL, HDDVD-RW-DL, HDDVD-RAM-SL), DVD ⁇ R-SL, DVD ⁇ R-DL, DVD ⁇ RW-SL, DVD ⁇ RW-DL, DVD-RAM, Blu-Ray Disk ⁇ registration Trademarks> (BD-R-SL, BD-R-DL, BD-RE-SL, BD-RE-DL), O, ZIP, magnetic card, magnetic tape, SD card, memory stick, non-volatile memory card, IC card, and other portable media, recording
  • the “information recording medium” is a medium that dynamically holds a program for a short time (transmission medium), such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. Or a transmission wave), a volatile memory inside a computer system serving as a server or a client in that case, and those holding a program for a certain period of time.
  • transmission medium such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. Or a transmission wave
  • a volatile memory inside a computer system serving as a server or a client in that case and those holding a program for a certain period of time.
  • processor and the decoding processing device of the above-described embodiment may be configured as a system.
  • This “system” may be integrated with other “systems”, and the entire system may be configured as the “system” of the present invention.
  • the “system” refers to a logical collection of a plurality of devices, and it does not matter whether the devices of each configuration are in the same housing.
  • the present invention may be applied to a system composed of a plurality of devices, or may be applied to an apparatus composed of one device.
  • the steps shown in the flowchart include processes that are executed in parallel or individually even if they are not necessarily processed in time series, as well as processes that are executed in time series according to the described procedure. It is a waste.
  • the order in which the program procedures (steps) are executed can be changed. Further, certain procedures (steps) described herein can be implemented, removed, added, or rearranged as a combined procedure (step) as needed for implementation.
  • each unit may be formed by an integrated circuit such as an LSI. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
  • the LSI may include other functional blocks.
  • the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible. Further, if integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology.
  • the method for controlling the process of outputting the decoding address and the process of updating the variable-length code bitstream of the bit storage control means to be performed simultaneously is not necessarily limited to a substantial apparatus. It can be easily understood that this also functions as a method. For this reason, the invention relating to the method is not necessarily limited to a substantial apparatus, and there is no difference that the method is also effective. In this case, a decoding processing device, a processor, and the like can be included as an example for realizing the method.
  • such a decoding processing device and processor may exist alone, or are incorporated in a certain device (for example, a processor including the decoding processing device is incorporated as a function of a decoder or an electronic device).
  • the idea of the invention is not limited to this and includes various aspects. Therefore, it can be changed as appropriate, such as software or hardware.
  • the software of the apparatus is embodied as an embodiment of the idea of the invention, it naturally exists on the storage medium storing the software and is used.
  • a part is software and a part is realized by hardware, and a part is stored on a storage medium and is read as needed. It may be as a thing.
  • a configuration using hardware or an operating system may be used, or may be implemented separately from these.
  • the scope of the invention is not limited to the illustrated example.
  • the above embodiments include various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. That is, examples include combinations of the above-described embodiments, or any of them and any of the modifications.
  • the obvious effects from the respective configurations disclosed in the embodiments and their modifications are naturally included as the effects of the embodiments. it can.
  • the configuration capable of exhibiting all the effects described in the present embodiment is not necessarily an essential component of the essential features of the present invention.
  • an embodiment based on a configuration in which some of the configuration requirements are deleted from all the configuration requirements shown in the embodiment, and a technical scope based on the configuration may be an invention.
  • the present invention can be applied to all decoding processing apparatuses, and more specifically, can be applied to applications such as a processor such as a digital video reproducing apparatus.
  • INST_UPD update command

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Provided is a decode processing device capable of reduing the number of cycles required to decode a variable length code as represented by encoding TC or T1s of CAVLC. The decode processing device decodes a variable length code bit stream including a prefix and a suffix following the prefix. The decode processing device includes: a bit-storage control means for holding part of the variable length code bit stream and enabling this holding process operation to be controlled; and a control information and decode address generation control means for generating, based on the prefix of the variable length code bit stream, a decode address used to refer to a decode table, which is necessary for decoding, and generating control information used to update the variable length code bit stream for the bit-storage control means. A process for outputting the decode address is performed simultaneously with a process for updating the variable length code bit stream.

Description

復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラムDecoding processing device, processor, electronic device, decoding processing method, and decoding processing program
 本発明は、復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラムに関し、特に、H.264などの規定に基づいて符号化されたデータの復号を行うものであって、可変長符号を復号する復号処理装置などに関する。 The present invention relates to a decoding processing device, a processor, an electronic device, a decoding processing method, and a decoding processing program. The present invention relates to a decoding processing apparatus that decodes data encoded based on the H.264 standard and decodes variable-length codes.
 一般に、画像およびオーディオの圧縮符号化装置では、入力される時間領域の信号を直交変換、たとえば、離散コサイン変換(DCT:Discrete Cosine Transform)により周波数領域の係数に変換して量子化した後、符号を割り当てる。この符号の割り当てでは、圧縮効率向上のため、発生頻度の確率に応じて符号長を変化させる可変長符号化を施すことが多い。 In general, in an image and audio compression encoding apparatus, an input time domain signal is converted into a frequency domain coefficient by orthogonal transform, for example, discrete cosine transform (DCT), quantized, and then coded. Assign. In this code allocation, in order to improve compression efficiency, variable length coding is often performed in which the code length is changed in accordance with the probability of occurrence frequency.
 可変長符号化の例としては、H.264/AVC(MPEG-4AVC:Moving Picture Expert Group4 Part10 Advanced Video Coding)方式で用いられるCAVLC(Context-based Adaptive Variable Length Code:コンテキスト適応型可変長符号化方式)などが挙げられる。 As an example of variable length coding, H.264 / AVC (MPEG-4AVC: Moving Picture Expert Group4 Part10 Advanced Video Coding) used in the CAVLC (Context-based Adaptive Variable Code length encoding type such as Context Adaptation)
 CAVLCでは、量子化されたDCT係数を4×4ブロックごとに符号化を行い符号化ビットストリームを生成する。この符号化されたデータ列である符号化ビットストリームの復号を行う場合には、以下に示す4つの処理に分けて行うことができる。
 1番目の処理では、4×4ブロックに出現する0でない係数の数(TC:Total Coefficient)と、4×4ブロックに出現する連続する±1の数(T1s:Trailing ones)を求める処理を行う。
 2番目の処理では、0でない係数の値(レベル値)を求める処理を行う。
 3番目の処理では、連続する0の係数の数(ラン)の総和を求める処理を行う。
 4番目の処理では、自身のランを復号する際に残っているラン数を求める処理を行う。
 これら4つの処理の中で、計算に時間がかかる処理は1番目の段階である、TCとT1sを求める処理である。
In CAVLC, a quantized DCT coefficient is encoded for each 4 × 4 block to generate an encoded bit stream. When decoding the encoded bit stream that is the encoded data string, it can be performed by dividing it into the following four processes.
In the first process, the number of non-zero coefficients (TC: Total Coefficient) appearing in the 4 × 4 block and the number of consecutive ± 1 (T1s: Trailing ones) appearing in the 4 × 4 block are performed. .
In the second process, a process for obtaining a value (level value) of a coefficient other than 0 is performed.
In the third process, a process for obtaining the sum of the number of consecutive zero coefficients (runs) is performed.
In the fourth process, a process for obtaining the number of remaining runs when decoding its own run is performed.
Of these four processes, the process that takes time to calculate is the first stage, which is a process for obtaining TC and T1s.
 このようなCAVLCによる復号演算処理手法の関連技術として、例えば以下に示す特許文献1などが挙げられる。 As a related technique of such a decoding calculation processing method by CAVLC, for example, Patent Document 1 shown below can be cited.
 特許文献1では、図41及び図42に示すようなテーブルを用いてTCとT1sを求める処理を行う。図41は、H.264のNumVLC0テーブルである。NumVLC0テーブルはTCと、T1sとをキーとして、符号が割り振られている。また、図42は、特許文献1に開示の、図41のテーブルに基づいて構築されたテーブルである。 In Patent Document 1, processing for obtaining TC and T1s is performed using tables as shown in FIGS. FIG. It is a H.264 NumVLC0 table. The NumVLC0 table is assigned a code using TC and T1s as keys. FIG. 42 is a table constructed based on the table of FIG. 41 disclosed in Patent Document 1.
 特許文献1に開示された復号演算処理手法では、CAVLCで符号化されたTC、T1sを復号する際に、連続する0の数(プリフィックス長)とその後に続くバイナリコード(サフィックス)により内容が特定される、図42に示したテーブルを使用する。図42に示すテーブルの内容は、TC、T1sをペアとしたものである。 In the decoding calculation processing method disclosed in Patent Document 1, when decoding TC and T1s encoded by CAVLC, the content is specified by the number of consecutive zeros (prefix length) and the subsequent binary code (suffix). The table shown in FIG. 42 is used. The contents of the table shown in FIG. 42 are a pair of TC and T1s.
 復号の際には、復号処理を行うコンピュータは、まずプリフィックス長を求める。次に、プリフィックスに続くサフィックスを求め、プリフィックス長とサフィックスを用いてテーブルを参照し、TC、T1sを求める。
 この一連の処理においては、プリフィックス長やサフィックスを求めるために、ビットストリームから指定したビット幅のデータを切り出す操作(アンパッキング処理)が必要となる。アンパッキング処理を行う装置の一例が、特許文献2に記載されている。
At the time of decoding, a computer that performs decoding processing first obtains a prefix length. Next, a suffix following the prefix is obtained, and a table is referenced using the prefix length and the suffix to obtain TC and T1s.
In this series of processing, in order to obtain the prefix length and suffix, an operation (unpacking processing) for cutting out data having a specified bit width from the bit stream is required. An example of an apparatus that performs an unpacking process is described in Patent Document 2.
 図47は、特許文献2に開示された関連技術のプロセッサ1031に処理装置1032を組み込んだ構成を示す図である。
 このプロセッサ1031は、5段のパイプラインを有し、命令を取り込むIFステージ,この命令をデコードし、コアレジスタ(Core Reg)からデータを取り出すREGステージ、数値演算ユニット(ALU)によるEXEステージ、バス(BUS)を解してメモリ1033との間でデータを入出力するMEMステージ、コアレジスタ(Core Reg)にデータを書き戻すWBステージにより構成される。
 これにより命令、及びデータを順次転送して数値演算ユニット(ALU)により処理するようになされている。
 また、プロセッサ1031は、REGステージにそれぞれ専用レジスタ(Reg)1034、EXEステージに演算器1035を設け、これら専用レジスタ(Reg)1034、演算器1035による処理装置1032が追加されるようになされている。
 また、この追加の構成に対応して、プロセッサ1031は、専用レジスタ(Reg)1034から指定したビット幅のデータを切り出すアンパッキング命令が追加される。
FIG. 47 is a diagram illustrating a configuration in which a processing device 1032 is incorporated into a processor 1031 of related technology disclosed in Patent Document 2.
This processor 1031 has a five-stage pipeline, an IF stage for fetching instructions, a REG stage for decoding the instructions and fetching data from the core register (Core Reg), an EXE stage by a numerical arithmetic unit (ALU), a bus (BUS) and a MEM stage for inputting / outputting data to / from the memory 1033, and a WB stage for writing data back to the core register (Core Reg).
As a result, instructions and data are sequentially transferred and processed by a numerical operation unit (ALU).
Further, the processor 1031 is provided with a dedicated register (Reg) 1034 at the REG stage and a computing unit 1035 at the EXE stage, respectively, and a processing device 1032 by the dedicated register (Reg) 1034 and the computing unit 1035 is added. .
Corresponding to this additional configuration, the processor 1031 adds an unpacking instruction for cutting out data having a specified bit width from the dedicated register (Reg) 1034.
 また、特許文献3では、CAVLC部内のCAVLC処理部は、ストリームデータを格納したMビットバッファを有するデータアクセス回路に対して、所定の要求ビット数を付加したgetリクエストを発行し、データアクセス回路からデータを取得した上で「0係数」の個数を検出する。そして、CAVLC処理部は、不要なビットについては、ungetリクエストによりデータアクセス回路に返却する。
 同様に、CAVLC処理部は、ストリームデータを格納したMビットバッファを有するデータアクセス回路に対して、所定の要求ビット数を付加したgetリクエストを発行し、データ取得回路からデータを取得した上で「0係数」の連続個数を検出する。そして、不要なビットについては、ungetリクエストによりデータアクセス回路に返却する(特許文献3の段落番号0108~0114)。
 このように、CAVLC処理部は、データアクセス回路のストリームデータから「0係数」の個数や「0係数」の連続個数を検出する毎に逐次データを取得し、返却するという前記「データの切り出し」処理を行う。
特開2007-49670号公報 特許第3772976号 特開2007-304797号公報
Further, in Patent Document 3, the CAVLC processing unit in the CAVLC unit issues a get request with a predetermined number of requested bits to a data access circuit having an M-bit buffer storing stream data. After obtaining the data, the number of “0 coefficients” is detected. Then, the CAVLC processing unit returns unnecessary bits to the data access circuit by an unget request.
Similarly, the CAVLC processing unit issues a get request with a predetermined number of requested bits to a data access circuit having an M-bit buffer that stores stream data, acquires data from the data acquisition circuit, The number of consecutive “0 coefficients” is detected. Unnecessary bits are returned to the data access circuit by an unget request (paragraph numbers 0108 to 0114 in Patent Document 3).
As described above, the CAVLC processing unit sequentially obtains and returns data every time it detects the number of “0 coefficients” or the continuous number of “0 coefficients” from the stream data of the data access circuit. Process.
JP 2007-49670 A Japanese Patent No. 3772976 JP 2007-304797 A
 しかしながら、関連技術としての特許文献2に開示された処理装置においては、次のような課題がある。 However, the processing apparatus disclosed in Patent Document 2 as a related technique has the following problems.
 すなわち、第1の課題は、アンパッキング命令で指定するビットの切り出し幅を決めるために、複数サイクル数が必要となるということである。
 この問題が発生する原因は、ビットの切り出し幅がビットストリーム内のビットパターンに依存するために、ビットストリームからデータを読み出して、ビットパターンを調べなければならないことに起因する。
That is, the first problem is that a plurality of cycles are required to determine the cut-out width of the bit specified by the unpacking instruction.
The cause of this problem is that the bit cutout width depends on the bit pattern in the bit stream, so that data must be read from the bit stream and the bit pattern must be examined.
 また、特許文献1によるCAVLCにおける復号処理を、特許文献2のプロセッサで処理を行おうとすると、以下の第2の課題が生じる。
 すなわち、第2の課題は、復号結果を得るためのテーブル参照に必要なアドレス計算に、多くのサイクル数が必要となるということである。
 この問題が発生する原因は、復号結果を得るためのテーブル参照に必要なアドレスを求めるために、まず、プリフィックス長からローインデックスを、サフィックスからはコラムインデックスを計算し、さらに、ローインデックスとコラムインデックスからテーブルを参照する復号用アドレスを計算しなければならないことに起因する。
Further, when the decoding process in CAVLC according to Patent Document 1 is performed by the processor of Patent Document 2, the following second problem occurs.
That is, the second problem is that a large number of cycles are required for address calculation necessary for referring to a table for obtaining a decoding result.
The cause of this problem is to calculate the row index from the prefix length and the column index from the suffix in order to obtain the address necessary for the table reference to obtain the decoding result. This is because the address for decoding referring to the table must be calculated.
 第1及び第2の課題を、図48を用いて説明する。図48は、特許文献2に開示の処理装置に基づいて作成した、TC、T1sを復号する処理を示したタイムチャートである。
 まず、第1クロックから第5クロックにかけては、プロセッサはローインデックスとサフィックス長を求める処理を行う。
 具体的には、プロセッサがメモリからデータをロードし、プリフィックス長を計算し、求めたプリフィックス長からローインデックステーブルとサフィックス長テーブルを参照するアドレスを求め、ローインデックスとサフィックス長をテーブル参照により求める。
 次に、第6クロックから第8クロックにかけては、プロセッサはサフィックスを上記読み出したデータから切り出し、コラムインデックスを求める処理を行う。具体的には、ALUが上記読み出したデータの、プリフィックス部をマスクして消去し、データをシフトしてサフィックスのみを取り出し、コラムインデックスを計算する。
 第9クロックから第10クロックにかけては、プロセッサはTCとT1sの復号を行う。具体的には、数値演算ユニット(ALU)が上記までの処理で求めたローインデックスとコラムインデックスから復号用アドレスを計算し、そのアドレスを用いたロード処理によりTCとT1sを求める。
 最後に、第11クロックから第13クロックにかけて、プロセッサは、図47の専用レジスタ(Reg)1034を更新する処理を行う。
 具体的には、数値演算ユニット(ALU)がプリフィックス長とサフィックス長を加算して更新するビット量を計算し、ビット読み出し命令によって、専用レジスタ(Reg)1034を更新する。
 このように、特許文献2に開示の処理装置においては、全サイクル数の半分以上が、プリフィックス長の計算やアドレスの計算などにかかってしまう。
The first and second problems will be described with reference to FIG. FIG. 48 is a time chart showing a process of decoding TC and T1s created based on the processing apparatus disclosed in Patent Document 2.
First, from the first clock to the fifth clock, the processor performs a process for obtaining a row index and a suffix length.
Specifically, the processor loads data from the memory, calculates a prefix length, obtains an address referring to the row index table and the suffix length table from the obtained prefix length, and obtains the row index and the suffix length by referring to the table.
Next, from the sixth clock to the eighth clock, the processor cuts out the suffix from the read data and performs a process for obtaining a column index. Specifically, the ALU erases the read data by masking the prefix portion, shifts the data, extracts only the suffix, and calculates the column index.
From the ninth clock to the tenth clock, the processor decodes TC and T1s. Specifically, the arithmetic unit (ALU) calculates a decoding address from the row index and the column index obtained by the above processing, and obtains TC and T1s by load processing using the address.
Finally, from the 11th clock to the 13th clock, the processor performs a process of updating the dedicated register (Reg) 1034 in FIG.
Specifically, the arithmetic unit (ALU) adds the prefix length and the suffix length to calculate the amount of bits to be updated, and updates the dedicated register (Reg) 1034 by a bit read instruction.
As described above, in the processing device disclosed in Patent Document 2, more than half of the total number of cycles depends on the calculation of the prefix length and the address.
 また、特許文献3でもCAVLC処理部がデータの切り出しを逐次行う必要があったため、前記同様の課題が生じる。 Also in Patent Document 3, since the CAVLC processing unit needs to sequentially cut out data, the same problem as described above occurs.
 本発明の目的は、CAVLCのTC、T1sの符号化に代表される可変長符号の復号に必要なサイクル数を低減可能ならしめる復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラムを提供することにある。 An object of the present invention is to provide a decoding processing device, a processor, an electronic device, a decoding processing method, and a decoding processing program capable of reducing the number of cycles necessary for decoding a variable length code represented by TC and T1s encoding of CAVLC Is to provide.
 上記目的を達成するため、本発明の復号処理装置は、少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理装置であって、前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段と、前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御手段と、を含み、前記第2の制御手段が、前記復号用アドレスを生成する処理と、前記第1の制御手段に保持される前記可変長符号ビットストリームを更新する処理とを行うことを特徴としている。 In order to achieve the above object, a decoding processing apparatus of the present invention is a decoding processing apparatus that performs a process of decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix that follows the prefix. , Temporarily holding a part of the variable-length code bitstream, and controlling input / output processing for holding, and the variable-length code bitstream input from the first control means Based on the prefix and the suffix, a decoding address used for referring to a decoding table necessary for decoding is generated, and control information for updating the variable-length code bitstream to the first control means is provided. Second control means for supplying, wherein the second control means provides the address for decoding. A process of forming, and characterized by performing a process of updating the variable length code bit stream held in said first control means.
 本発明のプロセッサは、少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理装置を搭載したパイプライン処理を実行可能なプロセッサであって、プロセッサパイプライン処理におけるレジスタステージにおいて、前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段と、前記プロセッサパイプライン処理における実行ステージにおいて、前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新する制御情報を生成する第2の制御手段と、を含み、前記第2の制御手段が、前記復号用アドレスを生成する処理と、前記第1の制御手段の前記可変長符号ビットストリームを更新する処理とを行うことを特徴としている。 A processor according to the present invention is a processor capable of executing pipeline processing including a decoding processing device that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix following the prefix. In the register stage in the processor pipeline process, a part of the variable-length code bitstream is temporarily held, and a first control unit for controlling an input / output process for holding, and in the processor pipeline process, In the execution stage, based on the prefix and the suffix of the variable length code bitstream input from the first control means, a decoding address used for decoding table reference necessary for decoding is generated, and First control Second control means for generating control information for updating the variable-length code bitstream for a stage, wherein the second control means generates the decoding address, and the first control And a process of updating the variable-length code bitstream of the means.
 本発明の復号処理方法は、少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理方法であって、前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御をし、続いて、前記ビットストリーム一時保持部から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御をし、前記第2の制御をする際に、前記復号用アドレスを生成する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを行うことを特徴としている。 The decoding processing method of the present invention is a decoding processing method for performing processing for decoding a variable-length code bitstream that is an encoded data string including at least a prefix and a suffix following the prefix, and the variable-length code bitstream A first control for performing an input / output process for temporarily holding a part of the bit stream temporarily holding unit, and subsequently, the prefix of the variable length code bit stream input from the bit stream temporary holding unit and Based on the suffix, a decoding address used for referring to a decoding table necessary for decoding is generated, and control information for updating the variable-length code bitstream is supplied to the bitstream temporary holding unit. 2 and when performing the second control, the decoding add And generating a scan, and characterized by performing a process of updating the variable length code bit stream of the bit stream temporary storage unit.
 本発明の復号処理プログラムは、少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行うコンピュータが諸機能を実現可能な復号処理プログラムであって、前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御機能と、前記ビットストリーム一時保持部に保持された前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する制御情報を生成する第2の制御機能と、を含む機能を前記コンピュータに実現させ、前記第2の制御機能では、前記復号用アドレスを生成する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを行う機能を前記コンピュータに実現させることを特徴としている。 The decoding processing program of the present invention is a decoding processing program capable of realizing various functions by a computer that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix following the prefix. A first control function for performing an input / output process for temporarily holding a part of the variable length code bitstream in the bitstream temporary holding unit, and the variable length code bits held in the bitstream temporary holding unit Based on the prefix and the suffix of the stream, a decoding address used for referring to a decoding table necessary for decoding is generated, and control information for updating the variable-length code bitstream of the bitstream temporary holding unit is generated A second control function to In the second control function, the computer implements a function of performing the process of generating the decoding address and the process of updating the variable-length code bitstream of the bitstream temporary holding unit. It is characterized by letting.
 本発明によれば、プリフィックスとサフィックスとに基づいた復号用アドレスの生成処理と、可変長符号ビットストリームの更新処理とを行うことにより、次の復号に備えることができ、可変長符号の復号に必要なサイクル数を低減できる。 According to the present invention, a decoding address generation process based on a prefix and a suffix and a variable-length code bitstream update process can be performed to prepare for the next decoding, and for variable-length code decoding. The number of necessary cycles can be reduced.
 以下、本発明の実施形態の一例について、図面を参照して具体的に説明する。
〔第1の実施の形態〕
 (プロセッサの全体構成)
 先ず、本実施形態の係る復号処理装置を備えたプロセッサの具体的構成について、全体構成から説明し、続いて各部の詳細構成について説明することとする。図1は、本発明における第1実施形態に係る復号処理装置を備えたプロセッサの全体の概略構成の一例を示すブロック図である。
Hereinafter, an example of an embodiment of the present invention will be specifically described with reference to the drawings.
[First Embodiment]
(Overall processor configuration)
First, a specific configuration of a processor including a decoding processing apparatus according to the present embodiment will be described from the overall configuration, and then a detailed configuration of each unit will be described. FIG. 1 is a block diagram showing an example of an overall schematic configuration of a processor including a decoding processing device according to the first embodiment of the present invention.
 図1に示す本実施形態のプロセッサシステム1は、メモリ10と、メモリ10とバスBusを介して接続されたプロセッサ20とを有する。 The processor system 1 of the present embodiment shown in FIG. 1 includes a memory 10 and a processor 20 connected to the memory 10 via a bus Bus.
 本実施形態におけるプロセッサ20は、図47に示すプロセッサから処理装置1032に代えて、ビット格納器52、制御情報・ローインデックス生成器53、復号用アドレス生成器54を有する復号処理装置50(可変長符号復号装置)を備えている。 The processor 20 in the present embodiment replaces the processor shown in FIG. 47 with the processing device 1032, and a decoding processing device 50 (variable length) having a bit storage 52, a control information / row index generator 53, and a decoding address generator 54. A coding / decoding device).
 復号処理装置50は、少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号するものである。
 この復号処理装置50は、プロセッサパイプライン処理におけるREGステージにおいてビットストリームを格納し、このビットストリームを読み進める機能を持つビット格納器52と、プロセッサパイプライン処理におけるEXEステージにてローインデックス及びビット格納器52がバッファを制御するための情報を生成する制御情報・ローインデックス生成器53と、制御情報・ローインデックス生成器53から情報を受け取って、アドレスを生成する復号用アドレス生成器54と、を含む構成としている。
The decoding processing device 50 decodes a variable-length code bit stream that is an encoded data sequence including at least a prefix and a suffix subsequent to the prefix.
The decoding processing device 50 stores a bit stream in the REG stage in the processor pipeline process, and stores a bit index 52 and a bit index in the EXE stage in the processor pipeline process. A control information / row index generator 53 for generating information for the buffer 52 to control the buffer, and a decoding address generator 54 for receiving information from the control information / row index generator 53 and generating an address. It is configured to include.
 プロセッサ20は、復号処理装置50を搭載してパイプライン処理を実行可能なものであり、この構成では5段のパイプラインを有し、命令をIFユニット21に取り込むIFステージ、この命令をデコードし、コアレジスタ(Core Reg)22からデータを取り出すREGステージ、数値演算ユニット(ALU)23によるEXEステージ、バス(BUS)を介してメモリ10との間でデータを入出力するMEMステージ、コアレジスタ(Core Reg)22にデータを書き戻すWBステージでの処理をそれぞれ実行する。 The processor 20 is equipped with a decoding processing device 50 and can execute pipeline processing. In this configuration, the processor 20 has a five-stage pipeline, an IF stage for fetching an instruction into the IF unit 21, and decoding the instruction. REG stage for fetching data from the core register (Core Reg) 22, EXE stage by the numerical operation unit (ALU) 23, MEM stage for inputting / outputting data to / from the memory 10 via the bus (BUS), core register ( (Core Reg) 22 to execute the processing at the WB stage for writing back the data.
 ここで、前記IFステージは、Instruction Fetchステージ(インストラクションフェッチステージ)の略称であり、前記IFステージでは、IFユニット(命令メモリ)21が、メモリ10から命令を取り込む処理を行う。
 前記REGステージは、Registerステージ(レジスタステージ)の略称であり、前記REGステージでは、数値演算ユニット(ALU)23が、コアレジスタ(Core Reg)22からデータを取り出す処理を行う。
 前記EXEステージは、Executionステージ(実行ステージ)の略称であり、前記EXEステージでは、数値演算ユニット(ALU)23が演算処理を行う。
 前記MEMステージは、Memoryステージ(メモリステージ)の略称であり、前記MEMステージでは、Load/Store Unit24が、バス(BUS)を介してメモリ10との間でデータを入出力する処理を行う。
 前記WBステージは、Write Backステージ(ライトバックステージ)の略称であり、前記WBステージでは、コアレジスタ(Core Reg)22がデータを格納する処理を行う。
 以上の各ステージに命令、及びデータを順次転送して、数値演算ユニット(ALU)23による処理が実行される。
Here, the IF stage is an abbreviation for Instruction Fetch stage (instruction fetch stage). In the IF stage, the IF unit (instruction memory) 21 performs processing for fetching an instruction from the memory 10.
The REG stage is an abbreviation for Register stage (register stage). In the REG stage, the numerical operation unit (ALU) 23 performs a process of extracting data from the core register (Core Reg) 22.
The EXE stage is an abbreviation for an execution stage (execution stage), and in the EXE stage, a numerical operation unit (ALU) 23 performs arithmetic processing.
The MEM stage is an abbreviation for a Memory stage (memory stage). In the MEM stage, the Load / Store Unit 24 performs a process of inputting / outputting data to / from the memory 10 via a bus (BUS).
The WB stage is an abbreviation for the Write Back stage (write back stage), and in the WB stage, the core register (Core Reg) 22 performs a process of storing data.
Instructions and data are sequentially transferred to each of the above stages, and processing by the numerical operation unit (ALU) 23 is executed.
 さらに、プロセッサ20は、各ステージの境界毎にプロセッサパイプラインレジスタ31A、31B、31C、31Dをそれぞれ有する。 Furthermore, the processor 20 has processor pipeline registers 31A, 31B, 31C, and 31D for each stage boundary.
 (ビット格納器の詳細構成)
 図2を用いて、図1に示すビット格納器52について詳細を説明する。
 ビット格納器52は、ビットバッファコントローラ61と、ビットバッファコントローラ61により制御されるビットバッファ62とを有している。
(Detailed configuration of bit storage)
Details of the bit storage 52 shown in FIG. 1 will be described with reference to FIG.
The bit storage 52 has a bit buffer controller 61 and a bit buffer 62 controlled by the bit buffer controller 61.
 ビットバッファコントローラ61は、IFステージから受け渡される入力信号INST_CNTLにより動作する。
 INST_CNTLがビットバッファ62の初期化を示す命令である場合、ビットバッファコントローラ61は、前記命令内に示されたアドレスを用いて、メモリ10からデータを読み込み、その読み込んだデータをビットバッファ62に格納する。
The bit buffer controller 61 operates according to an input signal INST_CNTL transferred from the IF stage.
When INST_CNTL is an instruction indicating initialization of the bit buffer 62, the bit buffer controller 61 reads data from the memory 10 using the address indicated in the instruction and stores the read data in the bit buffer 62. To do.
 さらに、ビットバッファコントローラ61は、メモリ10から読んだデータ分だけ命令内で示されたアドレスを進め、そのアドレスまで読み進めたビットストリーム(データ)をビットバッファ62に格納する。
 INST_CNTLが可変長符号の復号処理を行う命令である場合、ビットバッファコントローラ61は、ビットバッファ62から読み出したデータREG_DATAを出力すると同時に、そのデータREG_DATAに出力ビット幅BIT_WIDTHを付加して出力する。
Further, the bit buffer controller 61 advances the address indicated in the instruction by the data read from the memory 10 and stores the bit stream (data) read up to that address in the bit buffer 62.
When INST_CNTL is an instruction to perform variable length code decoding processing, the bit buffer controller 61 outputs the data REG_DATA read from the bit buffer 62 and, at the same time, adds the output bit width BIT_WIDTH to the data REG_DATA.
 また、ビットバッファコントローラ61は、制御情報・ローインデックス生成器53内のテーブルを選択するSEL_TAB信号を出力する。この出力SEL_TABには、INST_CNTLの復号処理命令にて指定されたレジスタから読み出された値が用いられる。 Also, the bit buffer controller 61 outputs a SEL_TAB signal for selecting a table in the control information / row index generator 53. As the output SEL_TAB, a value read from a register designated by a decoding processing instruction of INST_CNTL is used.
 ビットバッファコントローラ61は、ビットバッファ62を更新する命令INST_UPDを受け取ると、INST_UPDにて指定されたビット数だけ、ビットバッファ62内に格納されているビットストリームのデータをシフトさせることにより、ビットバッファ62内に格納されるビットストリームのデータを更新する。 When the bit buffer controller 61 receives the instruction INST_UPD for updating the bit buffer 62, the bit buffer controller 61 shifts the data of the bit stream stored in the bit buffer 62 by the number of bits specified by the INST_UPD. The data of the bit stream stored in is updated.
 ビットバッファコントローラ61がビットバッファ62からデータを読み出す際、ビットバッファコントローラ61が、ビットバッファ62に格納されたデータのビット数が少ないと判断した場合、ビットバッファコントローラ61は、前記少ないと判断したビット数のデータをビットバッファ62に補充することにより、ビットの補充処理を行う。
 ここで、ビット数が少ないと判断する場合とは、ビットバッファ62に書き込むデータのビット数が読み出すデータのビット数より少ない場合をいう。その判断条件は、特定期間におけるビットバッファ62のデータの格納ビット数が、ビットバッファ62の格納可能容量の例えば3分の1以下にすることが好ましい。
 より具体的には、例えば96ビット等のビットバッファに対して例えば32ビット以下等となる場合にビット補充を行う。
 ビットバッファコントローラ61がビット補充処理を行うことにより、ビットバッファ62からのデータ(可変長ビットストリーム)の読み出し処理が停止することを防止し、復号処理における高速化に寄与できる。
 ビット補充処理を行う際、ビットバッファコントローラ61は初期化を行う命令を実行した際に保持したアドレスを用いて命令MEM_LOADを発行し、メモリ10から新しいビットデータを取得する。メモリ10から読み出されたビットデータは、図2に示すMEM_STとしてビットバッファ62に入力して、そのビットバッファ62に格納される。
When the bit buffer controller 61 reads data from the bit buffer 62, the bit buffer controller 61 determines that the number of bits of data stored in the bit buffer 62 is small. A bit replenishment process is performed by replenishing the bit buffer 62 with a number of data.
Here, the case where it is determined that the number of bits is small means a case where the number of bits of data written to the bit buffer 62 is smaller than the number of bits of data to be read. The determination condition is that the number of bits stored in the bit buffer 62 in the specific period is preferably, for example, one third or less of the storable capacity of the bit buffer 62.
More specifically, bit supplementation is performed when the bit buffer is 96 bits or less, for example, 32 bits or less.
When the bit buffer controller 61 performs the bit replenishment process, it is possible to prevent the reading process of data (variable length bit stream) from the bit buffer 62 from being stopped, and to contribute to the speedup in the decoding process.
When performing the bit replenishment process, the bit buffer controller 61 issues an instruction MEM_LOAD using the address held when the instruction for initialization is executed, and acquires new bit data from the memory 10. The bit data read from the memory 10 is input to the bit buffer 62 as MEM_ST shown in FIG.
 (制御情報・ローインデックス生成器の詳細構成)
 図3に、図1の制御情報・ローインデックス生成器53の詳細な構成を示す。
 制御情報・ローインデックス生成器53は図3に示すように、4段のパイプライン構成となっており、ビットバッファ62から読み出したデータREG_DATAのプリフィックス長を計数するプリフィックス計数器71と、前記計数したプリフィックス長から後述のテーブルを参照するためのアドレスを生成するプリフィックスアドレス生成器72と、ローインデックスを格納した複数のテーブルからなるローインデックステーブル(第1テーブル)群73と、サフィックス長を格納した複数のテーブルからなるサフィックス長テーブル(第2テーブル)群74と、ローインデックステーブル群73のうちの選択されたテーブルからプリフィックスアドレスに基づいて対応するローインデックスを取得する取得部77と、サフィックス長テーブル群74のうちの選択されたテーブルからプリフィックスアドレスに基づいて対応するサフィックス長を取得する取得部78と、プリフィックス長と取得部78にて取得されたサフィックス長を加算する加算器76と、プリフィックス長とサフィックス長とビットバッファ62から読み出したデータREG_DATAと、入力したBIT_WIDTHから制御情報の一例である図2に示すビットバッファ62を更新する命令を生成する更新命令生成器75とを有している。なお、ローインデックステーブル(第1テーブル)群73とサフィックス長テーブル(第2テーブル)群74とは記憶部に記憶されており、前記取得部77と78は、前記記憶部にそれぞれアクセスすることにより、前記ローインデックステーブル(第1テーブル)群73からの前記ローインデックスと前記サフィックス長テーブル(第2テーブル)群74からの前記サフィックス長をそれぞれ取得する。制御情報・ローインデックス生成器53は、制御情報とローインデックスとを生成する。
(Detailed configuration of control information / low index generator)
FIG. 3 shows a detailed configuration of the control information / row index generator 53 of FIG.
As shown in FIG. 3, the control information / row index generator 53 has a four-stage pipeline structure, and the prefix counter 71 that counts the prefix length of the data REG_DATA read from the bit buffer 62, and the count A prefix address generator 72 for generating an address for referring to a table to be described later from the prefix length, a row index table (first table) group 73 composed of a plurality of tables storing row indexes, and a plurality of storing suffix lengths A suffix length table (second table) group 74 consisting of the following tables, an acquisition unit 77 for acquiring a corresponding row index from a selected table of the row index table group 73 based on a prefix address, and a suffix length table An acquisition unit 78 that acquires a corresponding suffix length from a selected table of the group of colors 74 based on a prefix address, an adder 76 that adds the prefix length and the suffix length acquired by the acquisition unit 78, and a prefix The update instruction generator 75 generates an instruction to update the bit buffer 62 shown in FIG. 2 as an example of control information from the length, suffix length, data REG_DATA read from the bit buffer 62, and input BIT_WIDTH. . The row index table (first table) group 73 and the suffix length table (second table) group 74 are stored in the storage unit, and the acquisition units 77 and 78 access the storage unit respectively. The row index from the row index table (first table) group 73 and the suffix length from the suffix length table (second table) group 74 are respectively acquired. The control information / row index generator 53 generates control information and a row index.
 さらに、制御情報・ローインデックス生成器53は、各パイプラインステージの境界毎にパイプラインレジスタ81A、81B、81Cをそれぞれ有する。 Further, the control information / row index generator 53 has pipeline registers 81A, 81B, 81C for each boundary of the pipeline stages.
 図3の装置の動作について説明する。
 制御情報・ローインデックス生成器53において、1段目のパイプラインステージにおいて、ビットバッファ62から読み出されたデータREG_DATAがプリフィックス計数器71に入力すると、プリフィックス計数器71は、前記REG_DATAのプリフィックス長を計数する。プリフィックス計数器71は、前記計数したREG_DATAのプリフィックス長をパイプラインレジスタ81Aに出力する。
The operation of the apparatus shown in FIG. 3 will be described.
In the control information / row index generator 53, when the data REG_DATA read from the bit buffer 62 is input to the prefix counter 71 in the first pipeline stage, the prefix counter 71 sets the prefix length of the REG_DATA. Count. The prefix counter 71 outputs the counted prefix length of REG_DATA to the pipeline register 81A.
 2段目のパイプラインステージにおいて、制御情報・ローインデックス生成器53は次の動作を行う。すなわち、計数したプリフィックス長がパイプラインレジスタ81Aを介してプリフィックスアドレス生成器72に入力すると、プリフィックス生成器72は、前記計数されたプリフックス長に基づいて、ローインデックステーブル群73及びサフィックス長テーブル群74を参照するアドレスを計算する。プリフィックス生成器72は、前記アドレスをパイプラインレジスタ81Bに出力する。 In the second pipeline stage, the control information / low index generator 53 performs the following operation. That is, when the counted prefix length is input to the prefix address generator 72 via the pipeline register 81A, the prefix generator 72 uses the row index table group 73 and the suffix length table group 74 based on the counted prefix length. Calculate the address referring to. The prefix generator 72 outputs the address to the pipeline register 81B.
 3段目のパイプラインステージにおいて、制御情報・ローインデックス生成器53は次の動作を行う。すなわち、前記計算されたアドレスの情報がパイプラインレジスタ81Bを介して取得部77と取得部78とに入力すると、前記取得部77は、ビットバッファコントローラ61からのテーブル選択信号SEL_TABと前記アドレスとに基づいて、ローインデックステーブル群73にアクセスしてローインデックスを得る。同様に、前記取得部78は、ビットバッファコントローラ61からのテーブル選択信号SEL_TABと前記アドレスとに基づいて、サフィックス長テーブル群74にアクセスしてサフィックス長を得る。
 前記取得部77は、前記取得したローインデックスをパイプラインレジスタ81Cに通してROW_INDEXとして出力する。
In the third pipeline stage, the control information / row index generator 53 performs the following operation. That is, when the calculated address information is input to the acquisition unit 77 and the acquisition unit 78 via the pipeline register 81B, the acquisition unit 77 receives the table selection signal SEL_TAB from the bit buffer controller 61 and the address. Based on this, the row index table group 73 is accessed to obtain a row index. Similarly, the acquisition unit 78 obtains a suffix length by accessing the suffix length table group 74 based on the table selection signal SEL_TAB from the bit buffer controller 61 and the address.
The acquisition unit 77 passes the acquired row index through the pipeline register 81C and outputs it as ROW_INDEX.
 4段目のパイプラインステージにおいて、制御情報・ローインデックス生成器53は次の動作を行う。すなわち、加算器76は、前記プリフィックス計数器71が計数したプリフィックス長と、前記取得部78が取得したサフィックス長とを得て、前記プリフィックス長と前記サフィックス長とを加算して、復号する符号の符号長COD_WIDTHを得る。 In the fourth pipeline stage, the control information / low index generator 53 performs the following operation. That is, the adder 76 obtains the prefix length counted by the prefix counter 71 and the suffix length acquired by the acquisition unit 78, adds the prefix length and the suffix length, and decodes the code. The code length COD_WIDTH is obtained.
 次に、制御情報・ローインデックス生成器53は次の動作を行う。すなわち、更新命令生成器75は、前記取得部78が取得したサフィックス長と、前記プリフィックス計数器71が計数したプリフィックス長と、前記ビットバッファ62から読み出されたデータREG_DATAと、前記ビットバッファコントローラ61から出力された出力ビット幅BIT_WIDTHとを得て、これらの情報に基づいて、図2のビットバッファ62を更新する命令INST_UPDを生成する。 Next, the control information / low index generator 53 performs the following operation. That is, the update instruction generator 75 includes the suffix length acquired by the acquisition unit 78, the prefix length counted by the prefix counter 71, the data REG_DATA read from the bit buffer 62, and the bit buffer controller 61. And an instruction INST_UPD for updating the bit buffer 62 of FIG. 2 is generated on the basis of the output bit width BIT_WIDTH output from.
 ローインデックステーブル群73の内容は、命令UPD_ROWにより更新される。命令UPD_ROWが実行されると、REGステージにおいて、コアレジスタ(Core Reg)の中から命令内で指定したレジスタのデータが読み出され、テーブルを更新する内容と、更新するテーブル、及び更新する位置を示すアドレスのデータが得られる。 The contents of the row index table group 73 are updated by the instruction UPD_ROW. When the instruction UPD_ROW is executed, the register data specified in the instruction is read from the core register (Core Reg) in the REG stage, and the contents to be updated, the table to be updated, and the position to be updated are displayed. Data at the indicated address is obtained.
 続くEXEステージにおいて命令UPD_ROWに基づいて、REGステージで読み出したデータを用いてローインデックステーブルを更新する。 In the subsequent EXE stage, based on the instruction UPD_ROW, the row index table is updated using the data read in the REG stage.
 また、サフィックス長テーブル群74は、命令UPD_SUFに基づいて、前記ローインデックステーブル群73と同様の方法で更新される。 Also, the suffix length table group 74 is updated in the same manner as the row index table group 73 based on the instruction UPD_SUF.
 (復号用アドレス生成器の詳細構成)
 図4に、図1の復号用アドレス生成器54の詳細を示す。
 図4に示す復号用アドレス生成器54は、REG_DATA、COD_WIDTH、BIT_WIDTHを入力として、REG_DATAのビットを調整してコラムインデックスを生成するビット調整・コラムインデックス生成器91と、生成されたコラムインデックスと入力したROW_INDEXを加算する加算器92とから構成され、復号用アドレスADDRESSを生成して出力する。
(Detailed configuration of decoding address generator)
FIG. 4 shows details of the decoding address generator 54 of FIG.
The decoding address generator 54 shown in FIG. 4 receives REG_DATA, COD_WIDTH, and BIT_WIDTH, adjusts the bits of REG_DATA to generate a column index, and generates a column index and input. The adder 92 adds the ROW_INDEX, and generates and outputs a decoding address ADDRESS.
 ここで、ビット調整・コラムインデックス生成器91は、図5のフローチャートに記載された処理を行う。
 ビット調整・コラムインデックス生成器91は、まず図5のステップS101において、COD_WIDTH(プリフィックス長とサフィックス長とを加算したもの)とBIT_WIDTH(ビットバッファから出力される可変長符号ビットストリームのビット数)の差分を求める(差分算出ステップないしは差分算出機能)。
 ここでは結果をXとする。
Here, the bit adjustment / column index generator 91 performs the processing described in the flowchart of FIG.
First, in step S101 of FIG. 5, the bit adjustment / column index generator 91 calculates COD_WIDTH (added prefix length and suffix length) and BIT_WIDTH (number of bits of the variable length code bit stream output from the bit buffer). The difference is obtained (difference calculating step or difference calculating function).
Here, the result is X.
 次に、ビット調整・コラムインデックス生成器91は、ステップS102において、REG_DATAをXだけ右シフトする(プリフィックス及びサフィックスデータ抽出ステップないしはプリフィックス及びサフィックスデータ抽出機能)。
 ここで、結果をSH_DATAとする。これにより、ビット調整を行うことができる。
Next, the bit adjustment / column index generator 91 right-shifts REG_DATA by X in step S102 (prefix and suffix data extraction step or prefix and suffix data extraction function).
Here, the result is SH_DATA. Thereby, bit adjustment can be performed.
 最後に、ビット調整・コラムインデックス生成器91は、ステップS103において、SH_DATAからコラムインデックスCOL_INDEXを求めて出力する(コラムインデックス算出ステップないしはコラムインデックス算出機能)。
 ビット調整・コラムインデックス生成器91は、ビット調整を行い、これに加えて、ビット調整・コラムインデックス生成器91は、コラムインデックスを生成する。
Finally, the bit adjustment / column index generator 91 obtains and outputs the column index COL_INDEX from SH_DATA in step S103 (column index calculation step or column index calculation function).
The bit adjustment / column index generator 91 performs bit adjustment, and in addition to this, the bit adjustment / column index generator 91 generates a column index.
 ここで、本実施の形態のビット格納器52は、「第1の制御手段」の一例ということもできる。さらに、本実施の形態の制御情報・ローインデックス生成器53と復号用アドレス生成器54と生成器用パイプラインレジスタ55とにより、「第2の制御手段51」の一例を構成することもできる。 Here, the bit storage 52 of the present embodiment can also be referred to as an example of “first control means”. Furthermore, the control information / row index generator 53, the decoding address generator 54, and the generator pipeline register 55 of the present embodiment may constitute an example of the “second control means 51”.
 また、本実施の形態のビットバッファ62は、「ビットストリーム一時保持部」の一例ということもできる。さらに、本実施の形態のビットバッファコントローラ61は、「ビット制御部」の一例ということもできる。
 さらに、本実施の形態の制御情報・ローインデックス生成器53は、「第1の生成制御部」の一例ということもできる。また、本実施の形態の復号用アドレス生成器54は、「第2の生成制御部」の一例ということもできる。
The bit buffer 62 of the present embodiment can also be referred to as an example of a “bitstream temporary storage unit”. Furthermore, the bit buffer controller 61 of the present embodiment can also be referred to as an example of a “bit control unit”.
Furthermore, the control information / row index generator 53 of the present embodiment can also be said to be an example of a “first generation control unit”. The decoding address generator 54 according to the present embodiment can also be said to be an example of a “second generation control unit”.
 さらにまた、本実施の形態の取得部77及び取得部78により、「テーブル情報取得部」の一例を構成することもできる。さらに、本実施の形態の更新命令生成器75は、「更新命令生成部」の一例ということもできる。また、本実施の形態のプリフィックス計数器71は、「プリフィックス計数部」の一例ということもできる。さらに、本実施の形態のプリフィックスアドレス生成器72は、「プリフィックスアドレス計算部」の一例ということもできる。 Furthermore, an example of a “table information acquisition unit” can be configured by the acquisition unit 77 and the acquisition unit 78 of the present embodiment. Furthermore, the update instruction generator 75 of the present embodiment can also be said to be an example of an “update instruction generator”. Further, the prefix counter 71 of the present embodiment can also be said to be an example of a “prefix counter”. Furthermore, the prefix address generator 72 according to the present embodiment can be said to be an example of a “prefix address calculation unit”.
 さらに、本実施の形態のビット調整・コラムインデックス生成器91は、「コラムインデックス生成部」の一例ということもできる。また、本実施の形態の加算器92は、「加算部」の一例ということもできる。 Furthermore, the bit adjustment / column index generator 91 of the present embodiment can also be referred to as an example of a “column index generation unit”. Further, the adder 92 of the present embodiment can also be referred to as an example of an “adder”.
 この「第1の制御手段」は、前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御することができる。 This “first control means” can temporarily hold a part of the variable-length code bitstream and can control input / output processing for holding it.
 また、「第2の制御手段」は、前記プロセッサパイプライン処理における実行ステージにおいて、前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新するための制御情報を供給することができる。この場合、前記第2の制御手段が、前記復号用アドレスを生成する処理と、前記第1の制御手段に保持される前記可変長符号ビットストリームを更新する処理とを行うことができる。 Further, the “second control unit” performs decoding based on the prefix and the suffix of the variable-length code bitstream input from the first control unit in the execution stage in the processor pipeline processing. A decoding address used for referring to a necessary decoding table can be generated, and control information for updating the variable-length code bitstream can be supplied to the first control means. In this case, the second control unit can perform a process of generating the decoding address and a process of updating the variable length code bitstream held in the first control unit.
 さらに、前記第2の制御手段は、前記復号用アドレスを生成する処理と、前記第1の制御手段に保持される前記可変長符号ビットストリームを更新する処理とを同時に行うことが好ましい。
 その理由は、各処理を同時に行うことにより、各処理を逐次的に行う場合に比してサイクル数が低減し、処理速度の向上が図れるからである。
 ここで、複数の処理を「同時に行う」とは、複数の処理を並列的に行う場合を含む。さらに、複数の処理を「同時に行う」場合には、コンピュータの処理ライクに「擬似的に並行して行う」場合を含むことができる。
 また、複数の処理を同時に行う場合に限らず、複数の処理が同時にスタートし、各処理終了のタイミングがそれぞれ異なるようしてもよい。
 さらには、各処理の各スタートのタイミングがそれぞれ異なり、各処理の各終了のタイミングがそれぞれ異なる場合であってもよい。
 さらにまた、各処理は逐次実行であってもよい。
 以降、本明細書における「同時に行う」ことが可能な制御では、いま述べた種々の形態の制御手法を包含することもできるものとする。
Furthermore, it is preferable that the second control unit simultaneously performs the process of generating the decoding address and the process of updating the variable length code bitstream held in the first control unit.
The reason is that by performing each process simultaneously, the number of cycles is reduced as compared with the case where each process is performed sequentially, and the processing speed can be improved.
Here, “simultaneously performing” a plurality of processes includes a case where a plurality of processes are performed in parallel. Furthermore, a case where a plurality of processes are performed “simultaneously” can include a case where “a process is performed in a pseudo manner” in a process like a computer.
Further, the present invention is not limited to the case where a plurality of processes are performed simultaneously, and a plurality of processes may be started at the same time, and the timings at which each process ends may differ.
Furthermore, the start timing of each process may be different, and the end timing of each process may be different.
Furthermore, each process may be executed sequentially.
Hereinafter, the control that can be performed “simultaneously” in the present specification can include the various control methods described above.
 このようにして、先ず、プロセッサのビット格納器52が前記可変長符号ビットストリームの一部を保持する処理を行う。 Thus, first, the bit storage 52 of the processor performs a process of holding a part of the variable length code bit stream.
 そして、プロセッサの制御情報・ローインデックス生成器53(第1の生成制御部)が、前記プロセッサパイプライン処理における実行ステージにおいて、前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを、ローインデックステーブルを参照することにより生成するとともに、プリフィックス長に対応したサフィックス長をサフィックス長テーブルを参照することにより生成する。
 さらに、プロセッサの制御情報・ローインデックス生成器53が、前記プロセッサパイプライン処理における実行ステージにおいて、これらを生成した後に前記制御情報の一例であるビット格納器52内の可変長符号ビットストリームを更新する更新命令を生成する。
Then, the control information / row index generator 53 (first generation control unit) of the processor sets the decoding address based on the prefix of the variable-length code bitstream in the execution stage in the processor pipeline processing. A row index to be obtained is generated by referring to the row index table, and a suffix length corresponding to the prefix length is generated by referring to the suffix length table.
Further, the control information / row index generator 53 of the processor updates the variable length code bit stream in the bit storage 52 as an example of the control information after generating them in the execution stage in the processor pipeline processing. Generate update instructions.
 次に、プロセッサの復号用アドレス生成器54(第2の生成制御部)が、前記プロセッサパイプライン処理における実行ステージにおいて、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する。 Next, the decoding address generator 54 (second generation control unit) of the processor generates a column index for obtaining the decoding address from the suffix length in the execution stage in the processor pipeline processing. The decoding address is generated based on the column index and the row index.
 ここで、前記制御情報・ローインデックス生成器53は、前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御部における復号用アドレスを生成する処理と、前記第1の制御手段における前記可変長符号ビットストリームを更新する処理とを同時に(単位クロック期間に並行して)実行させることができる。 Here, the control information / row index generator 53 generates a decoding address in the second generation control unit after generating the row index and the suffix length; The process of updating the variable-length code bitstream can be executed simultaneously (in parallel with the unit clock period).
 また、前記制御情報・ローインデックス生成器53内では、前記プリフィックス長に応じたプリフィックスアドレスとローインデックスとを格納した第1テーブル(ローインデックステーブル)と、前記プリフィックス長に応じたプリフィックスアドレスとサフィックス長とを格納した第2テーブル(サフィックス長テーブル)と、を有することができる。 In the control information / row index generator 53, a first table (row index table) storing a prefix address and a row index according to the prefix length, and a prefix address and a suffix length according to the prefix length are stored. And a second table (suffix length table).
 この場合、前記制御情報・ローインデックス生成器53内ではプリフィックス計数器71が、プロセッサパイプライン処理における実行ステージ内であって、インデックス生成パイプライン処理における第1ステージにて、前記第1の制御手段から読み出された前記可変長符号ビットストリームの前記プリフィックス長を計数する。 In this case, in the control information / row index generator 53, the prefix counter 71 is in the execution stage in the processor pipeline processing, and the first control means in the first stage in the index generation pipeline processing. The prefix length of the variable-length code bit stream read from is counted.
 そして、前記制御情報・ローインデックス生成器53内ではプリフィックスアドレス生成器72が、前記インデックス生成パイプライン処理における第2ステージにて、前記プリフィックス計数部にて計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算する。 Then, in the control information / row index generator 53, a prefix address generator 72, in the second stage in the index generation pipeline process, the first table from the prefix length counted by the prefix counting unit, A prefix address for referring to the second table is calculated.
 さらに、前記制御情報・ローインデックス生成器53内では取得部77、78が、前記インデックス生成パイプライン処理における第3ステージにて、前記プリフィックスアドレス計算部にて求めた前記プリフィックスアドレスを用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得する。 Further, in the control information / row index generator 53, the acquisition units 77 and 78 use the prefix address obtained by the prefix address calculation unit in the third stage in the index generation pipeline processing, and Each of the first table and the second table is referred to, and the corresponding row index and the suffix length are obtained.
 また、前記制御情報・ローインデックス生成器53内では更新命令生成器75が前記インデックス生成パイプライン処理における第4ステージにて、前記取得部77、78にて取得された前記サフィックス長と前記プリフィックス計数部にて計数した前記プリフィックス長とビットバッファ62から読み出したデータREG_DATAと前記ビットバッファコントローラ61から出力された出力ビット幅BIT_WIDTHに基づいて、前記更新する制御情報である更新命令を生成する。 In the control information / row index generator 53, the update instruction generator 75 performs the suffix length and prefix count acquired by the acquisition units 77 and 78 in the fourth stage of the index generation pipeline processing. Based on the prefix length counted in the unit, the data REG_DATA read from the bit buffer 62, and the output bit width BIT_WIDTH output from the bit buffer controller 61, an update command which is the control information to be updated is generated.
 さらに、復号用アドレス生成器54のビット調整・コラムインデックス生成器91は、前記サフィックス長に基づいて前記コラムインデックスを生成し、加算器92は、前記コラムインデックスと前記ローインデックスとを加算して復号用アドレスとする。 Further, the bit adjustment / column index generator 91 of the decoding address generator 54 generates the column index based on the suffix length, and the adder 92 adds the column index and the row index to decode. Address.
 ここで、前記「第1の制御手段」は、前記可変長符号ビットストリームを一時保持するビットストリーム一時保持部と、前記ビットストリーム一時保持部における前記可変長符号ビットストリームを入出力制御するビット制御部と、を含むことができる。
 この場合、前記ビット制御部が、前記ビットストリーム一時保持部にて保持した前記可変長符号ビットストリームから予め決められたビット数のビットデータを読み出し、読み出し後の残りビット数が少ない場合に、新たなデータを保持した前記可変長符号ビットストリームの一部の末尾に連接して格納するビット補充機能と、前記更新する制御情報である更新命令に基づいて保持した前記可変長符号ビットストリームを更新する処理を行う更新処理機能と、を有することができる。
Here, the “first control means” includes a bit stream temporary holding unit that temporarily holds the variable length code bit stream, and bit control that performs input / output control of the variable length code bit stream in the bit stream temporary holding unit. Parts.
In this case, when the bit control unit reads bit data having a predetermined number of bits from the variable-length code bit stream held by the bit stream temporary holding unit, and the remaining number of bits after reading is small, A bit replenishment function for concatenating and storing a part of the variable-length code bitstream holding the correct data, and updating the variable-length code bitstream held based on the update command that is the control information to be updated And an update processing function for performing processing.
 さらに、前記第1テーブル及び前記第2テーブルは、コンテキスト適応型可変長符号化方式における復号用NumVLCテーブルの種類に応じた複数のテーブルを各々有することができる。
 この場合、前記第1の制御手段が、前記種類を選択するテーブル選択制御情報を生成して前記第1の生成制御部(制御情報・ローインデックス生成器)に対して供給することができる。また、前記テーブル情報取得部が、前記テーブル選択制御情報に基づいて、前記第1のテーブルにおける前記複数のテーブルの中からいずれか一つを選択するとともに、前記第2のテーブルにおける前記複数のテーブルの中からいずれか一つを選択することができる。
Furthermore, the first table and the second table may each include a plurality of tables corresponding to the type of decoding NumVLC table in the context adaptive variable length coding scheme.
In this case, the first control means can generate table selection control information for selecting the type and supply it to the first generation control unit (control information / row index generator). In addition, the table information acquisition unit selects one of the plurality of tables in the first table based on the table selection control information, and the plurality of tables in the second table Any one can be selected.
 以上のように本実施の形態によれば、プリフィックスに基づいた復号用アドレスの生成処理と、ビット格納制御手段の更新処理とを同時に行え、次の復号に備えることができ、可変長符号の復号に必要なサイクル数を低減できる。 As described above, according to the present embodiment, the decoding address generation process based on the prefix and the update process of the bit storage control unit can be performed at the same time, and preparation for the next decoding can be performed. Can reduce the number of cycles required.
 より具体的には、第1の効果は、プリフィックス長、サフィックス長、ビットバッファ62から読み出したデータREG_DATAに基づいたビットバッファの更新を復号用アドレスの生成と同時に行え、次の復号に備えることができることである。 More specifically, the first effect is that the update of the bit buffer based on the prefix length, the suffix length, and the data REG_DATA read from the bit buffer 62 can be performed simultaneously with the generation of the decoding address to prepare for the next decoding. It can be done.
 その理由は、本発明の可変長復号装置内に、プリフィックス長とサフィックス長とビットバッファ62から読み出したデータREG_DATAからビットバッファを更新する命令を生成する更新命令装置を設けたことにより、プリフィックス長、サフィックス長が判明した後、ビットバッファの更新を復号用アドレス生成と同時に行うことができるためである。 The reason for this is that by providing an update instruction device for generating an instruction for updating the bit buffer from the prefix length, the suffix length, and the data REG_DATA read from the bit buffer 62 in the variable length decoding device of the present invention, This is because the bit buffer can be updated simultaneously with the generation of the decoding address after the suffix length is known.
 第2の効果は、可変長符号の復号に必要なサイクル数を低減でき、復号処理速度の高速化を図ることができる。 The second effect is that the number of cycles required for decoding the variable length code can be reduced, and the decoding processing speed can be increased.
 その理由は、ビットストリームのビットパターンを自動で調べてプリフィックス長、サフィックス、復号用アドレスを求める回路を設けたことにより、データの読み出しのビットパターンの調査に必要なサイクル数が低減されるからである。
 すなわち、ビットストリーム内のビットパターンによって、アンパッキング命令で指定するビット幅を自動的に決定し、符号コードを復号するためのテーブル参照で使用するアドレスを生成できる。
The reason for this is that by providing a circuit that automatically checks the bit pattern of the bit stream to determine the prefix length, suffix, and decoding address, the number of cycles required for checking the bit pattern for reading data is reduced. is there.
In other words, the bit width specified by the unpacking instruction is automatically determined based on the bit pattern in the bit stream, and an address used for table reference for decoding the code code can be generated.
 このように、ビットストリームのプリフィックスを計数し、プリフィックスをキーとしたローインデックステーブル及びサフィックス長テーブルからそれぞれローインデックス、サフィックス長を読み出し、プリフィックス長とサフィックス長とビットバッファ62から読み出したデータREG_DATAを元にビットストリームからサフィックスを切り出し、コラムインデックスを求め、ローインデックスとコラムインデックスを加算して出力することにより、復号用アドレスを得る。同時に、プリフィックス長とサフィックス長を元に、ビットストリームを格納したビットバッファを更新でき、復号処理速度の高速化を図ることができる。 In this way, the bitstream prefix is counted, the row index and suffix length are read from the row index table and suffix length table, respectively, using the prefix as a key, and the prefix length, suffix length, and data REG_DATA read from the bit buffer 62 are stored Then, a suffix is extracted from the bit stream, a column index is obtained, and a row index and a column index are added and output to obtain a decoding address. At the same time, the bit buffer storing the bit stream can be updated based on the prefix length and the suffix length, and the decoding processing speed can be increased.
 [第2の実施の形態]
 次に、本発明にかかる第2の実施の形態について、図6及び図7に基づいて説明する。以下には、前記第1の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図6は、本発明の第2の実施の形態による制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。
[Second Embodiment]
Next, a second embodiment according to the present invention will be described with reference to FIGS. In the following, description of the substantially similar configuration of the first embodiment will be omitted, and only different parts will be described. FIG. 6 is a block diagram showing an example of a detailed configuration of the control information / row index generator according to the second embodiment of the present invention.
 上述の第1の実施の形態では、制御情報・ローインデックス生成器は、複数のテーブルからなるローインデックステーブル群、サフィックス長テーブル群を有する構成としたが、本実施の形態における制御情報・ローインデックス生成器では、単一のローインデックステーブル及び単一のサフィックス長テーブルを有する構成としている。 In the first embodiment described above, the control information / row index generator has a configuration including a row index table group and a suffix length table group made up of a plurality of tables. The generator has a single row index table and a single suffix length table.
 具体的には、本実施の形態の制御情報・ローインデックス生成器153は、図6に示すように、単一のローインデックステーブル173と、単一のサフィックス長テーブル174と、これらの各テーブルからデータを取得する取得部177、178とを含む構成としている。
 これに伴い、制御情報・ローインデックス生成器153では、テーブル選択信号SEL_TABは不要となり、前記第1の実施の形態の制御情報・ローインデックス生成器53からテーブル選択信号SEL_TABが削除された構成となっている。
Specifically, as shown in FIG. 6, the control information / row index generator 153 of this embodiment includes a single row index table 173, a single suffix length table 174, and each of these tables. It is configured to include acquisition units 177 and 178 that acquire data.
Accordingly, the control information / row index generator 153 does not require the table selection signal SEL_TAB, and the table selection signal SEL_TAB is deleted from the control information / row index generator 53 of the first embodiment. ing.
 図7に、制御情報・ローインデックス生成器に伴って変更されるビット格納器のブロック図を示す。
 第2の実施形態によるビット格納器152は、第1の実施形態と同様の入出力から、テーブル選択信号SEL_TABが削除された構成となっている。すなわち、ビットバッファコントローラ161は、テーブル選択信号を出力しない構成となる。 
FIG. 7 shows a block diagram of a bit storage that is changed in accordance with the control information / row index generator.
The bit storage 152 according to the second embodiment has a configuration in which the table selection signal SEL_TAB is deleted from the same input / output as that of the first embodiment. That is, the bit buffer controller 161 is configured not to output a table selection signal.
 その他の構成およびその他のステップないしは機能並びにその作用効果については、前述した実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化し、そのプログラム(ソフトウエアプログラム)をコンピュータに実行させてもよい。 Other configurations, other steps or functions, and the effects thereof are the same as those in the above-described embodiment. In the above description, the operation content of each step described above, the constituent elements of each unit, and the functions thereof may be programmed, and the program (software program) may be executed by a computer.
 [第3の実施の形態]
 次に、本発明にかかる第3の実施の形態について、図8乃至図23に基づいて説明する。ここでは前記第1の実施形態のさらに詳細な具体例を第3の実施形態として説明する。
[Third Embodiment]
Next, a third embodiment according to the present invention will be described with reference to FIGS. Here, a more specific example of the first embodiment will be described as a third embodiment.
 ビット格納器52を構成するビットバッファ62は、例えば96ビット等のレジスタにて構成される。
 また、ビット格納器52における入力INST_CNTLは、例えば16ビットを入力することができるように構成される。
The bit buffer 62 constituting the bit storage 52 is constituted by a register of 96 bits, for example.
Further, the input INST_CNTL in the bit storage 52 is configured so that, for example, 16 bits can be input.
 図8に示すように、入力INST_UPDは、6ビット、入力MEM_STは、32ビット、出力REG_DATAは、32ビット、出力SEL_TABは、2ビット、出力BIT_WIDTHは、6ビット、出力MEM_LOADは、40ビットで構成される。
 メモリから読み出されたビットストリームは、ビットバッファ62の左端がビットストリームの先頭となるように格納される。
 ここで、出力SEL_TABに関して、SEL_TABの値、0、1、2はそれぞれローインデックス及びサフィックス長テーブルの0番目、1番目、2番目のテーブルを選択するものとする。
As shown in FIG. 8, the input INST_UPD is 6 bits, the input MEM_ST is 32 bits, the output REG_DATA is 32 bits, the output SEL_TAB is 2 bits, the output BIT_WIDTH is 6 bits, and the output MEM_LOAD is 40 bits. Is done.
The bit stream read from the memory is stored so that the left end of the bit buffer 62 is the head of the bit stream.
Here, regarding the output SEL_TAB, SEL_TAB values 0, 1, and 2 select the 0th, 1st, and 2nd tables of the row index and suffix length table, respectively.
 (INST_UPDについて)
 INST_UPD(ビットバッファの更新命令)の本実施の形態における内容を図11に記載の例を用いて説明する。
 INST_UPDは、図11に記載のとおり、先頭1ビットを制御情報として使用し、先頭1ビットを除いた5ビットを更新するビット数データとして使用する。
 ビットバッファコントローラは、制御情報が1のときにビットバッファの更新を行い、0のときには何も行わない。
 図11の例では、制御情報が1のため、ビットバッファの更新が行われ、後続のビット数更新データに示されたビット数である7ビット分、ビットバッファが左シフトにより更新される。
(About INST_UPD)
The contents of the present embodiment of INST_UPD (bit buffer update instruction) will be described using the example shown in FIG.
As shown in FIG. 11, INST_UPD uses the first 1 bit as control information and uses 5 bits excluding the first 1 bit as bit number data to be updated.
The bit buffer controller updates the bit buffer when the control information is 1, and does nothing when it is 0.
In the example of FIG. 11, since the control information is 1, the bit buffer is updated, and the bit buffer is updated by left shift by 7 bits, which is the number of bits indicated in the subsequent bit number update data.
 (INST_CNTLについて)
 プロセッサからの命令INST_CNTLについて本実施の形態における構成例を図13に示す。
 図12に示されたDEC_CODE命令、図13に示されたINITIALIZE命令は16ビット幅の命令である。
 DEC_CODE命令(復号開始命令)は、8ビットのオペランドコードOPCODE、生成されたアドレスを格納するレジスタ番号を指定する3ビットのREGNUM1と、SEL_TABに出力する値を格納したレジスタを指定する3ビットのREGNUM2と、2ビットの0とから構成される。
 この命令は、前記の可変長復号処理を開始する命令であり、この命令によってビットバッファコントローラ61は、ビットバッファ62から32ビットのデータをロードしてREG_DATAに出力し、読み出したビット数すなわち32をBIT_WIDTHに出力し、さらに、REGNUM2で指定されたレジスタから読み出した値をSEL_TABに出力する。
 また、命令実行の結果について、REGNUM1で指定したレジスタに結果のアドレスが格納されて返される。
(About INST_CNTL)
FIG. 13 shows a configuration example in the present embodiment regarding the instruction INST_CNTL from the processor.
The DEC_CODE instruction shown in FIG. 12 and the INITIALIZE instruction shown in FIG. 13 are 16-bit wide instructions.
The DEC_CODE instruction (decoding start instruction) includes an 8-bit operand code OPCODE, a 3-bit REGNUM1 that specifies a register number for storing the generated address, and a 3-bit REGNUM2 that specifies a register that stores a value to be output to SEL_TAB. And 2-bit 0.
This instruction is an instruction to start the variable length decoding process. With this instruction, the bit buffer controller 61 loads 32-bit data from the bit buffer 62 and outputs it to REG_DATA. Output to BIT_WIDTH, and further output to SEL_TAB the value read from the register specified by REGNUM2.
Further, the result of instruction execution is returned with the result address stored in the register designated by REGNUM1.
 INITIALIZE命令(初期化命令)は、8ビットのオペランドコードOPCODE、メモリアドレスが格納されたレジスタ番号を指定する3ビットのREGNUMと5ビットの0から構成され、復号処理装置を初期化する操作を行う。
 INITIALIZE命令が発行されると、メモリのREGNUMで指定されたレジスタが格納するアドレスからデータを96ビット分ロードし、ビットバッファ62にデータを格納する。
The INITIALIZE instruction (initialization instruction) is composed of an 8-bit operand code OPCODE, a 3-bit REGNUM that designates a register number in which a memory address is stored, and a 5-bit 0, and performs an operation for initializing the decoding processor. .
When the INITIALIZE instruction is issued, 96 bits of data are loaded from the address stored in the register specified by REGNUM of the memory, and the data is stored in the bit buffer 62.
 また、REGNUMで指定したレジスタが持つアドレスを96ビット分だけ進めたアドレスを、ビットバッファコントローラ61が保持する。 Also, the bit buffer controller 61 holds an address obtained by advancing the address of the register designated by REGNUM by 96 bits.
 (ビット補充処理について)
 また、ビットバッファ62の本実施の形態におけるビット補充方法について説明する。
 本実施の形態においては、DEC_CODE命令を受け取り、ビットバッファ62から32ビットのデータを読み出した後、ビットバッファ62に格納されているビット数から32ビットを引いたビット数が32ビットを下回った場合に、ビットバッファコントローラ61はビット補充処理を行う。
(About bit replenishment processing)
A bit replenishment method for the bit buffer 62 in this embodiment will be described.
In the present embodiment, when a DEC_CODE instruction is received and 32-bit data is read from the bit buffer 62, the number of bits obtained by subtracting 32 bits from the number of bits stored in the bit buffer 62 falls below 32 bits. In addition, the bit buffer controller 61 performs bit replenishment processing.
 ビット補充処理は、ビットバッファコントローラ61が保持するアドレスを用いてビット補充命令MEM_LOADを発することにより行う。 Bit replenishment processing is performed by issuing a bit replenishment instruction MEM_LOAD using the address held by the bit buffer controller 61.
 図14にMEM_LOAD命令(ビット補充命令)の概要を示す。
 MEM_LOADは、ロード命令であることを示す8ビットのオペランドコードOPCODEと、ビットバッファ62が保持するアドレスを示すADDRESSフィールドを持つ。
 また、メモリから読み出した32ビットのデータは入力MEM_STを通じてビットバッファコントローラに受け渡される。
FIG. 14 shows an outline of the MEM_LOAD instruction (bit supplement instruction).
MEM_LOAD has an 8-bit operand code OPCODE indicating a load instruction, and an ADDRESS field indicating an address held by the bit buffer 62.
The 32-bit data read from the memory is transferred to the bit buffer controller through the input MEM_ST.
 ビットバッファコントローラ61は、このMEM_LOAD命令を用いて32ビットのデータをロードし、ロードした分だけビットバッファコントローラ61が保持するアドレスを進める。
 さらに、ビットバッファコントローラ61は、入力MEM_STから得たデータを、ビットバッファ62が保持するデータの末尾に追加する。
 従って、例えば図15に示すB1、B2、B3、B4のように、ビット補充が行われる。
The bit buffer controller 61 loads 32-bit data using this MEM_LOAD instruction, and advances the address held by the bit buffer controller 61 by the loaded amount.
Further, the bit buffer controller 61 adds the data obtained from the input MEM_ST to the end of the data held in the bit buffer 62.
Therefore, for example, bit supplementation is performed like B1, B2, B3, and B4 shown in FIG.
 (制御情報・ローインデックス生成器について)
 制御情報・ローインデックス生成器53は、図9に示すように、プリフィックス計数器71の出力は4ビット、プリフィックスアドレス生成器72の出力は32ビットである。
 ローインデックステーブル群73は、テーブル0、テーブル1、テーブル2の3つのテーブルを持ち、出力は例えば32ビットである。
 サフィックス長テーブル群74は、テーブル0、テーブル1、テーブル2の3つのテーブルをもち、出力は例えば3ビットである。
 制御情報・ローインデックス生成器53の出力COD_WIDTHは、6ビットである。
(About control information and low index generator)
As shown in FIG. 9, the control information / row index generator 53 has an output of the prefix counter 71 of 4 bits and an output of the prefix address generator 72 of 32 bits.
The row index table group 73 has three tables, table 0, table 1, and table 2, and the output is, for example, 32 bits.
The suffix length table group 74 has three tables, table 0, table 1, and table 2, and the output is, for example, 3 bits.
The output COD_WIDTH of the control information / low index generator 53 is 6 bits.
 プリフィックス計数器71の概要について図16を用いて説明する。図16に示したコードは、ビットバッファ62から読み出され、プリフィックス計数器に入力されたデータである。
 今、図16に示したコードはプリフィックスとして5個の連続する0を持っている。
 本実施の形態におけるプリフィックス計数器71は、この連続する0の数を数え、プリフィックス長を5として出力する。
 ここで、本実施の形態においては連続する0をプリフィックスとしたが、連続する1をプリフィックスとしても差し支えない。
An outline of the prefix counter 71 will be described with reference to FIG. The code shown in FIG. 16 is data read from the bit buffer 62 and input to the prefix counter.
Now, the code shown in FIG. 16 has five consecutive zeros as a prefix.
The prefix counter 71 in this embodiment counts the number of consecutive 0s and outputs the prefix length as 5.
Here, in this embodiment, consecutive 0s are used as prefixes, but consecutive 1s may be used as prefixes.
 ローインデックステーブル群73とサフィックス長テーブル群74内のテーブルについて、本実施の形態における構成方法を図17および図18に示したテーブル0の構成を例として説明する。 Regarding the tables in the row index table group 73 and the suffix length table group 74, the configuration method in the present embodiment will be described by taking the configuration of the table 0 shown in FIGS. 17 and 18 as an example.
 図17のローインデックステーブル0と図18のサフィックス長テーブル0は、図40のテーブルに基づいて構成されており、ローインデックステーブルでは、0から14のプリフィックス長とローインデックスが、サフィックス長テーブルでは、0から14のプリフィックス長とサフィックス長が対応付けられている。 The row index table 0 in FIG. 17 and the suffix length table 0 in FIG. 18 are configured based on the table in FIG. 40. In the row index table, the prefix length and the row index from 0 to 14 are in the suffix length table. Prefix lengths from 0 to 14 are associated with suffix lengths.
 ここで、本実施の形態におけるローインデックステーブル郡73及びサフィックス長テーブル郡74のテーブル1、テーブル2については、H.264のNumVLC1テーブル(例えば図43、図44)、NumVLC2テーブル(例えば図45、図46)から、NumVLC0テーブルと同様の方法で構築されるものとする。
 本実施の形態においては、これら3つのテーブルを必要に応じて、適宜切り替えて使用するものとする。これは、H.264のCAVLCがNumVLCテーブルを適宜選択して復号を進めるためである。
Here, for the table 1 and the table 2 of the row index table group 73 and the suffix length table group 74 in this embodiment, It is assumed that the NumVLC1 table (for example, FIGS. 43 and 44) and the NumVLC2 table (for example, FIGS. 45 and 46) of H.264 are constructed in the same manner as the NumVLC0 table.
In the present embodiment, these three tables are used by appropriately switching as necessary. This is because H.264 CAVLC appropriately selects the NumVLC table and proceeds with decoding.
 また、ローインデックステーブル群73及びサフィックス長テーブル群73を更新するUPD_ROW命令(ローインデックステーブルの更新命令)、UPD_SUF命令(サフィックス長テーブルの更新命令)について図19及び図20を用いて説明する。
 UPD_ROW命令及びUPD_SUF命令は、それぞれ、32ビットの命令であり、それぞれ、オペランドを示す8ビットのOPCODEとテーブルの更新する位置を示すアドレスを格納したレジスタを指定するREGNUM1、更新する内容を格納したレジスタを示すREGNUM2、テーブルを選択する内容を格納したレジスタを示すREGNUM3フィールドを有する。
The UPD_ROW instruction (row index table update instruction) and the UPD_SUF instruction (suffix length table update instruction) for updating the row index table group 73 and the suffix length table group 73 will be described with reference to FIGS.
The UPD_ROW instruction and the UPD_SUF instruction are 32-bit instructions, respectively, REGNUM1 for specifying a register storing an 8-bit OPCODE indicating an operand and an address indicating a position to be updated in the table, and a register storing a content to be updated And a REGNUM3 field indicating a register storing contents for selecting a table.
 また、テーブルを参照するアドレスを生成するプリフィックスアドレス生成器72について、アドレスの生成方法を説明する。
 図17及び図18に示したとおり、テーブルのアドレスはプリフィックス長に対応しており、プリフィックスが1増加すれば、アドレスは4増加するようになっている。
 よって、本実施の形態のプリフィックスアドレス生成器は入力したプリフィックス長を2ビット左シフトすることによって、アドレスを生成する。
An address generation method for the prefix address generator 72 that generates an address for referring to the table will be described.
As shown in FIGS. 17 and 18, the address of the table corresponds to the prefix length, and when the prefix increases by 1, the address increases by 4.
Therefore, the prefix address generator of this embodiment generates an address by shifting the input prefix length to the left by 2 bits.
 (復号用アドレス生成器について)
 復号用アドレス生成器54の本実施の形態における構成を述べる。
 ビット調整・コラムインデックス生成器91は、図10に示すように、32ビットの出力であり、出力されたコラムインデックスは入力ROW_INDEXと加算され、32ビットの復号用アドレスとして出力される。
(About decryption address generator)
The configuration of the decoding address generator 54 in this embodiment will be described.
As shown in FIG. 10, the bit adjustment / column index generator 91 is a 32-bit output, and the output column index is added to the input ROW_INDEX and output as a 32-bit decoding address.
 次に、本実施の形態におけるビット調整・コラムインデックス生成器91について図5を用いて動作を説明する。
 まず、図5のステップS101において、ビット調整・コラムインデックス生成器91は、入力されたBIT_WIDTHとCOD_WIDTHの差分をとり、結果をXとする(差分算出ステップないしは差分算出機能)。
Next, the operation of the bit adjustment / column index generator 91 in this embodiment will be described with reference to FIG.
First, in step S101 of FIG. 5, the bit adjustment / column index generator 91 takes the difference between the inputted BIT_WIDTH and COD_WIDTH and sets the result as X (difference calculating step or difference calculating function).
 続く、ステップS102において、ビット調整・コラムインデックス生成器91は、入力されたREG_DATAをXだけ右シフトし、結果をSH_DATAとする(プリフィックス及びサフィックスデータ抽出ステップないしはプリフィックス及びサフィックスデータ抽出機能)。 Subsequently, in step S102, the bit adjustment / column index generator 91 right-shifts the input REG_DATA by X and sets the result to SH_DATA (prefix and suffix data extraction step or prefix and suffix data extraction function).
 最後に、ステップS103においてビット調整・コラムインデックス生成器91は、コラムインデックスCOL_INDEXを計算する。ここで、本実施の形態ではSH_DATAを、2ビット左シフトすることにより32ビットのアドレスに変換する。
 ビット調整・コラムインデックス生成器91は、このアドレスをコラムインデックスCOL_INDEXとして出力する(コラムインデックス算出ステップないしはコラムインデックス算出機能)。
Finally, in step S103, the bit adjustment / column index generator 91 calculates the column index COL_INDEX. Here, in this embodiment, SH_DATA is converted to a 32-bit address by shifting left by 2 bits.
The bit adjustment / column index generator 91 outputs this address as the column index COL_INDEX (column index calculation step or column index calculation function).
 (プログラム例について)
 本実施の形態における復号処理装置のプログラム例を図21及び図22に示す。図21は、CAVLCのTC、T1sを復号するための処理手順の一例を示すフローチャートである。図22は、CAVLCのTC、T1sを復号するアセンブラコードの例である。
(About program example)
An example of a program of the decoding processing apparatus in this embodiment is shown in FIGS. FIG. 21 is a flowchart illustrating an example of a processing procedure for decoding TC and T1s of CAVLC. FIG. 22 shows an example of an assembler code for decoding TC and T1s of CAVLC.
 図21に示すように、先ず、プロセッサは、NumVLCの種類に応じた複数種のローインデックステーブルの中からいずれか一つのローインデックステーブルを選択し、選択されたローインデックステーブルを更新する処理を行う(ステップS210)。
 続いて、プロセッサは、NumVLCの種類に応じた複数種のサフィックス長テーブルの中からいずれか一つのサフィックス長テーブルを選択し、選択されたサフィックス長テーブルを更新する処理を行う(ステップS220)。 
 さらに、プロセッサは、可変長符号復号装置(復号処理装置)を初期化する処理を行う(ステップS230)。
As illustrated in FIG. 21, first, the processor performs a process of selecting any one row index table from among a plurality of types of row index tables corresponding to the type of NumVLC and updating the selected row index table. (Step S210).
Subsequently, the processor selects any one suffix length table from among a plurality of suffix length tables corresponding to the type of NumVLC, and performs a process of updating the selected suffix length table (step S220).
Further, the processor performs processing for initializing the variable-length code decoding device (decoding processing device) (step S230).
 次に、プロセッサは、全ての4×4ブロックの復号処理が完了したか否かを判定する処理を行う(ステップS240)。
 プロセッサは、この判定処理の結果が「Yes」の場合には、処理を終了する。一方、プロセッサは、この判定処理の結果が「No」の場合には、次のステップS250に処理を進める。
 すなわち、プロセッサは、1つの4×4ブロックにおけるTC、T1sを復号する処理を行う(ステップS250)。
 そして、プロセッサは、1つの4×4ブロックにおけるその他の復号処理を行う(ステップS260)。プロセッサは、この1つの4×4ブロックにおける復号処理が完了すると、ステップS240に戻り、他の4×4ブロックにおける復号処理を行うために、ステップS240~ステップS260を繰り返す。
Next, the processor performs a process of determining whether or not the decoding process for all 4 × 4 blocks has been completed (step S240).
When the result of this determination process is “Yes”, the processor ends the process. On the other hand, if the result of this determination process is “No”, the processor advances the process to the next step S250.
That is, the processor performs a process of decoding TC and T1s in one 4 × 4 block (step S250).
Then, the processor performs other decoding processing in one 4 × 4 block (step S260). When the decoding process for one 4 × 4 block is completed, the processor returns to step S240, and repeats steps S240 to S260 to perform the decoding process for another 4 × 4 block.
 以下、以上のべた図21に示すフローチャートのより具体的な処理手順について、図22に示すプログラムコード例を参照して説明する。
 まず図22で使用する命令について説明する。
 プログラム1行目の「Load dp3++,r0;」は、プロセッサが、アドレスが格納されたレジスタdp3を利用してメモリにアクセスしてデータを取得し、取得したデータをレジスタr0に格納し、さらに、レジスタdp3に格納されたアドレスを4バイト分進める命令である。
 また、Loop r3は、プロセッサが、レジスタr3に格納された値だけ、Loop命令から繰り返し終端までに記述された処理を繰り返す命令である。
 なお、繰り返し終端は、命令Loop endで記述される。
Hereinafter, a more specific processing procedure of the flowchart shown in FIG. 21 will be described with reference to a program code example shown in FIG.
First, instructions used in FIG. 22 will be described.
“Load dp3 ++, r0;” in the first line of the program is a command that the processor accesses the memory using the register dp3 in which the address is stored, acquires the data, stores the acquired data in the register r0, This instruction advances the address stored in the register dp3 by 4 bytes.
Loop r3 is an instruction in which the processor repeats the processing described from the Loop instruction to the repetition end by the value stored in the register r3.
Note that the repetition end is described by an instruction Loop end.
 本例の前提として、r2には、プロセッサが、テーブルを選択する値を格納する。
 レジスタr3には、プロセッサが、繰り返しの回数、すなわち、4×4ブロックの数を格納する。
 レジスタdp1には、プロセッサが、可変長符号ビットストリームの先頭アドレスを格納する。
 レジスタdp3には、プロセッサが、ローインデックステーブルの更新内容を示すメモリ内のデータのアドレスを格納する。
 レジスタdp4には、プロセッサが、ローインデックステーブルの更新する位置を示すデータのアドレスを格納する。
 レジスタdp5には、プロセッサが、サフィックステーブルの更新内容を示すデータのアドレスを格納する。
 レジスタdp6には、プロセッサが、サフィックステーブルの更新する位置を示すデータのアドレスを格納する。
As a premise of this example, a value for selecting a table by the processor is stored in r2.
In the register r3, the processor stores the number of repetitions, that is, the number of 4 × 4 blocks.
The processor stores the start address of the variable-length code bitstream in the register dp1.
In the register dp3, the processor stores an address of data in the memory indicating the update contents of the row index table.
In the register dp4, the processor stores an address of data indicating a position to be updated in the row index table.
In the register dp5, the processor stores an address of data indicating the update contents of the suffix table.
In the register dp6, the processor stores an address of data indicating a position where the suffix table is updated.
 プログラムの内容を説明する。
 はじめに、プロセッサがローインデックステーブルの更新を行う(ステップS210)。更新の第1、2命令、すなわち、図22のプログラム1、2行目では、プロセッサがローインデックステーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS211、S212)。
 3行目の命令では、プロセッサがUPD_ROW命令を用いて、ローインデックスを更新する(ステップS213)。
 4、5行目の命令では、プロセッサが、次のローインデックステーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS214、S215)。
Explain the contents of the program.
First, the processor updates the raw index table (step S210). In the first and second instructions for updating, that is, in the first and second lines of the program shown in FIG.
In the instruction on the third line, the processor updates the row index using the UPD_ROW instruction (step S213).
In the instructions on the fourth and fifth lines, the processor reads the contents of the next row index table and the address indicating the update position from the memory (steps S214 and S215).
 プロセッサがこれらの処理を繰り返し、ローインデックステーブルの更新が終わると、次は、プロセッサがサフィックス長テーブルの更新を同様の処理手順で行う(ステップS220)。
 すなわち、プログラム6、7行目では、プロセッサが、サフィックス長テーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS221、S222)。
 8行目の命令では、プロセッサが、UPD_SUF命令を用いて、サフィックス長を更新する(ステップS223)。
 9、10行目の命令では、プロセッサが、次のサフィックス長テーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS224、S225)。 
 サフィックステーブルの更新が終わると、プロセッサはINITIALIZE命令で復号処理装置を初期化する(ステップS230)。
When the processor repeats these processes and the update of the row index table is completed, the processor next updates the suffix length table in the same processing procedure (step S220).
That is, in the 6th and 7th lines of the program, the processor reads the contents of the suffix length table and the address indicating the update position from the memory (steps S221 and S222).
In the instruction on the eighth line, the processor updates the suffix length using the UPD_SUF instruction (step S223).
In the instructions on the ninth and tenth lines, the processor reads the contents of the next suffix length table and the address indicating the update position from the memory (steps S224 and S225).
When the update of the suffix table is completed, the processor initializes the decoding processing device with the INITIALIZE instruction (step S230).
 初期化後、プロセッサは復号を開始する。
 復号処理ではまず、プロセッサが、プログラム12行目で示されたLoop命令を使って、Loop以下の命令をレジスタr3に格納された値だけ、すなわち、4×4ブロックの数だけ繰り返すことを宣言する(ステップS240)。
 次の命令では、プロセッサが、可変長符号を復号する命令を実行し、復号用アドレスを計算して結果をレジスタdp2に格納する(ステップS251)。
 さらに、プロセッサが、レジスタdp2に格納されたアドレスを用いてデータをロードし、TCとT1sをメモリから得て、レジスタr0に格納する(ステップS252)。
After initialization, the processor starts decoding.
In the decoding process, first, the processor declares that the instruction below the Loop is repeated by the value stored in the register r3, that is, the number of 4 × 4 blocks, using the Loop instruction shown in the 12th line of the program. (Step S240).
In the next instruction, the processor executes an instruction for decoding the variable length code, calculates a decoding address, and stores the result in the register dp2 (step S251).
Further, the processor loads data using the address stored in the register dp2, obtains TC and T1s from the memory, and stores them in the register r0 (step S252).
 その後、プロセッサが、H.264におけるその他復号処理を行って(ステップS260)、15行目に示されたLoop end命令によって、繰り返し処理を終了する。
 このとき、プロセッサが、r3に示す値だけ繰り返し処理が行われていると判断した場合には、プロセッサはLoopを抜けて、次の処理に移る。また、プロセッサが、r2に示す値だけ繰り返し処理が行われていないと判断した場合には、プロセッサはLoop先頭に戻って、繰り返して処理を行う。
After that, the processor The other decoding process in H.264 is performed (step S260), and the repetition process is terminated by the Loop end instruction shown in the 15th line.
At this time, when the processor determines that the process is repeated for the value indicated by r3, the processor exits the loop and proceeds to the next process. On the other hand, if the processor determines that iterative processing has not been performed for the value indicated by r2, the processor returns to the top of the loop and repeats processing.
 (動作について)
 次に、図23のタイミングチャートを用いて、DEC_CODE命令による本発明の可変長符号の復号処理装置の動作を説明する。図23は、クロック信号に同期して動作する可変長符号の復号処理装置の、各クロックにおける各部の出力を示す。
(About operation)
Next, the operation of the variable length code decoding processing apparatus of the present invention according to the DEC_CODE instruction will be described with reference to the timing chart of FIG. FIG. 23 shows the output of each unit at each clock of the variable-length code decoding processing apparatus operating in synchronization with the clock signal.
 まず、第1クロック(第1の期間)においては、プロセッサが可変長符号ビットストリームの復号開始命令DEC_CODEを実行する(ステップS11)(復号開始命令実行処理ステップないしは復号開始命令実行処理機能)。 First, in the first clock (first period), the processor executes the decoding start instruction DEC_CODE of the variable-length code bitstream (step S11) (decoding start instruction execution processing step or decoding start instruction execution processing function).
 第2クロック(第2の期間)において、ビット格納器52のビットバッファコントローラ61は、IFステージから命令INST_CNTLを受け取り、ビット読み出し処理を行い、ビットバッファ62からREG_DATAに出力する(ステップS12)(可変長符号ビットストリーム出力処理ステップないしは可変長符号ビットストリーム出力処理機能)。 In the second clock (second period), the bit buffer controller 61 of the bit storage 52 receives the instruction INST_CNTL from the IF stage, performs bit read processing, and outputs it from the bit buffer 62 to REG_DATA (step S12) (variable). Long code bit stream output processing step or variable length code bit stream output processing function).
 第3クロック(第3の期間)においては、制御情報・ローインデックス生成器53のプリフィックス計数器71がREG_DATAに含まれるプリフィックスを計数する(ステップS13)(プリフィックス計数ステップないしはプリフィックス計数機能)。 In the third clock (third period), the prefix counter 71 of the control information / low index generator 53 counts the prefix included in REG_DATA (step S13) (prefix counting step or prefix counting function).
 第4クロック(第4の期間)においては、制御情報・ローインデックス生成器53のプリフィックスアドレス生成器72が、プリフィックス長を入力として、ローインデックステーブル群73、サフィックス長テーブル群74を参照するアドレスを生成する(ステップS14)(プリフィックスアドレス生成ステップないしはプリフィックスアドレス生成機能)。 In the fourth clock (fourth period), the prefix address generator 72 of the control information / row index generator 53 receives an address referring to the row index table group 73 and the suffix length table group 74 with the prefix length as an input. Generate (step S14) (prefix address generation step or prefix address generation function).
 第5クロック(第5の期間)においては、プリフィックスアドレス生成器72により計算されたアドレスとテーブルを選択する信号(テーブル選択信号)を入力として、制御情報・ローインデックス生成器53の取得部77が選択されたローインデックステーブルを参照し、プリフィックスアドレスに対応するローインデックスを取得する(ローインデックス取得ステップないしはローインデックス取得機能)。
 また、同時に、制御情報・ローインデックス生成器53の取得部78が選択されたサフィックス長テーブルを参照し、プリフィックスアドレスに対応するサフィックス長を取得する(サフィックス長取得ステップないしはサフィックス長取得機能)。
In the fifth clock (fifth period), the acquisition unit 77 of the control information / row index generator 53 receives the address calculated by the prefix address generator 72 and a signal for selecting a table (table selection signal) as inputs. The row index corresponding to the prefix address is obtained by referring to the selected row index table (row index obtaining step or row index obtaining function).
At the same time, the acquisition unit 78 of the control information / row index generator 53 refers to the selected suffix length table to acquire the suffix length corresponding to the prefix address (suffix length acquisition step or suffix length acquisition function).
 つまり、制御情報・ローインデックス生成器53の取得部77、78が、ローインデックスとサフィックス長とを同時に(単位クロック期間に並行して)取得する(ステップS15)(テーブル情報取得ステップないしはテーブル情報取得機能)。 That is, the acquisition units 77 and 78 of the control information / row index generator 53 acquire the row index and the suffix length at the same time (in parallel with the unit clock period) (step S15) (table information acquisition step or table information acquisition). function).
 第6クロック(第6の期間)においては、制御情報・ローインデックス生成器53の更新命令生成器75が、プリフィックス長とサフィックス長とREG_DATA、及びビットバッファコントローラ61から出力された出力ビット幅を受け取り、ビットバッファ62のデータを更新する更新命令を生成する(ステップS16)(ビットバッファの更新命令生成ステップないしはビットバッファの更新命令生成機能)。   In the sixth clock (sixth period), the update instruction generator 75 of the control information / row index generator 53 receives the prefix length, suffix length, REG_DATA, and the output bit width output from the bit buffer controller 61. Then, an update instruction for updating the data in the bit buffer 62 is generated (step S16) (bit buffer update instruction generation step or bit buffer update instruction generation function). *
 第7クロック(第7の期間)においては、ビットバッファコントローラ61が、更新命令生成器75から生成された更新命令を入力としてビットバッファ62に対する更新処理を行い、ビットバッファ62のデータが更新される(ビットバッファの更新処理ステップないしはビットバッファの更新処理機能)。
 同時に、復号用アドレス生成器54がコラムインデックスを生成し、生成したコラムインデックスをローインデックスと加算して出力する(ステップS17)(コラムインデックスローインデックス加算ステップ又は復号用アドレス算出ステップ、ないしはコラムインデックスローインデックス加算機能又は復号用アドレス算出機能)。
 このように、制御情報・ローインデックス生成器53により、復号用アドレスを生成する処理と、ビットバッファ62に保持される可変長符号ビットストリームを更新する処理とを同時に(単位クロック期間に並行して)行うことができる。
In the seventh clock (seventh period), the bit buffer controller 61 performs an update process on the bit buffer 62 with the update instruction generated from the update instruction generator 75 as an input, and the data in the bit buffer 62 is updated. (Bit buffer update processing step or bit buffer update processing function).
At the same time, the decoding address generator 54 generates a column index, adds the generated column index to the row index, and outputs it (step S17) (column index row index addition step or decoding address calculation step, or column index row). Index addition function or decoding address calculation function).
In this way, the process of generating the decoding address by the control information / row index generator 53 and the process of updating the variable length code bitstream held in the bit buffer 62 are performed simultaneously (in parallel with the unit clock period). )It can be carried out.
 第8クロック(第8の期間)において、プロセッサは、復号用アドレス生成器54が生成した復号用アドレスを入力として復号用テーブルの参照を行い、可変長符号化されたTCとT1sが復号される(ステップS18)(TC・T1s復号処理ステップないしはTC・T1s復号処理機能)。 In the eighth clock (eighth period), the processor refers to the decoding table with the decoding address generated by the decoding address generator 54 as an input, and variable length encoded TC and T1s are decoded. (Step S18) (TC / T1s decoding processing step or TC / T1s decoding processing function).
 ここで、以上のステップS13ないしステップS17により、「前記制御情報・復号用アドレス生成制御ステップ」を構成することができる。また、以上のステップS13ないしステップS16により、「前記制御情報・ローインデックス生成ステップ」を構成することができる。さらに、ステップS17により、「復号用アドレス生成(出力)ステップ」を構成することができる。また、ステップS12により、「ビット格納処理ステップ」を構成することができる。 Here, “the control information / decoding address generation control step” can be configured by the above steps S13 to S17. Further, the “control information / row index generation step” can be configured by the above steps S13 to S16. Furthermore, the “decoding address generation (output) step” can be configured by step S17. Further, the “bit storage processing step” can be constituted by step S12.
 その他の構成およびその他のステップないしは機能並びにその作用効果については、前述した実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化し、そのプログラムをコンピュータに実行させてもよい。 Other configurations, other steps or functions, and the effects thereof are the same as those in the above-described embodiment. In the above description, the operation content of each step described above, the components of each unit, and the functions thereof may be programmed and the program may be executed by a computer.
 [第4の実施の形態]
 次に、本発明にかかる第4の実施の形態について、図24乃至図30に基づいて説明する。ここでは前記第2の実施形態のさらに詳細な具体例を第4の実施形態として説明する。また、第1の実施の形態と同様の構成の箇所については、説明を省略する。
[Fourth Embodiment]
Next, a fourth embodiment according to the present invention will be described with reference to FIGS. Here, a more specific example of the second embodiment will be described as a fourth embodiment. Further, the description of the same configuration as in the first embodiment is omitted.
 本実施の形態の制御情報・ローインデックス生成器153では、図24に示すように、ローインデックステーブル173は1つのテーブルからなる。同様に、サフィックス長テーブル174は1つのテーブルからなる。
 この変更により、テーブルを選択する信号SEL_TABは不要となる。
 また、図25に示すように、ビット格納器152におけるビットバッファコントローラ161の出力にもテーブルを選択する信号SEL_TABは不要となる。
In the control information / row index generator 153 of this embodiment, as shown in FIG. 24, the row index table 173 consists of one table. Similarly, the suffix length table 174 consists of one table.
With this change, the signal SEL_TAB for selecting the table becomes unnecessary.
Further, as shown in FIG. 25, the signal SEL_TAB for selecting the table is not required for the output of the bit buffer controller 161 in the bit storage 152.
 ここで、本実施の形態において定義されるDEC_CODE命令を図26に示す。
 本実施の形態のDEC_CODE命令では、前記第3の実施の形態におけるDEC_CODE命令の構成からテーブルを選択する信号を含んだレジスタを指定する部分REG_NUM2が消去され、代わりに0値が格納される構成となっている。
Here, FIG. 26 shows a DEC_CODE instruction defined in the present embodiment.
In the DEC_CODE instruction of the present embodiment, the part REG_NUM2 designating a register including a signal for selecting a table is erased from the configuration of the DEC_CODE instruction in the third embodiment, and a 0 value is stored instead. It has become.
 さらに、第2の実施の形態において定義されるUPD_ROW及びUPD_SUF命令を図27および図28に示す。
 本実施の形態のUPD_ROW及びUPD_SUF命令は、16ビットの命令であり、8ビットのオペランドOPCODEと、テーブルの更新する位置を示すアドレスを格納したレジスタを指定するREGNUM1と、更新する内容を格納したレジスタを示すREGNUM2と、2ビットの0と、から構成される。
Furthermore, UPD_ROW and UPD_SUF instructions defined in the second embodiment are shown in FIGS.
The UPD_ROW and UPD_SUF instructions of this embodiment are 16-bit instructions, an 8-bit operand OPCODE, a REGNUM1 that specifies a register that stores an address indicating a table update position, and a register that stores the contents to be updated And REGNUM2 indicating 2 and 0 of 2 bits.
 (プログラム例)
 本実施の形態における復号処理装置のプログラム例を図29及び図30に示す。図29は、CAVLCのTC、T1sを復号するための処理手順の一例を示すフローチャートである。図30は、CAVLCのTC、T1sを復号するアセンブラコードの例である。
 本プログラムと第3の実施の形態で示したプログラムの違いは、複数種のローインデックステーブルの中からいずれか一つのローインデックステーブルを選択する必要がない点である。また、複数種のサフィックス長テーブルの中からいずれか一つのサフィックス長テーブルを選択する必要がない点である。
(Example program)
An example of a program of the decoding processing apparatus in the present embodiment is shown in FIGS. FIG. 29 is a flowchart illustrating an example of a processing procedure for decoding TC and T1s of CAVLC. FIG. 30 shows an example of an assembler code for decoding TC and T1s of CAVLC.
The difference between this program and the program shown in the third embodiment is that it is not necessary to select any one of the plurality of row index tables. Further, it is not necessary to select any one suffix length table from among a plurality of types of suffix length tables.
 図29に示すように、先ず、プロセッサは、ローインデックステーブルを更新する処理を行う(ステップS310)。
 続いて、プロセッサは、サフィックス長テーブルを更新する処理を行う(ステップS320)。
 さらに、プロセッサは、可変長符号復号装置(復号処理装置)を初期化する処理を行う(ステップS330)。
As shown in FIG. 29, first, the processor performs a process of updating the row index table (step S310).
Subsequently, the processor performs a process of updating the suffix length table (step S320).
Further, the processor performs processing for initializing the variable-length code decoding device (decoding processing device) (step S330).
 次に、プロセッサは、全ての4×4ブロックの復号処理が完了したか否かを判定する処理を行う(ステップS340)。
 プロセッサは、この判定処理の結果が「Yes」の場合には、処理を終了する。一方、プロセッサは、この判定処理の結果が「No」の場合には、次のステップS350に処理を進める。
 すなわち、プロセッサは、1つの4×4ブロックにおけるTC、T1sを復号する処理を行う(ステップS350)。
 そして、プロセッサは、1つの4×4ブロックにおけるその他の復号処理を行う(ステップS360)。プロセッサは、この1つの4×4ブロックにおける復号処理が完了すると、ステップS340に戻り、他の4×4ブロックにおける復号処理を行うために、ステップS340~ステップS360を繰り返す。
Next, the processor performs a process of determining whether or not the decoding process for all 4 × 4 blocks has been completed (step S340).
When the result of this determination process is “Yes”, the processor ends the process. On the other hand, if the result of this determination process is “No”, the processor advances the process to the next step S350.
That is, the processor performs a process of decoding TC and T1s in one 4 × 4 block (step S350).
Then, the processor performs other decoding processing in one 4 × 4 block (step S360). When the decoding process for one 4 × 4 block is completed, the processor returns to step S340, and repeats steps S340 to S360 to perform the decoding process for another 4 × 4 block.
 以下、以上のべた図29に示すフローチャートのより具体的な処理手順について、図30に示すプログラムコード例を参照して説明する。 
 本例では前提として、レジスタr3には、プロセッサが、繰り返しの回数、すなわち、4×4ブロックの数を格納する。
 レジスタdp1には、プロセッサが、可変長符号ビットストリームの先頭アドレスを格納する。
 レジスタdp3には、プロセッサが、ローインデックステーブルの更新内容を示すメモリ内のデータのアドレスを格納する。
 レジスタdp4には、プロセッサが、ローインデックステーブルの更新する位置を示すデータのアドレスを格納する。
 レジスタdp5には、プロセッサが、サフィックステーブルの更新内容を示すデータのアドレスを格納する。
 レジスタdp6には、プロセッサが、サフィックステーブルの更新する位置を示すデータのアドレスを格納する。
Hereinafter, a more specific processing procedure of the flowchart shown in FIG. 29 will be described with reference to a program code example shown in FIG.
In this example, as a premise, the processor stores the number of repetitions, that is, the number of 4 × 4 blocks, in the register r3.
The processor stores the start address of the variable-length code bitstream in the register dp1.
In the register dp3, the processor stores an address of data in the memory indicating the update contents of the row index table.
In the register dp4, the processor stores an address of data indicating a position to be updated in the row index table.
In the register dp5, the processor stores an address of data indicating the update contents of the suffix table.
In the register dp6, the processor stores an address of data indicating a position where the suffix table is updated.
 本プログラムと第3の実施の形態で示したプログラムの違いについて説明する。
 まず、ローインデックステーブル、サフィックス長テーブルを更新するUPD_ROW、及びUPD_SUF命令について、命令で指定するレジスタは更新する位置と更新に使用する値を格納したレジスタ2つとなっている(ステップS313、ステップS323)。
 また、復号命令DEC_CODEについても同様に、第3の実施の形態のDEC_CODE命令からテーブルを選択する信号を除いたものとなっている(ステップS351)。
 他のステップS311、S312、S314、S315、S321、S322、S324、S325、S330、S340、S352、S360は、前記第3の実施の形態におけるS211、S212、S214、S215、S221、S222、S224、S225、S230、S240、S252、S260と同様となっている。
The difference between this program and the program shown in the third embodiment will be described.
First, for the UPD_ROW and UPD_SUF instructions that update the row index table, the suffix length table, the registers specified by the instructions are two registers that store the update position and the value used for the update (step S313, step S323). .
Similarly, the decoding instruction DEC_CODE is obtained by removing the signal for selecting a table from the DEC_CODE instruction of the third embodiment (step S351).
The other steps S311, S312, S314, S315, S321, S322, S324, S325, S330, S340, S352, and S360 are the same as S211, S212, S214, S215, S221, S222, S224, and the like in the third embodiment. This is the same as S225, S230, S240, S252, and S260.
 その他の構成およびその他のステップないしは機能並びにその作用効果については、前述した実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化し、そのプログラムをコンピュータに実行させてもよい。 Other configurations, other steps or functions, and the effects thereof are the same as those in the above-described embodiment. In the above description, the operation content of each step described above, the components of each unit, and the functions thereof may be programmed and the program may be executed by a computer.
 [その他の各種変形例]
 また、本発明にかかる装置及び方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲から逸脱することなく本発明の本文に記述した実施の形態に対して種々の変形が可能である。
[Other variations]
Also, although the apparatus and method according to the present invention have been described according to some specific embodiments thereof, the embodiments described in the text of the present invention can be used without departing from the spirit and scope of the present invention. Various modifications are possible.
 ここで、その他の実施の形態について説明する。
 (変形例1)
 まず、プリフィックスの計数について、第3、第4実施の形態では制御情報・ローインデックス生成器内にプリフィックス計数器を設け、それを用いて計数を行っていたが、ビットバッファコントローラがこれを行うこともできる。 
Here, other embodiments will be described.
(Modification 1)
First, with regard to prefix counting, in the third and fourth embodiments, a prefix counter is provided in the control information / row index generator, and counting is performed using this, but the bit buffer controller performs this. You can also.
 すなわち、図31に示すように、ビット格納器252のビットバッファコントローラ261は、ビット補充機能、更新処理機能に加え、プリフィックス計数機能(プリフィックス計数部)を有している。
 この場合、ビットバッファ262に格納されているビットデータのプリフィックスを、あらかじめビットバッファコントローラ261が計数しておき、復号処理命令の実行によりビットデータがビットバッファ262から読み出されると同時に計数したプリフィックス長(例えば4bit)を出力する。
That is, as shown in FIG. 31, the bit buffer controller 261 of the bit storage 252 has a prefix counting function (prefix counting unit) in addition to the bit replenishment function and the update processing function.
In this case, the prefix length of the bit data stored in the bit buffer 262 is counted in advance by the bit buffer controller 261, and the bit data is read from the bit buffer 262 by execution of the decoding processing instruction ( For example, 4 bits) are output.
 この構成では、図32に示すように、制御情報・ローインデックス生成器253ではプリフィックス計数器は不要となる。
 また、制御情報・ローインデックス生成器253では、3段のパイプライン構成で済み、生成器用パイプラインレジスタ281B、281Cのみの構成でよい。
 その他の構成であるプリフィックスアドレス生成器272、ローインデックステーブル群273、サフィックス長テーブル群274と、取得部277、取得部278、加算器276、更新命令生成器275は、前記実施の形態と同一となっている。
In this configuration, as shown in FIG. 32, the control information / low index generator 253 does not require a prefix counter.
In addition, the control information / row index generator 253 may have a three-stage pipeline configuration, and may include only the generator pipeline registers 281B and 281C.
The prefix address generator 272, the row index table group 273, the suffix length table group 274, the acquisition unit 277, the acquisition unit 278, the adder 276, and the update instruction generator 275, which are other configurations, are the same as those in the above embodiment. It has become.
 (変形例2)
 さらに、計数したプリフィックス長をそのまま用いて、テーブル参照を行うこともできる。この構成の場合、図33に示すように、制御情報・ローインデックス生成器353では、プリフィックスアドレス生成器は不要となる。
(Modification 2)
Furthermore, it is possible to refer to the table using the counted prefix length as it is. In the case of this configuration, as shown in FIG. 33, the control information / row index generator 353 does not require a prefix address generator.
 制御情報・ローインデックス生成器353の取得部377は、ローインデックステーブル群373のうちの選択されたテーブルからプリフィックス長に基づいて対応するローインデックスを取得する。
 また、制御情報・ローインデックス生成器353の取得部378は、サフィックス長テーブル群374のうちの選択されたテーブルからプリフィックス長に基づいて対応するサフィックス長を取得する。
 その他の構成である加算器376、更新命令生成器375は、前記実施の形態と同一となっている。
The acquisition unit 377 of the control information / row index generator 353 acquires the corresponding row index from the selected table in the row index table group 373 based on the prefix length.
Further, the acquisition unit 378 of the control information / row index generator 353 acquires the corresponding suffix length from the selected table in the suffix length table group 374 based on the prefix length.
The adder 376 and the update instruction generator 375 which are other configurations are the same as those in the above embodiment.
 また、この場合、図34に示すように、プリフィックスアドレス生成のための期間(図22のステップS14)も不要となり、前記第3の実施の形態におけるS11、S12、S13、S15、S16、S17、S18と同様のS21、S22、S23、S25、S26、S27、S28の7クロック分で済む。 Further, in this case, as shown in FIG. 34, the period for generating the prefix address (step S14 in FIG. 22) is also unnecessary, and S11, S12, S13, S15, S16, S17, and the like in the third embodiment. S21, S22, S23, S25, S26, S27, and S28, which are the same as S18, are sufficient.
 (変形例3)
 さらに、復号用アドレス生成器で行っていた、復号用のアドレス生成を、制御情報・ローインデックス生成器の4段目のパイプラインステージ、すなわち、更新命令の生成と同時に行うことも可能である。 
 この場合、図35に示すように、復号用アドレス生成器453を制御情報・ローインデックス生成器453内に搭載することができる。
 その他の構成であるプリフィックス計数器471、プリフィックスアドレス生成器472、ローインデックステーブル群473、サフィックス長テーブル群474、取得部477、取得部478、加算器476、更新命令生成器475、生成器用パイプラインレジスタ481A、481B、481Cは、前記実施の形態と同一となっている。
(Modification 3)
Furthermore, the address generation for decoding, which has been performed by the address generator for decoding, can be performed simultaneously with the generation of the fourth pipeline stage of the control information / row index generator, that is, the update instruction.
In this case, as shown in FIG. 35, the decoding address generator 453 can be mounted in the control information / row index generator 453.
Other configurations are a prefix counter 471, a prefix address generator 472, a row index table group 473, a suffix length table group 474, an acquisition unit 477, an acquisition unit 478, an adder 476, an update instruction generator 475, and a generator pipeline. The registers 481A, 481B, 481C are the same as those in the above embodiment.
 (変形例4)
 上述のような構成を有する復号処理装置における各部の処理は、方法としても実現可能であり、復号処理方法としての各種の処理手順について、図36を参照しつつ説明する。図36は、本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。
(Modification 4)
The processing of each unit in the decoding processing apparatus having the above-described configuration can also be realized as a method, and various processing procedures as the decoding processing method will be described with reference to FIG. FIG. 36 is a flowchart illustrating an example of a processing procedure in the decoding processing device according to another embodiment of the present invention.
 本実施の形態に係る復号処理方法は、少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理をコンピュータ(例えばプロセッサなど)が行うものを対象とするものである。
 この復号処理方法では、例えば、上述の実施の形態の図22におけるステップS251の詳細処理手順の一例ということもできる。
The decoding processing method according to the present embodiment is intended for a method in which a computer (for example, a processor or the like) performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix that follows the prefix. It is what.
In this decoding processing method, for example, it can also be said to be an example of a detailed processing procedure of step S251 in FIG. 22 of the above-described embodiment.
 この復号処理方法は、基本的手順として、先ず、コンピュータが、前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御をする(例えば図36に示すステップS401のビット格納制御ステップなど)。
 すなわち、コンピュータが、前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持する処理を行う。
 次に、コンピュータが、前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御を行う(例えば図36に示すステップS402の制御情報・ローインデックス生成ステップなど)。
 続いて、コンピュータが、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御を行う(例えば図36に示すステップS403の復号用アドレス生成ステップなど)。
In this decoding processing method, as a basic procedure, first, the computer performs first control for performing input / output processing for temporarily storing a part of the variable-length code bitstream in the bitstream temporary storage unit (for example, The bit storage control step of step S401 shown in FIG. 36).
That is, the computer performs a process of temporarily holding a part of the variable-length code bitstream in the bitstream temporary holding unit.
Next, after the computer generates a row index for obtaining the decoding address based on the prefix of the variable-length code bitstream, generates a suffix length corresponding to the prefix length, and generates these First generation control for generating the control information is performed (for example, the control information / raw index generation step in step S402 shown in FIG. 36).
Subsequently, the computer generates a column index for obtaining the decoding address from the suffix length, and performs second generation control for generating the decoding address based on the column index and the row index ( For example, a decoding address generation step in step S403 shown in FIG. 36).
 ここで、前記制御情報・ローインデックス生成ステップでは(第1の生成制御をする際には)、前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御における復号用アドレスを生成する処理と、前記第1の制御における前記可変長符号ビットストリームを更新する処理とを同時に(単位クロック期間に並行して)実行させることができる。 Here, in the control information / row index generation step (when the first generation control is performed), a process of generating a decoding address in the second generation control after the generation of the row index and the suffix length And the process of updating the variable-length code bit stream in the first control can be executed simultaneously (in parallel with the unit clock period).
 <制御情報・ローインデックス生成ステップ>
 図36に示す制御情報・ローインデックス生成ステップS402の詳細処理手順の一例を図37に示す。図37は、本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。
<Control information / raw index generation step>
An example of the detailed processing procedure of the control information / row index generation step S402 shown in FIG. 36 is shown in FIG. FIG. 37 is a flowchart illustrating an example of a processing procedure in the decoding processing device according to another embodiment of the present invention.
 まず、前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、を設けておく。
 そして、コンピュータが、前前記可変長符号ビットストリームの前記プリフィックス長を計数する(ステップS501)(プリフィックス計数ステップないしはプリフィックス計数機能)。
First, a first table storing a row index corresponding to the prefix length and a second table storing a suffix length corresponding to the prefix length are provided.
Then, the computer counts the prefix length of the previous variable-length code bitstream (step S501) (prefix counting step or prefix counting function).
 続いて、コンピュータが、前ステップS501の前記プリフィックス計数ステップにて計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算する(ステップS502)(プリフィックスアドレス計算ステップないしはプリフィックスアドレス計算機能)。  Subsequently, the computer calculates a prefix address for referring to the first table and the second table from the prefix length counted in the prefix counting step of the previous step S501 (step S502) (prefix address calculating step) Or prefix address calculation function). *
 次いで、コンピュータが、前ステップS502の前記プリフィックスアドレス計算ステップにて求めた前記プリフィックスアドレスを用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得する(ステップS503)(テーブル情報取得ステップないしはテーブル情報取得機能)。 Next, the computer refers to the first table and the second table, respectively, using the prefix address obtained in the prefix address calculation step of the previous step S502, and determines the corresponding row index and suffix length. Obtain (step S503) (table information obtaining step or table information obtaining function).
 さらに、コンピュータが、前ステップS503の前記テーブル情報取得ステップにて取得された前記サフィックス長とステップS501の前記プリフィックス計数ステップにて計数した前記プリフィックス長とREG_DATAとに基づいて、ビット格納制御手段の前記可変長符号ビットストリームを更新する制御情報である更新命令を生成する(ステップS504)(更新命令生成ステップないしは更新命令生成機能)。 Further, the computer stores the bit length of the bit storage control means based on the suffix length acquired in the table information acquisition step in the previous step S503, the prefix length counted in the prefix counting step in the step S501, and REG_DATA. An update command that is control information for updating the variable-length code bitstream is generated (step S504) (update command generation step or update command generation function).
 <復号用アドレス生成ステップ>
 図36に示す復号用アドレス生成ステップS403詳細処理手順の一例を図38を示す。図38は、本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。
<Decryption address generation step>
FIG. 38 shows an example of the detailed processing procedure of the decryption address generation step S403 shown in FIG. FIG. 38 is a flowchart illustrating an example of a processing procedure in the decoding processing device according to another embodiment of the present invention.
 先ず、コンピュータが、前前記プリフィックス長、前記サフィックス長、ビット格納制御手段の前記可変長符号ビットストリームのビット数及びそのビットストリームに基づいて、前記復号用アドレスを求めるためのコラムインデックスを生成する(ステップS601)(コラムインデックス生成ステップないしはコラムインデックス生成機能)。
 この具体的例は、前記実施の形態の図5に示す処理を行う。
First, the computer generates a column index for obtaining the decoding address based on the prefix length, the suffix length, the number of bits of the variable length code bit stream of the bit storage control means, and the bit stream ( Step S601) (column index generation step or column index generation function).
In this specific example, the processing shown in FIG. 5 of the above embodiment is performed.
 そして、コンピュータが、前ステップS601でのコラムインデックスと、ステップS503での前記ローインデックスとを加算し、復号用アドレスを生成する(ステップS602)(コラムインデックスローインデックス加算ステップないしはコラムインデックスローインデックス加算機能)。 Then, the computer adds the column index in the previous step S601 and the row index in step S503 to generate a decoding address (step S602) (column index row index addition step or column index row index addition function) ).
 一方、コンピュータが、これらのステップS601、ステップS602と並行して(同時に)、ステップS504での更新命令に基づいて、ビット格納制御手段の前記可変長符号ビットストリームを更新する処理を実行する(ステップS603)(ビット格納更新処理ステップないしはビット格納更新処理機能)。 On the other hand, in parallel (simultaneously) with these steps S601 and S602, the computer executes a process of updating the variable length code bitstream of the bit storage control means based on the update command in step S504 (step S504). S603) (bit storage update processing step or bit storage update processing function).
 ここで、以上のステップS402とステップS403とにより、「第2の制御ステップ」を構成できる。
 この「第2の制御ステップ」では、コンピュータが、前記ビットストリーム一時保持部から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御をすることができる。  
 また、前記第2の制御をする際に、前記復号用アドレスを生成する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを同時に行うことができる。
Here, the “second control step” can be configured by the above steps S402 and S403.
In this “second control step”, the computer uses the decoding table reference necessary for decoding based on the prefix and the suffix of the variable-length code bitstream input from the bitstream temporary storage unit. While generating a decoding address, second control for supplying control information for updating the variable-length code bitstream to the bitstream temporary storage unit can be performed.
In addition, when performing the second control, the process of generating the decoding address and the process of updating the variable length code bitstream of the bitstream temporary storage unit can be performed simultaneously.
 (変形例5)
 また、上述の実施の形態では、復号処理装置をプロセッサに搭載した構成例を示したが、図39に示すように、復号処理装置単独による構成も可能である。
 すなわち、復号処理装置550は、前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段(例えば図39に示す符号552のビット格納器など)と、前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御手段(例えば図39に示す符号551など)とを含む構成としている。
 この第2の制御手段551が、前記復号用アドレスを生成する処理と、前記第1の制御手段に保持される前記可変長符号ビットストリームを更新する処理とを同時に(例えば単位クロック期間に並行して)行うことができる。
(Modification 5)
In the above-described embodiment, the configuration example in which the decoding processing device is mounted on the processor has been shown. However, as shown in FIG. 39, a configuration by the decoding processing device alone is also possible.
That is, the decoding processing device 550 temporarily holds a part of the variable-length code bitstream and also controls first input / output processing for holding the first control means (for example, a bit storage unit 552 shown in FIG. 39). And the like, and a decoding address used for reference to a decoding table necessary for decoding, based on the prefix and the suffix of the variable-length code bitstream input from the first control unit, and Second control means (for example, reference numeral 551 shown in FIG. 39) for supplying control information for updating the variable-length code bitstream to the first control means is adopted.
The second control unit 551 simultaneously performs the process of generating the decoding address and the process of updating the variable length code bitstream held in the first control unit (for example, in parallel with a unit clock period). Can do).
 このような構成の復号処理装置では、プリフィックスとサフィックスとに基づいた復号用アドレスの生成処理と、第1の制御手段の更新処理とを同時に行え、次の復号に備えることができ、可変長符号の復号に必要なサイクル数を低減できる。 In the decoding processing apparatus having such a configuration, the decoding address generation process based on the prefix and the suffix and the update process of the first control unit can be performed simultaneously, and the variable length code can be prepared for the next decoding. The number of cycles required for decoding can be reduced.
 また、第2の制御手段551は、前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する処理動作を制御する制御情報・ローインデックス生成器553(第1の生成制御部)と、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する処理動作を制御する復号用アドレス生成器554(第2の生成制御部)とを含む構成としている。 The second control unit 551 generates a raw index for obtaining the decoding address based on the prefix of the variable-length code bitstream, and generates a suffix length corresponding to the prefix length. And a control information / row index generator 553 (first generation control unit) for controlling the processing operation for generating the control information after generating the column information, and generating a column index for obtaining the decoding address from the suffix length And a decoding address generator 554 (second generation control unit) for controlling a processing operation for generating the decoding address based on the column index and the row index.
 この場合、前記制御情報・ローインデックス生成器553が、前記ローインデックスと前記サフィックス長の生成後に、前記復号用アドレスを生成する処理と、前記第1の制御手段に保持される前記可変長符号ビットストリームを更新する処理とを同時に(例えば単位クロック期間に並行して)行うことができる。 In this case, the control information / row index generator 553 generates the decoding address after generating the row index and the suffix length, and the variable length code bit held in the first control means. The process of updating the stream can be performed simultaneously (for example, in parallel with the unit clock period).
 (変形例6)
 さらに、上述の実施の形態における復号処理装置とプロセッサとを分けて構成することもできる。
 この場合、図40に示すように、プロセッサ620におけるプロセッサ制御部625が、復号開始命令(DEC_CODE)生成機能625a、ビットバッファの更新命令(INST_UPD)生成機能625b、ビット補充命令(MEM_LOAD)生成機能625c、ローインデックステーブルの更新命令(UPD_ROW)生成機能625d、サフィックス長テーブルの更新命令(UPD_SUF)生成機能625e、初期化命令(INITIALIZE)生成機能、などを有することもできる。
(Modification 6)
Furthermore, the decoding processing device and the processor in the above-described embodiment can be configured separately.
In this case, as shown in FIG. 40, the processor control unit 625 in the processor 620 includes a decoding start instruction (DEC_CODE) generation function 625a, a bit buffer update instruction (INST_UPD) generation function 625b, and a bit supplement instruction (MEM_LOAD) generation function 625c. , A row index table update instruction (UPD_ROW) generation function 625d, a suffix length table update instruction (UPD_SUF) generation function 625e, an initialization instruction (INITIALIZE) generation function, and the like.
 復号処理装置650は、前記実施の形態と同様に、ビット格納器652(第1の制御手段)、制御情報・ローインデックス生成器653(第1の生成制御部)、復号用アドレス生成器654(第2の生成制御部)を有することができる。制御情報・ローインデックス生成器653及び復号用アドレス生成器654により第2の制御手段651を構成できる。復号処理装置650は、プロセッサ620の復号開始命令(DEC_CODE)がビット格納器652に入力することによって復号処理が開始される。また、プロセッサ620の他の各種命令に基づいて復号処理装置650が各種処理を実行する場合についても、前記実施の形態と同様に処理を行うことができる。 Similarly to the above-described embodiment, the decoding processing device 650 includes a bit storage 652 (first control means), a control information / row index generator 653 (first generation control unit), and a decoding address generator 654 ( A second generation control unit). The control information / row index generator 653 and the decoding address generator 654 can constitute the second control means 651. The decoding processing device 650 starts the decoding process when the decoding start instruction (DEC_CODE) of the processor 620 is input to the bit storage 652. Also, when the decryption processing device 650 executes various processes based on other various instructions of the processor 620, the process can be performed in the same manner as in the above embodiment.
 ここで、例えば図39に示すブロック図における一部の各ブロックは、コンピュータが適宜なメモリに格納された各種プログラムを実行することにより、該プログラムにより機能化された状態を示すソフトウエアモジュール構成であってもよい。 Here, for example, a part of each block in the block diagram shown in FIG. 39 has a software module configuration showing a state functionalized by a computer by executing various programs stored in an appropriate memory. There may be.
 すなわち、物理的構成は例えば一又は複数のCPU(或いは一又は複数のCPUと一又は複数のメモリ)等ではあるが、CPUにプログラムを実行させることによりソフトウェア上で図39に示す構成を実現するようにしてもよい。 That is, although the physical configuration is, for example, one or a plurality of CPUs (or one or a plurality of CPUs and one or a plurality of memories), the configuration shown in FIG. 39 is realized on software by causing the CPU to execute a program. You may do it.
 以上に示した各部(手段)の説明は、プログラムにより機能化されたコンピュータをプログラムの機能と共に説明したものと解釈することも出来るし、また、固有のハードウェアにより恒久的に機能化された複数の電子回路ブロックからなる装置を説明したものとも解釈することが出来る。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。 The description of each unit (means) described above can be interpreted as a computer functionalized by a program together with the functions of the program, or a plurality of functions permanently functioning by specific hardware. It can also be interpreted that the device comprising the electronic circuit block is described. Therefore, these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.
 また、各部は、通信可能な専用のコンピュータからなる装置としてそれぞれ構成し、これらの各装置によりシステムを構成してもよい。逆に、各部を単一の装置として構成したシステムであってもよい。 Further, each unit may be configured as a device including a dedicated computer capable of communication, and the system may be configured by each of these devices. Conversely, a system in which each unit is configured as a single device may be used.
 さらに、各部を回路として構成する場合には、半導体集積回路、光集積回路あるいはそれらの組み合わせなど種々の集積回路にて構成してよい。 Furthermore, when each part is configured as a circuit, it may be configured by various integrated circuits such as a semiconductor integrated circuit, an optical integrated circuit, or a combination thereof.
 本発明の一実施形態に係るプロセッサにおいては、ビットストリームの一部を保持し、それを制御する手段を有するビット格納器と、ビットストリームを入力として、ビットストリームのプリフィックスに応じて、可変長符号の復号に必要なテーブル参照に用いるアドレス、すなわちローインデックスと、プリフィックス長に対応したサフィックス長を生成し、また、前記ビット格納器を制御する情報を生成する手段を有する制御情報・ローインデックス生成器と、プリフィックス長とサフィックスから復号に必要なテーブルを参照するアドレスを生成する手段を有する復号用アドレス生成器を備えることができる。 In a processor according to an embodiment of the present invention, a bit storage unit having means for holding and controlling a part of a bit stream, and a variable length code according to a bit stream prefix using the bit stream as an input A control information / row index generator having means for generating an address used for table reference necessary for decoding, that is, a row index and a suffix length corresponding to the prefix length, and generating information for controlling the bit storage And a decoding address generator having means for generating an address referring to a table necessary for decoding from the prefix length and the suffix.
 前記のビット格納器は、保持したビットストリームからあらかじめ決められたビット数のビットデータを読み出し、読み出した後の残りビット数が少ない場合、メモリから新たにデータを読み出し、保持したビットストリームの一部の末尾に連接して格納する手段と、前記ビット格納器を制御する情報に基づいて、保持したビットストリームを更新する手段とを有するように構成してよい。 The bit storage device reads bit data of a predetermined number of bits from the held bit stream, and when the remaining number of bits after the reading is small, newly reads data from the memory, and a part of the held bit stream And a means for updating the stored bit stream based on information for controlling the bit storage.
 前記の制御情報・ローインデックス生成器は、プリフィックス長に対応した、可変長符号の復号に必要なテーブル参照に用いるアドレス、すなわちローインデックスを格納したテーブルと、プリフィックス長に対応したサフィックス長を格納したテーブルとを有し、前記ビット格納器から読み出されたビットストリームのプリフィックスを計数する手段と、計数したプリフィックスから前記テーブルのアドレスを計算する手段と、前記プリフィックス長から求めたアドレスを用いて、前記ローインデックスを格納したテーブルと、前記サフィックス長を格納したテーブルを参照して、ローインデックスとサフィックス長を得る手段と、プリフィックス長及びサフィックス長から前記ビット格納器を更新する制御情報を生成する手段を有するように構成してよい。 The control information / row index generator stores an address used for table reference necessary for decoding of a variable length code corresponding to a prefix length, that is, a table storing a row index and a suffix length corresponding to the prefix length. A table, and means for counting the prefix of the bitstream read from the bit storage, means for calculating the address of the table from the counted prefix, and using the address obtained from the prefix length, Means for obtaining the row index and suffix length by referring to the table storing the row index and the table storing the suffix length; and means for generating control information for updating the bit storage unit from the prefix length and the suffix length Have Sea urchin may be configured.
 前記復号用アドレス生成器は、前記ビット格納器から読み出されたデータのサフィックスを求め、前記サフィックスから計算される可変長符号の復号に必要なテーブル参照に用いるアドレス、すなわちコラムインデックスを計算する手段と、ローインデックスとコラムインデックスを加算する手段を有するように構成してよい。 The decoding address generator obtains a suffix of data read from the bit storage and calculates an address used for table reference necessary for decoding a variable length code calculated from the suffix, that is, a column index. And means for adding the row index and the column index.
 またさらに、上記構成部材の数、位置、形状等は上記実施の形態に限定されず、本発明を実施する上で好適な数、位置、形状等にすることができる。
 すなわち、上記実施の形態では、1つのプロセッサに復号処理装置が1つ備える場合を示したが、本発明は、これらの個数を制限するものではない。例えば、複数のプロセッサで1つの復号処理装置を処理する構成や、一つのプロセッサで複数の復号処理装置を処理する構成であってもよい。
 さらには、1つのプロセッサの場合、パイプラインプロセッサを用いたが、複数のプロセッサの場合、パイプラインプロセッサ以外のプロセッサを用いても良い。
 また、パイプラインプロセッサは、並列処理の無い場合、並列度kの並列処理の有る場合(スーパースケーラ)のいずれであってもよい。
Furthermore, the number, position, shape, and the like of the constituent members are not limited to the above-described embodiment, and can be set to a suitable number, position, shape, and the like in practicing the present invention.
That is, in the above-described embodiment, the case where one decoding processor is provided in one processor has been described, but the present invention does not limit the number of these devices. For example, a configuration in which one decoding processing device is processed by a plurality of processors or a configuration in which a plurality of decoding processing devices are processed by one processor may be employed.
Furthermore, although a pipeline processor is used in the case of one processor, a processor other than the pipeline processor may be used in the case of a plurality of processors.
Further, the pipeline processor may be any of the case where there is no parallel processing and the case where there is parallel processing with a parallel degree k (superscaler).
 また、上記実施の形態では4×4ブロックサイズを単位として復号処理を行う場合を例に説明したが、他の種々のブロックサイズを単位として復号処理を行う場合であってもよい。
 例えば、H.264で用いられる2×2サイズのブロックであってもよい。2×2サイズのブロックの復号処理では、2×2サイズ用のNumVLCテーブルを用いて復号を行うことと、ブロック係数の復号に必要な繰り返し回数以外は、4×4サイズのブロックの復号処理と同等の処理となる。
 さらに、符号化処理がCAVLC方式に従うならば、ブロックサイズにかかわりなく、上記実施の形態の手法を用いることができる。
In the above embodiment, the case where the decoding process is performed in units of 4 × 4 block sizes has been described as an example. However, the decoding process may be performed in units of other various block sizes.
For example, H.M. It may be a 2 × 2 size block used in H.264. In the decoding process of the 2 × 2 size block, decoding is performed using the NumVLC table for 2 × 2 size, and the decoding process of the 4 × 4 size block is performed except for the number of repetitions necessary for decoding the block coefficient. The processing is equivalent.
Furthermore, if the encoding process conforms to the CAVLC method, the method of the above embodiment can be used regardless of the block size.
 また、上述のようなプロセッサが搭載されるデコーダを含む電子機器としては、HDDレコーダやDVDプレーヤのようなデジタル方式の動画再生装置、その他の各種通信装置などが挙げられる。また、デスクトップ、ラップトップコンピュータ、その他無線・有線通信機能を有する情報機器、情報家電機器(テレビ・携帯音楽プレーヤ・ゲーム機)、またはこれに類するコンピュータなどいかなるコンピュータに搭載する場合でもよく、移動式・固定式を問わない。
 各種通信装置としては、パーソナルコンピュータに限らず、各種サーバ、EWS(エンジニアリングワークステーション)、中型コンピュータ、メインフレーム、携帯型情報端末、各種モバイル端末、PDA、携帯電話機、ウエアラブル情報端末、種々のテレビ・DVDレコーダ・各種音響機器、各種情報通信機能を搭載した家電機器、ネットワーク機能を有するゲーム機器等としても構わない。
In addition, examples of the electronic device including a decoder on which the processor as described above is mounted include a digital moving image reproducing device such as an HDD recorder and a DVD player, and other various communication devices. In addition, it may be mounted on any computer such as a desktop, laptop computer, other information device having wireless / wired communication function, information home appliance (TV / portable music player / game machine), or similar computer.・ Any fixed type.
Various communication devices are not limited to personal computers, but various servers, EWS (engineering workstations), medium-sized computers, mainframes, portable information terminals, various mobile terminals, PDAs, mobile phones, wearable information terminals, various televisions, It may be a DVD recorder, various audio devices, a home appliance equipped with various information communication functions, a game device having a network function, or the like.
 (復号処理プログラム)
 また、前述した実施形態の機能を実現する本発明の復号処理プログラムは、前述した各実施の形態における各種ブロック図などに示された処理部(処理手段)、機能などに対応したプログラムや、フローチャートなどに示された処理手順、処理手段、機能などに対応したプログラムや、各種テーブルを利用するプログラムなどにおいて各々処理される各処理プログラム、本明細書で全般的に記述される方法(ステップ)、説明された処理、データの全体もしくは各部を含む。
(Decryption processing program)
In addition, the decoding processing program of the present invention that realizes the functions of the above-described embodiments is a program corresponding to the processing unit (processing means), functions, and the like shown in the various block diagrams in each of the above-described embodiments, and a flowchart. Programs corresponding to the processing procedures, processing means, functions, etc. shown in the above, each processing program processed in a program using various tables, etc., a method (step) generally described in this specification, Includes the described process, the whole data or each part.
 具体的には、本発明の一実施形態における復号処理プログラムは、少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行うコンピュータが諸機能を実現可能なものである。 Specifically, in the decoding processing program according to the embodiment of the present invention, a computer that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix that follows the prefix has various functions. Can be realized.
 この復号処理プログラムは、前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御機能と、前記ビットストリーム一時保持部に保持された前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する制御情報を生成する第2の制御機能(制御情報・復号用アドレス生成制御機能)と、を含む機能を前記コンピュータに実現させることができる。 The decoding processing program includes a first control function for performing input / output processing for temporarily holding a part of the variable length code bitstream in the bitstream temporary holding unit, and the bitstream temporary holding unit Based on the prefix and the suffix of the variable-length code bitstream, a decoding address used for referring to a decoding table necessary for decoding is generated, and the variable-length code bitstream of the bitstream temporary storage unit is updated A function including a second control function (control information / decoding address generation control function) for generating control information can be realized by the computer.
 この場合、前記第2の制御機能(制御情報・復号用アドレス生成制御機能)では、前記復号用アドレスを生成する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを同時に又は逐次的に行う機能を前記コンピュータに実現させることができる。 In this case, in the second control function (control information / decoding address generation control function), a process of generating the decoding address, and a process of updating the variable-length code bitstream of the bitstream temporary storage unit The computer can realize the function of performing the above simultaneously or sequentially.
 また、この復号処理プログラムは、前記制御情報・復号用アドレス生成制御機能では、前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する制御情報・ローインデックス生成機能(第1の生成制御機能)と、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する処理動作を制御する復号用アドレス生成機能(第2の生成制御機能)とを含む機能を前記コンピュータに実現させることができる。 In the control information / decoding address generation control function, the decoding processing program generates a raw index for obtaining the decoding address based on the prefix of the variable-length code bitstream, and also adds a prefix length. A column for generating a control information / row index generation function (first generation control function) for generating the control information after generating the suffix length corresponding to, and for determining the decoding address from the suffix length A function including a decoding address generation function (second generation control function) for controlling a processing operation for generating an index and generating the decoding address based on the column index and the row index is realized in the computer. Can be made.
 この場合、前記制御情報・ローインデックス生成機能(第1の生成制御機能)では、前記ローインデックスと前記サフィックス長の生成後に、前記復号用アドレスを出力する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを同時又は逐次的に行う制御機能を前記コンピュータに実現させることができる。 In this case, the control information / row index generation function (first generation control function) outputs the decoding address after the generation of the row index and the suffix length, and the bitstream temporary storage unit It is possible to cause the computer to realize a control function for simultaneously or sequentially performing processing for updating the variable-length code bitstream.
 さらに、この復号処理プログラムでは、前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、を設けておくことができる。 Furthermore, in this decryption processing program, a first table storing a row index corresponding to the prefix length and a second table storing a suffix length corresponding to the prefix length can be provided.
 この場合、この復号処理プログラムでは、前記制御情報・ローインデックス生成機能(第1の生成制御機能)において、前記可変長符号ビットストリームの前記プリフィックス長を計数するプリフィックス計数機能と、前記プリフィックス計数機能にて計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算するプリフィックスアドレス計算機能と、前記プリフィックスアドレス計算機能にて求めた前記プリフィックスアドレスを用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得するテーブル情報取得機能と、前記テーブル情報取得機能にて取得された前記サフィックス長と前記プリフィックス計数機能にて計数した前記プリフィックス長とに基づいて、前記更新する制御情報である更新命令を生成する更新命令生成機能とを含む機能を前記コンピュータに実現させることができる。   In this case, in the decoding processing program, in the control information / low index generation function (first generation control function), a prefix counting function for counting the prefix length of the variable-length code bitstream, and the prefix counting function The prefix address calculation function for calculating a prefix address for referring to the first table and the second table from the prefix length counted in the above, and the prefix address obtained by the prefix address calculation function, A table information acquisition function that refers to each of the one table and the second table and acquires the corresponding row index and the suffix length; and the suffix length and the prefix meter acquired by the table information acquisition function Based on said prefix length counted in function, the function including the update instruction generating function for generating an update command is control information for the update can be achieved in the computer. *
 プログラムは、高水準プロシージャ型またはオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリまたはマシン言語で実装することができる。いずれの場合も、言語はコンパイラ型またはインタープリタ型言語であってもよく、プログラムの形態を問わない。 The program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language as required. In any case, the language may be a compiler type or an interpreter type, regardless of the form of the program.
 プログラムを供給する手法としては、電気通信回線(有線、無線を問わない)によってコンピュータと通信可能に接続された外部の機器から前記電気通信回線を通じて提供することも可能である。 As a method of supplying the program, it is also possible to provide the program from an external device that is communicably connected to the computer via a telecommunication line (whether wired or wireless).
 本発明の復号処理プログラムによれば、当該復号処理プログラムを格納するROM等の記憶媒体から、当該復号処理プログラムをコンピュータ(CPU)に読み込んで実行させれば、或いは、当該復号処理プログラムを、通信手段を介してコンピュータにダウンロードさせた後に実行させれば、上述した本発明に係る装置を比較的簡単に実現できる。発明の思想の具現化例として装置のソフトウェアとなる場合には、かかるソフトウェアを記憶した記憶媒体上においても当然に存在し、利用される。 According to the decoding processing program of the present invention, if the decoding processing program is read from a storage medium such as a ROM storing the decoding processing program into a computer (CPU) and executed, or the decoding processing program is communicated If it is executed after being downloaded to a computer via the means, the above-described apparatus according to the present invention can be realized relatively easily. When the software of the apparatus is embodied as an embodiment of the idea of the invention, it naturally exists and is used on a storage medium storing such software.
 また、プログラムは、一次複製品、二次複製品などの複製段階については問はない。プログラムの供給方法として通信回線を利用して行なう場合であれば通信回線が伝送媒体となって本発明が利用されることになる。さらに、装置における従属請求項は、方法、プログラムにおいて従属請求項に対応した構成にすることも可能である。 In addition, the program does not have any problem regarding the replication stage such as the primary replica and the secondary replica. If the program is supplied using a communication line, the communication line becomes a transmission medium and the present invention is used. Furthermore, the dependent claims in the apparatus may be configured to correspond to the dependent claims in the method and the program.
 (情報記録媒体)
 また、上述のプログラムを、情報記録媒体に記録した構成であってもよい。情報記録媒体には、上述のプログラムを含むアプリケーションプログラムが格納されており、コンピュータが当該情報記録媒体からアプリケーションプログラムを読み出し、当該アプリケーションプログラムをハードディスクにインストールすることが可能である。これにより、上述のプログラムは、磁気記録媒体、光記録媒体あるいはROMなどの情報記録媒体に記録してプログラムを提供することができる。そのようなプログラムが記録された情報記録媒体を、コンピュータにおいて使用することは、好都合な情報処理装置を構成する。
(Information recording medium)
Moreover, the structure which recorded the above-mentioned program on the information recording medium may be sufficient. The information recording medium stores an application program including the above-described program, and the computer can read the application program from the information recording medium and install the application program on the hard disk. Thus, the program can be provided by being recorded on an information recording medium such as a magnetic recording medium, an optical recording medium, or a ROM. Use of an information recording medium in which such a program is recorded in a computer constitutes a convenient information processing apparatus.
 プログラムを供給するための情報記録媒体としては、例えばROM、RAM、フラッシュメモリやSRAM等の半導体メモリ並びに集積回路、あるいはそれらを含むUSBメモリやメモリカード、光ディスク、光磁気ディスク、磁気記録媒体等を用いてよく、さらに、フレキシブルディスク、CD-ROM、CD―R、CD―RW、FD、DVDROM、HDDVD(HDDVD-R-SL<1層>、 HDDVD-R-DL<2層>、HDDVD-RW-SL、HDDVD-RW-DL、HDDVD-RAM-SL)、DVD±R-SL、DVD±R-DL、DVD±RW-SL、DVD±RW-DL、DVD-RAM、Blu-Ray Disk<登録商標>(BD-RーSL、BD-R-DL、BD-RE-SL、BD-RE-DL)、MO、ZIP、磁気カード、磁気テープ、SDカード、メモリスティック、不揮発性メモリカード、ICカード、等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置、等に記録して構成して用いてよい。 As an information recording medium for supplying the program, for example, ROM, RAM, semiconductor memory such as flash memory and SRAM, and an integrated circuit, or a USB memory, memory card, optical disk, magneto-optical disk, magnetic recording medium and the like including them. Furthermore, flexible disk, CD-ROM, CD-R, CD-RW, FD, DVDROM, HDDVD (HDDVD-R-SL <single layer>, HDDVD-R-DL <double layer>, HDDVD-RW) -SL, HDDVD-RW-DL, HDDVD-RAM-SL), DVD ± R-SL, DVD ± R-DL, DVD ± RW-SL, DVD ± RW-DL, DVD-RAM, Blu-Ray Disk <registration Trademarks> (BD-R-SL, BD-R-DL, BD-RE-SL, BD-RE-DL), O, ZIP, magnetic card, magnetic tape, SD card, memory stick, non-volatile memory card, IC card, and other portable media, recording devices such as hard disks built into computer systems, etc. May be used.
 さらに「情報記録媒体」は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの(伝送媒体ないしは伝送波)、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。 Furthermore, the “information recording medium” is a medium that dynamically holds a program for a short time (transmission medium), such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. Or a transmission wave), a volatile memory inside a computer system serving as a server or a client in that case, and those holding a program for a certain period of time.
 また、上述の実施の形態のプロセッサ、復号処理装置をシステムとして構成してもよい。この「システム」を、他の「システム」と統合したシステムとして、これら全体を本発明の「システム」として構成することも一向に構わない。 Further, the processor and the decoding processing device of the above-described embodiment may be configured as a system. This “system” may be integrated with other “systems”, and the entire system may be configured as the “system” of the present invention.
 その場合における「システム」とは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない。このような場合、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。 In this case, the “system” refers to a logical collection of a plurality of devices, and it does not matter whether the devices of each configuration are in the same housing. In such a case, the present invention may be applied to a system composed of a plurality of devices, or may be applied to an apparatus composed of one device.
 さらに、本明細書において、フローチャートに示されるステップは、記載された手順に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。また、実装では、プログラム手順(ステップ)が実行される順序を変更することができる。さらに、実装の必要に応じて、本明細書で説明した特定の手順(ステップ)を、組み合わされた手順(ステップ)として実装、除去、追加、または再配置することができる。 Further, in the present specification, the steps shown in the flowchart include processes that are executed in parallel or individually even if they are not necessarily processed in time series, as well as processes that are executed in time series according to the described procedure. It is a waste. In the implementation, the order in which the program procedures (steps) are executed can be changed. Further, certain procedures (steps) described herein can be implemented, removed, added, or rearranged as a combined procedure (step) as needed for implementation.
 さらに、装置の各手段、各機能、各ステップの手順の機能などのプログラムの機能を、専用のハードウェア(例えば専用の半導体回路等)によりその機能を達成してもよく、プログラムの全機能のうち一部の機能をハードウェアで処理し、全機能のうちさらに他の機能をソフトウェアで処理するようにしてもよい。専用のハードウェアの場合、各部を集積回路例えばLSIにて形成されてもよい。これらは個別に1チップ化されても良いし、一部または全部を含むように1チップ化されても良い。また、LSIには、他の機能ブロックが含まれていても良い。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。 Furthermore, the functions of the program such as each means of the apparatus, each function, and the procedure function of each step may be achieved by dedicated hardware (for example, a dedicated semiconductor circuit, etc.). Some of the functions may be processed by hardware, and other functions among all functions may be processed by software. In the case of dedicated hardware, each unit may be formed by an integrated circuit such as an LSI. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them. The LSI may include other functional blocks. Further, the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible. Further, if integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology.
 さらに、前記復号用アドレスを出力する処理と、前記ビット格納制御手段の前記可変長符号ビットストリームを更新する処理とを同時に行うように制御する手法は、必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解できる。このため、方法にかかる発明も、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。この場合、方法を実現するための一例として復号処理装置、プロセッサなども含めることができる。 Further, the method for controlling the process of outputting the decoding address and the process of updating the variable-length code bitstream of the bit storage control means to be performed simultaneously is not necessarily limited to a substantial apparatus. It can be easily understood that this also functions as a method. For this reason, the invention relating to the method is not necessarily limited to a substantial apparatus, and there is no difference that the method is also effective. In this case, a decoding processing device, a processor, and the like can be included as an example for realizing the method.
 ところで、このような復号処理装置、プロセッサは、単独で存在する場合もあるし、ある機器(例えば復号処理装置を含むプロセッサがデコーダや電子機器の機能として組み込まれているなど)に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。発明の思想の具現化例として装置のソフトウェアとなる場合には、かかるソフトウェアを記憶した記憶媒体上においても当然に存在し、利用されるといわざるをえない。 By the way, such a decoding processing device and processor may exist alone, or are incorporated in a certain device (for example, a processor including the decoding processing device is incorporated as a function of a decoder or an electronic device). The idea of the invention is not limited to this and includes various aspects. Therefore, it can be changed as appropriate, such as software or hardware. When the software of the apparatus is embodied as an embodiment of the idea of the invention, it naturally exists on the storage medium storing the software and is used.
 さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合であってもよく、一部を記憶媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。本発明をソフトウェアで実現する場合、ハードウェアやオペレーティングシステムを利用する構成とすることも可能であるし、これらと切り離して実現することもできる。 Furthermore, it may be a case where a part is software and a part is realized by hardware, and a part is stored on a storage medium and is read as needed. It may be as a thing. When the present invention is implemented by software, a configuration using hardware or an operating system may be used, or may be implemented separately from these.
 また、発明の範囲は、図示例に限定されないものとする。
 さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、あるいはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含む。この場合において、本実施形態において特に記載しなくとも、各実施の形態及びそれらの変形例に開示した各構成から自明な作用効果については、当然のことながら実施の形態の作用効果として含めることができる。逆に、本実施の形態に記載されたすべての作用効果を奏することのできる構成が、本発明の本質的特徴部分の必須構成要件であるとは限らない。また、実施の形態に示される全構成要件から幾つかの構成要件が削除された構成による実施の形態並びにその構成に基づく技術的範囲も発明になりうる。
The scope of the invention is not limited to the illustrated example.
Further, the above embodiments include various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. That is, examples include combinations of the above-described embodiments, or any of them and any of the modifications. In this case, even if not specifically described in the present embodiment, the obvious effects from the respective configurations disclosed in the embodiments and their modifications are naturally included as the effects of the embodiments. it can. On the contrary, the configuration capable of exhibiting all the effects described in the present embodiment is not necessarily an essential component of the essential features of the present invention. In addition, an embodiment based on a configuration in which some of the configuration requirements are deleted from all the configuration requirements shown in the embodiment, and a technical scope based on the configuration may be an invention.
 そして、各実施の形態及びそれらの変形例を含むこれまでの記述は、本発明の理解を容易にするために、本発明の多様な実施の形態のうちの一例の開示、すなわち、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、例証するものであり、制限するものではなく、適宜変形及び/又は変更が可能である。本発明は、その技術思想、またはその主要な特徴に基づいて、様々な形で実施することができ、各実施の形態及びその変形例によって本発明の技術的範囲が限定的に解釈されてはならないものである。
 従って、上記に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物を含む趣旨である。
In addition, the description so far including each of the embodiments and the modifications thereof is intended to facilitate the understanding of the present invention. The embodiments of the invention are merely shown as examples of implementation, are illustrative, not limiting, and can be modified and / or modified as appropriate. The present invention can be implemented in various forms based on its technical idea or its main features, and the technical scope of the present invention should not be construed in a limited manner by each embodiment and its modifications. It will not be.
Therefore, each element disclosed above is intended to include all design changes and equivalents belonging to the technical scope of the present invention.
 この出願は2008年6月23日に出願された日本出願特願2008-163161を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2008-163161 filed on June 23, 2008, the entire disclosure of which is incorporated herein.
 本発明は、復号処理装置全般に適用可能であり、より詳細には、デジタル方式の動画再生装置などのプロセッサといった用途に適用できる。 The present invention can be applied to all decoding processing apparatuses, and more specifically, can be applied to applications such as a processor such as a digital video reproducing apparatus.
本発明の第1の実施の形態における復号処理装置を備えたプロセッサの全体構成の一例を示すブロック図である。It is a block diagram which shows an example of the whole structure of the processor provided with the decoding processing apparatus in the 1st Embodiment of this invention. 本発明の第1の実施の形態の復号処理装置におけるビット格納器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of a detailed structure of the bit storage in the decoding processing apparatus of the 1st Embodiment of this invention. 本発明の第1の実施の形態の復号処理装置における制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of the detailed structure of the control information and raw index generator in the decoding processing apparatus of the 1st Embodiment of this invention. 本発明の第1の実施の形態の復号処理装置におけるアドレス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of a detailed structure of the address generator in the decoding processing apparatus of the 1st Embodiment of this invention. 本発明の第1の実施の形態の復号処理装置におけるビット調整・コラムインデックス生成器の処理動作の一例を示すフローチャートである。It is a flowchart which shows an example of the processing operation of the bit adjustment and the column index generator in the decoding processing apparatus of the 1st Embodiment of this invention. 本発明の第2の実施の形態の復号処理装置における制御情報・ローインデックス生成器の一例を示すブロック図である。It is a block diagram which shows an example of the control information and raw index generator in the decoding processing apparatus of the 2nd Embodiment of this invention. 本発明の第2の実施の形態の復号処理装置におけるビット格納器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of a detailed structure of the bit storage in the decoding processing apparatus of the 2nd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるビット格納器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of a detailed structure of the bit storage in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置における制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of the detailed structure of the control information and raw index generator in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるアドレス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of a detailed structure of the address generator in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるINST_UPD(更新命令)の内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of INST_UPD (update command) in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置における追加される命令の一つであるDEC_CODEの内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of DEC_CODE which is one of the instructions added in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置における追加される命令の一つであるINITIALIZEの内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of INITIALIZE which is one of the instructions added in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるMEM_LOADの内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of MEM_LOAD in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるビットバッファのビット補充処理の概要の一例を示す説明図である。It is explanatory drawing which shows an example of the outline | summary of the bit supplement process of the bit buffer in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるプリフィックス計数器の処理概要の一例を示す説明図である。It is explanatory drawing which shows an example of the process outline | summary of the prefix counter in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるローインデックステーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the row index table in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるサフィックス長テーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the suffix length table in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるローインデックステーブルを更新する命令の内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of the instruction | indication which updates a row index table in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるサフィックス長テーブルを更新する命令の内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of the command which updates the suffix length table in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置における可変長符号の復号処理の全体の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the whole process sequence of the decoding process of the variable-length code in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置における可変長符号の復号処理の全体の処理手順の一例を示す説明図である。It is explanatory drawing which shows an example of the whole process sequence of the decoding process of the variable-length code in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施形態の復号処理装置における動作の詳細手順の一例を示すタイミングチャートである。It is a timing chart which shows an example of the detailed procedure of the operation | movement in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置における制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of the detailed structure of the control information and raw index generator in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第3の実施の形態の復号処理装置におけるビット格納器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of a detailed structure of the bit storage in the decoding processing apparatus of the 3rd Embodiment of this invention. 本発明の第4の実施の形態の復号処理装置における追加される命令の一例を示す説明図である。It is explanatory drawing which shows an example of the command added in the decoding processing apparatus of the 4th Embodiment of this invention. 本発明の第4の実施の形態の復号処理装置におけるローインデックステーブルを更新する命令の内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of the command which updates a row index table in the decoding processing apparatus of the 4th Embodiment of this invention. 本発明の第4の実施の形態の復号処理装置におけるサフィックス長テーブルを更新する命令の内容の一例を示す説明図である。It is explanatory drawing which shows an example of the content of the command which updates the suffix length table in the decoding processing apparatus of the 4th Embodiment of this invention. 本発明の第4の実施の形態の復号処理装置における可変長符号の復号処理の全体の処理手順の一例を示す説明図である。It is explanatory drawing which shows an example of the whole process sequence of the decoding process of the variable-length code in the decoding processing apparatus of the 4th Embodiment of this invention. 本発明の第4の実施の形態の復号処理装置における可変長符号の復号処理の全体の処理手順の一例を示す説明図である。It is explanatory drawing which shows an example of the whole process sequence of the decoding process of the variable-length code in the decoding processing apparatus of the 4th Embodiment of this invention. 本発明のその他の実施の形態の復号処理装置におけるビット格納器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of a detailed structure of the bit storage in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置における制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of the detailed structure of the control information and raw index generator in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置における制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of the detailed structure of the control information and raw index generator in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置における動作の詳細手順の一例を示すタイミングチャートである。It is a timing chart which shows an example of the detailed procedure of the operation | movement in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置における制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。It is a block diagram which shows an example of the detailed structure of the control information and raw index generator in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence in the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the decoding processing apparatus of other embodiment of this invention. 本発明のその他の実施の形態の復号処理装置を備えたプロセッサの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the processor provided with the decoding processing apparatus of other embodiment of this invention. H.264のNumVLC0テーブルの一例を示す説明図である。H. It is explanatory drawing which shows an example of H.264 NumVLC0 table. 関連技術のTC、T1sを復号する際に使用されるテーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the table used when decoding TC of related technology, and T1s. H.264のNumVLC1テーブルの一例を示す説明図である。H. It is explanatory drawing which shows an example of H.264 NumVLC1 table. 関連技術のTC、T1sを復号する際に使用されるテーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the table used when decoding TC of related technology, and T1s. H.264のNumVLC2テーブルの一例を示す説明図である。H. It is explanatory drawing which shows an example of H.264 NumVLC2 table. 関連技術のTC、T1sを復号する際に使用されるテーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the table used when decoding TC of related technology, and T1s. 関連技術の処理装置を備えたプロセッサの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the processor provided with the processing apparatus of related technology. 関連技術の処理装置を備えたプロセッサを用いた場合に、TC、T1sの復号処理の一例を示すタイミングチャートである。It is a timing chart which shows an example of the decoding process of TC and T1s when the processor provided with the processing apparatus of related technology is used.
 10 メモリ
 20 プロセッサ
 50 復号処理装置
 51 第2の制御手段
 52 ビット格納器(第1の制御手段)
 53 制御情報・ローインデックス生成器(第1の生成制御部)
 54 復号用アドレス生成器(第2の生成制御部)
 55 生成器用パイプラインレジスタ
 61 ビットバッファコントローラ(ビット制御部)
 62 ビットバッファ(ビットストリーム一時格納部)
 71 プリフィックス計数器(プリフィックス計数部)
 72 プリフィックスアドレス生成器(プリフィックスアドレス計算部)
 73 ローインデックステーブル(第1テーブル)群
 74 サフィックス長テーブル(第2テーブル)群
 75 更新命令生成器(更新命令生成部)
 76 加算器(加算部)
 77、78 取得部(テーブル情報取得部)
 91 ビット調整・コラムインデックス生成器(コラムインデックス生成部)
 92 加算器(加算部)
DESCRIPTION OF SYMBOLS 10 Memory 20 Processor 50 Decoding processing apparatus 51 2nd control means 52 Bit storage (1st control means)
53 Control Information / Row Index Generator (First Generation Control Unit)
54 Decoding Address Generator (Second Generation Control Unit)
55 Pipeline Register for Generator 61 Bit Buffer Controller (Bit Control Unit)
62-bit buffer (bitstream temporary storage)
71 Prefix counter (prefix counter)
72 Prefix Address Generator (Prefix Address Calculator)
73 Row index table (first table) group 74 Suffix length table (second table) group 75 Update instruction generator (update instruction generation unit)
76 Adder (adder)
77, 78 Acquisition unit (table information acquisition unit)
91 bit adjustment / column index generator (column index generator)
92 Adder (adder)

Claims (16)

  1.  少なくともプリフィックスと前記プリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理装置であって、
     前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段と、
     前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御手段と、
     を含み、
     前記第2の制御手段が、
     前記復号用アドレスを生成する処理と、前記第1の制御手段に保持される前記可変長符号ビットストリームを更新する処理とを行うことを特徴とする復号処理装置。
    A decoding processing device that performs a process of decoding a variable-length code bitstream that is an encoded data string including at least a prefix and a suffix following the prefix,
    A first control means for temporarily holding a part of the variable-length code bitstream and controlling an input / output process for holding;
    Based on the prefix and the suffix of the variable length code bitstream input from the first control means, a decoding address used for reference to a decoding table necessary for decoding is generated, and the first control is performed. Second control means for supplying control information for updating said variable length code bitstream to said means;
    Including
    The second control means comprises:
    The decoding processing apparatus characterized by performing the process which produces | generates the said address for a decoding, and the process which updates the said variable length code bit stream hold | maintained at a said 1st control means.
  2.  請求項1に記載の復号処理装置において、
     前記第2の制御手段は、
     前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御部と、
     前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御部と、
     を含み、
     前記第1の生成制御部が、
     前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御部における復号用アドレスを生成する処理と、前記第1の制御手段における前記可変長符号ビットストリームを更新する処理とを実行することを特徴とする復号処理装置。
    The decoding processing device according to claim 1,
    The second control means includes
    Based on the prefix of the variable-length code bitstream, a row index for obtaining the decoding address is generated, a suffix length corresponding to the prefix length is generated, and after generating these, the control information is generated A first generation control unit;
    A second generation control unit that generates a column index for obtaining the decoding address from the suffix length, and generates the decoding address based on the column index and the row index;
    Including
    The first generation control unit
    After the generation of the row index and the suffix length, a process of generating a decoding address in the second generation control unit and a process of updating the variable length code bitstream in the first control unit are executed. A decoding processing device characterized by the above.
  3.  請求項1に記載の復号処理装置において、
     前記第1の制御手段は、
     前記可変長符号ビットストリームを一時保持するビットストリーム一時保持部と、
     前記ビットストリーム一時保持部における前記可変長符号ビットストリームを入出力する処理を行うビット制御部と、
     を含み、
     前記ビット制御部が、
     前記ビットストリーム一時保持部にて保持した前記可変長符号ビットストリームから予め決められたビット数のビットデータを読み出し、読み出し後の残りビット数が少ない場合に、新たなデータを保持した前記可変長符号ビットストリームの一部の末尾に連接して格納する機能と、
     前記更新する制御情報である更新命令に基づいて保持した前記可変長符号ビットストリームを更新する処理を行う機能と、
     を有することを特徴とする復号処理装置。
    The decoding processing device according to claim 1,
    The first control means includes
    A bitstream temporary storage unit for temporarily storing the variable length code bitstream;
    A bit control unit that performs processing to input and output the variable-length code bitstream in the bitstream temporary storage unit;
    Including
    The bit control unit
    Read the bit data of a predetermined number of bits from the variable length code bit stream held in the bit stream temporary holding unit, and when the remaining number of bits after reading is small, the variable length code holding new data The ability to concatenate and store at the end of part of the bitstream;
    A function of performing processing for updating the variable-length code bitstream held based on an update command that is the control information to be updated;
    A decryption processing apparatus.
  4.  請求項2に記載の復号処理装置において、
     前記第1の生成制御部は、
     前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、
     前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、
     前記プリフィックス長を用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得するテーブル情報取得部と、
     を含み、
     前記テーブル情報取得部が、前記ローインデックスと前記サフィクス長を取得することを特徴とする復号処理装置。
    The decoding processing apparatus according to claim 2, wherein
    The first generation control unit includes:
    A first table storing a row index according to the prefix length;
    A second table storing a suffix length corresponding to the prefix length;
    A table information acquisition unit that refers to each of the first table and the second table using the prefix length and acquires the corresponding row index and the suffix length;
    Including
    The decoding processing device, wherein the table information acquisition unit acquires the row index and the suffix length.
  5.  請求項2に記載の復号処理装置において、
     前記第1の生成制御部は、
     前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、
     前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、
     前記第1の制御手段から読み出された前記可変長符号ビットストリームの前記プリフィックス長を計数するプリフィックス計数部と、
     前記プリフィックス計数部にて計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算するプリフィックスアドレス計算部と、
     前記プリフィックスアドレス計算部にて求めた前記プリフィックスアドレスを用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得するテーブル情報取得部と、
     前記テーブル情報取得部にて取得された前記サフィックス長と、前記プリフィックス計数部にて計数した前記プリフィックス長と、前記第1の制御手段から読み出された前記可変長符号ビットストリームとに基づいて、前記更新する制御情報である更新命令を生成する更新命令生成部と、
     を含むことを特徴とする復号処理装置。
    The decoding processing apparatus according to claim 2, wherein
    The first generation control unit includes:
    A first table storing a row index according to the prefix length;
    A second table storing a suffix length corresponding to the prefix length;
    A prefix counting unit that counts the prefix length of the variable-length code bit stream read from the first control means;
    A prefix address calculation unit for calculating a prefix address for referring to the first table and the second table from the prefix length counted by the prefix counting unit;
    A table information acquisition unit that refers to each of the first table and the second table using the prefix address obtained by the prefix address calculation unit, and acquires the corresponding row index and the suffix length;
    Based on the suffix length acquired by the table information acquisition unit, the prefix length counted by the prefix counting unit, and the variable-length code bitstream read from the first control unit, An update command generation unit for generating an update command which is the control information to be updated;
    A decryption processing apparatus.
  6.  請求項2に記載の復号処理装置において、
     前記第2の生成制御部は、
     前記サフィックス長に基づいて前記コラムインデックスを生成するコラムインデックス生成部と、
     前記コラムインデックスと前記ローインデックスとを加算する加算部と、
     を含むことを特徴とする復号処理装置。
    The decoding processing apparatus according to claim 2, wherein
    The second generation control unit
    A column index generator for generating the column index based on the suffix length;
    An adder for adding the column index and the row index;
    A decryption processing apparatus.
  7.  請求項3に記載の復号処理装置において、
     前記ビット制御部が、
     前記可変長符号ビットストリームの前記プリフィックス長を計数するプリフィックス計数部を有することを特徴とする復号処理装置。
    The decryption processing device according to claim 3,
    The bit control unit
    A decoding processing apparatus comprising: a prefix counting unit that counts the prefix length of the variable-length code bitstream.
  8.  請求項5に記載の復号処理装置において、
     前記第1テーブル及び前記第2テーブルは、
     コンテキスト適応型可変長符号化方式における復号用NumVLCテーブルの種類に応じた複数のテーブルを各々有し、
     前記第1の制御手段が、
     前記種類を選択するテーブル選択制御情報を生成して前記第1の生成制御部に対して供給し、
     前記テーブル情報取得部が、
     前記テーブル選択制御情報に基づいて、前記第1のテーブルにおける前記複数のテーブルの中からいずれか一つを選択するとともに、前記第2のテーブルにおける前記複数のテーブルの中からいずれか一つを選択することを特徴とする復号処理装置。
    The decoding processing device according to claim 5, wherein
    The first table and the second table are:
    Each having a plurality of tables according to the type of NumVLC table for decoding in the context-adaptive variable-length coding scheme;
    The first control means comprises:
    Generating table selection control information for selecting the type and supplying it to the first generation control unit;
    The table information acquisition unit
    Based on the table selection control information, one of the plurality of tables in the first table is selected and one of the plurality of tables in the second table is selected. A decoding processing device characterized by:
  9.  少なくともプリフィックスと前記プリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理装置を搭載したパイプライン処理を実行可能なプロセッサであって、
     プロセッサパイプライン処理におけるレジスタステージにおいて、前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段と、
     前記プロセッサパイプライン処理における実行ステージにおいて、前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新する制御情報を生成する第2の制御手段と、
     を含み、
     前記第2の制御手段が、
     前記復号用アドレスを生成する処理と、前記第1の制御手段の前記可変長符号ビットストリームを更新する処理とを行うことを特徴とするプロセッサ。
    A processor capable of executing a pipeline process equipped with a decoding processing device that performs a process of decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix following the prefix;
    A first control means for temporarily holding a part of the variable-length code bitstream and controlling an input / output process for holding at a register stage in processor pipeline processing;
    A decoding address used for referring to a decoding table necessary for decoding based on the prefix and the suffix of the variable-length code bitstream input from the first control means in the execution stage in the processor pipeline processing And second control means for generating control information for updating the variable length code bitstream to the first control means,
    Including
    The second control means comprises:
    A processor characterized by performing a process of generating the decoding address and a process of updating the variable length code bitstream of the first control means.
  10.  請求項9に記載のプロセッサにおいて、
     前記第2の制御手段は、
     前記プロセッサパイプライン処理における実行ステージにおいて、前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御部と、
     前記プロセッサパイプライン処理における実行ステージにおいて、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御部と、
     を含み、
     前記第1の生成制御部が、
     前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御部における復号用アドレスを生成する処理と、前記第1の制御手段における前記可変長符号ビットストリームを更新する処理とを実行することを特徴とするプロセッサ。
    The processor of claim 9, wherein
    The second control means includes
    In the execution stage in the processor pipeline processing, based on the prefix of the variable-length code bitstream, a row index for obtaining the decoding address is generated, and a suffix length corresponding to the prefix length is generated, A first generation control unit that generates the control information after generating
    Second generation for generating a column index for obtaining the decoding address from the suffix length in the execution stage in the processor pipeline processing, and generating the decoding address based on the column index and the row index A control unit;
    Including
    The first generation control unit
    After the generation of the row index and the suffix length, a process of generating a decoding address in the second generation control unit and a process of updating the variable length code bitstream in the first control unit are executed. Processor.
  11.  請求項10に記載のプロセッサにおいて、
     前記第1の生成制御部は、
     前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、
     前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、
     プロセッサパイプライン処理における実行ステージ内であって、インデックス生成パイプライン処理における第1ステージにて、前記第1の制御手段から読み出された前記可変長符号ビットストリームの前記プリフィックス長を計数するプリフィックス計数部と、
     前記インデックス生成パイプライン処理における第2ステージにて、前記プリフィックス計数部にて計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算するプリフィックスアドレス計算部と、
     前記インデックス生成パイプライン処理における第3ステージにて、前記プリフィックスアドレス計算部にて求めた前記プリフィックスアドレスを用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得するテーブル情報取得部と、
     前記インデックス生成パイプライン処理における第4ステージにて、前記テーブル情報取得部にて取得された前記サフィックス長と前記プリフィックス計数部にて計数した前記プリフィックス長と、前記第1の制御手段から読み出された前記可変長符号ビットストリームとに基づいて、前記更新する制御情報である更新命令を生成する更新命令生成部と、
     を含むことを特徴とするプロセッサ。
    The processor of claim 10, wherein
    The first generation control unit includes:
    A first table storing a row index according to the prefix length;
    A second table storing a suffix length corresponding to the prefix length;
    Prefix count for counting the prefix length of the variable-length code bit stream read from the first control means in the execution stage in the processor pipeline processing and in the first stage in the index generation pipeline processing And
    A prefix address calculation unit that calculates a prefix address for referring to the first table and the second table from the prefix length counted by the prefix counting unit in a second stage in the index generation pipeline processing;
    In the third stage of the index generation pipeline process, the first address and the second table are respectively referred to using the prefix address obtained by the prefix address calculation unit, and the corresponding row index A table information acquisition unit for acquiring the suffix length;
    In the fourth stage of the index generation pipeline process, the suffix length acquired by the table information acquisition unit, the prefix length counted by the prefix counting unit, and the first control unit are read. An update command generation unit that generates an update command that is the control information to be updated based on the variable-length code bitstream;
    A processor comprising:
  12.  請求項9乃至請求項11のうちいずれか一項に記載のプロセッサを備えた電子機器。 An electronic device comprising the processor according to any one of claims 9 to 11.
  13.  少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理方法であって、
     前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御をし、
     続いて、前記ビットストリーム一時保持部から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御をし、
     前記第2の制御をする際に、
     前記復号用アドレスを生成する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを行うことを特徴とする復号処理方法。
    A decoding processing method for performing a process of decoding a variable length code bitstream that is an encoded data string including at least a prefix and a suffix following the prefix,
    A first control for performing input / output processing for temporarily storing a part of the variable-length code bitstream in the bitstream temporary storage unit;
    Subsequently, based on the prefix and the suffix of the variable length code bitstream input from the bitstream temporary storage unit, a decoding address used for decoding table reference necessary for decoding is generated, and the bit A second control for supplying control information for updating the variable-length code bitstream to the stream temporary storage unit;
    When performing the second control,
    The decoding processing method characterized by performing the process which produces | generates the said address for a decoding, and the process which updates the said variable length code bit stream of the said bit stream temporary holding part.
  14.  請求項13に記載の復号処理方法において、
     前記第2の制御をする際に、
     前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御をし、
     続いて、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御をし、
     前記第1の生成制御をする際に、
     前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御における復号用アドレスを生成する処理と、前記第1の制御における前記可変長符号ビットストリームを更新する処理とを実行させることを特徴とする復号処理方法。
    The decoding processing method according to claim 13,
    When performing the second control,
    Based on the prefix of the variable-length code bitstream, a row index for obtaining the decoding address is generated, a suffix length corresponding to the prefix length is generated, and after generating these, the control information is generated The first generation control,
    Subsequently, a column index for obtaining the decoding address from the suffix length is generated, and second generation control for generating the decoding address based on the column index and the row index is performed.
    When performing the first generation control,
    After the generation of the row index and the suffix length, a process of generating a decoding address in the second generation control and a process of updating the variable-length code bitstream in the first control are executed. Decoding processing method.
  15.  請求項14に記載の復号処理方法において、
     前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、を設け、
     前記第1の生成制御をする際に、
     前記可変長符号ビットストリームの前記プリフィックス長を計数し、
     続いて、計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算し、
     次に、計算した前記プリフィックスアドレスを用いて前記第1テーブルと前記第2テーブルとを各々参照して対応する前記ローインデックスと前記サフィックス長を取得し、
     しかる後、取得した前記サフィックス長と計数した前記プリフィックス長とに基づいて前記更新する制御情報である更新命令を生成することを特徴とする復号処理方法。  
    The decoding processing method according to claim 14, wherein
    A first table storing a row index corresponding to the prefix length, and a second table storing a suffix length corresponding to the prefix length;
    When performing the first generation control,
    Counting the prefix length of the variable length code bitstream;
    Subsequently, a prefix address for referring to the first table and the second table is calculated from the counted prefix length,
    Next, the corresponding row index and the suffix length are obtained by referring to the first table and the second table, respectively, using the calculated prefix address,
    Thereafter, an update command that is the control information to be updated is generated based on the acquired suffix length and the counted prefix length.
  16.  少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行うコンピュータが諸機能を実現可能な復号処理プログラムであって、
     前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御機能と、
     前記ビットストリーム一時保持部に保持された前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する制御情報を生成する第2の制御機能と、
     を含む機能を前記コンピュータに実現させ、
     前記第2の制御機能では、
     前記復号用アドレスを生成する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを行う機能を前記コンピュータに実現させることを特徴とする復号処理プログラム。
    A decoding processing program capable of realizing various functions by a computer that performs processing for decoding a variable-length code bitstream that is an encoded data sequence including at least a prefix and a suffix following the prefix,
    A first control function for performing input / output processing for temporarily storing a part of the variable-length code bitstream in a bitstream temporary storage unit;
    Based on the prefix and the suffix of the variable-length code bitstream held in the bitstream temporary holding unit, a decoding address used for decoding table reference necessary for decoding is generated, and the bitstream temporary holding is performed. A second control function for generating control information for updating the variable-length code bitstream of a unit;
    The computer includes a function including:
    In the second control function,
    A decoding processing program that causes the computer to realize a function of performing a process of generating the decoding address and a process of updating the variable-length code bitstream of the bitstream temporary storage unit.
PCT/JP2009/057832 2008-06-23 2009-04-20 Decode processing device, processor, electronic device, decode processing method, and decode processing program WO2009157250A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010517811A JP5083579B2 (en) 2008-06-23 2009-04-20 Decoding processing device, processor, electronic device, decoding processing method, and decoding processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-163161 2008-06-23
JP2008163161 2008-06-23

Publications (1)

Publication Number Publication Date
WO2009157250A1 true WO2009157250A1 (en) 2009-12-30

Family

ID=41444320

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/057832 WO2009157250A1 (en) 2008-06-23 2009-04-20 Decode processing device, processor, electronic device, decode processing method, and decode processing program

Country Status (2)

Country Link
JP (1) JP5083579B2 (en)
WO (1) WO2009157250A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107835431A (en) * 2011-06-28 2018-03-23 三星电子株式会社 Method and apparatus to Video coding and the method and apparatus to video decoding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3772976B2 (en) * 2002-05-22 2006-05-10 ソニー株式会社 Processor, encoder, decoder and electronic device
JP2006254225A (en) * 2005-03-11 2006-09-21 Toshiba Corp Apparatus and method for decoding variable length code
JP2007049670A (en) * 2005-08-09 2007-02-22 C & S Technology Co Ltd H.264 decoding method for fast cavlc
JP2007060199A (en) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd Variable length decoder and integrated circuit including same
JP2008124926A (en) * 2006-11-14 2008-05-29 Renesas Technology Corp Image decoding apparatus, image encoding apparatus, and system lsi

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3772976B2 (en) * 2002-05-22 2006-05-10 ソニー株式会社 Processor, encoder, decoder and electronic device
JP2006254225A (en) * 2005-03-11 2006-09-21 Toshiba Corp Apparatus and method for decoding variable length code
JP2007049670A (en) * 2005-08-09 2007-02-22 C & S Technology Co Ltd H.264 decoding method for fast cavlc
JP2007060199A (en) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd Variable length decoder and integrated circuit including same
JP2008124926A (en) * 2006-11-14 2008-05-29 Renesas Technology Corp Image decoding apparatus, image encoding apparatus, and system lsi

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107835431A (en) * 2011-06-28 2018-03-23 三星电子株式会社 Method and apparatus to Video coding and the method and apparatus to video decoding
CN107835431B (en) * 2011-06-28 2021-05-25 三星电子株式会社 Method and apparatus for encoding video and method and apparatus for decoding video

Also Published As

Publication number Publication date
JP5083579B2 (en) 2012-11-28
JPWO2009157250A1 (en) 2011-12-08

Similar Documents

Publication Publication Date Title
US7119723B1 (en) Decoding variable length codes while using optimal resources
Peleg et al. Intel MMX for multimedia PCs
RU2629440C2 (en) Device and method for acceleration of compression and decompression operations
JP2009026106A (en) Instruction code compression method and instruction fetch circuit
US8379032B2 (en) System and method of mapping shader variables into physical registers
Lefurgy et al. Evaluation of a high performance code compression method
TWI498818B (en) Indicating a length of an instruction of a variable length instruction set
EP1866804A2 (en) Speculative load of look up table entries based upon coarse index calculation in parallel with index calculation
KR20190129702A (en) System for compressing floating point data
US7327290B1 (en) Image-decoding system with multi-run mechanism and method thereof
US20080072016A1 (en) Entropy Processor for Decoding
JP2005535974A (en) Apparatus, method, and compiler for enabling variable length instruction processing in a very long instruction word processor
US9154157B2 (en) Search unit to accelerate variable length compression/decompression
CN114721720A (en) Instruction set extension method and device, electronic equipment and storage medium
JP2003249029A (en) Data writing device and method for producing dvd format data
US8151096B2 (en) Method to improve branch prediction latency
US8549266B2 (en) System and method of instruction modification
JP5083579B2 (en) Decoding processing device, processor, electronic device, decoding processing method, and decoding processing program
US7630585B2 (en) Image processing using unaligned memory load instructions
US20140052960A1 (en) Apparatus and method for generating vliw, and processor and method for processing vliw
US7075462B2 (en) Speeding up variable length code decoding on general purpose processors
JP2002519957A (en) Method and apparatus for processing a sign function
JP2005244928A (en) Variable length decoding device, variable length decoding method and reproducing system
US6427200B1 (en) Multiple changeable addressing mapping circuit
US6922773B2 (en) System and method for encoding constant operands in a wide issue processor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09769960

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010517811

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09769960

Country of ref document: EP

Kind code of ref document: A1