WO1993011634A1 - Motion information decoding device for hdtv - Google Patents

Motion information decoding device for hdtv Download PDF

Info

Publication number
WO1993011634A1
WO1993011634A1 PCT/FR1992/001087 FR9201087W WO9311634A1 WO 1993011634 A1 WO1993011634 A1 WO 1993011634A1 FR 9201087 W FR9201087 W FR 9201087W WO 9311634 A1 WO9311634 A1 WO 9311634A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
storage means
code
bits
coding
Prior art date
Application number
PCT/FR1992/001087
Other languages
French (fr)
Inventor
Philippe Guillotel
Georges Joulaud
Original Assignee
Thomson Consumer Electronics S.A.
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 Thomson Consumer Electronics S.A. filed Critical Thomson Consumer Electronics S.A.
Publication of WO1993011634A1 publication Critical patent/WO1993011634A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/015High-definition television systems
    • H04N7/0152High-definition television systems using spatial or temporal subsampling
    • H04N7/0155High-definition television systems using spatial or temporal subsampling using pixel blocks
    • H04N7/0157High-definition television systems using spatial or temporal subsampling using pixel blocks with motion estimation, e.g. involving the use of motion vectors

Definitions

  • the present invention relates to a device for decoding movement information in high definition television. It relates to a device incorporated in a high definition television using the HD-MAC system.
  • HD-MAC The television system known as HD-MAC is a system that transmits reduced amounts of information using bitrate reduction techniques applied to television pictures. These techniques take advantage of the spatio-temporal properties of images,
  • HD-MAC television system three modes are used according to the movement in the image: namely the 80ms, 40ms and 20ms modes, these modes corresponding to three - different spatio-temporal subsampling.
  • the coding of HD-MAC television images takes place on the basis of a division of the image into blocks of 16 ⁇ 16 pixels every 40 ms, by considering each time two interlaced frames.
  • the 80ms mode corresponds to fixed blocks 0 for which the movement is zero, the 40ms mode to blocks for which the movement has an amplitude less than or equal to 6 pixels, and the 20ms mode to blocks for which movement has an amplitude greater than plus or minus 6 pixels.
  • the 40ms mode which uses the -motion vectors is -> compensated in movement and, on 80ms corresponding to the duration of two interlaced frames, only the following combinations are authorized (80-80, 40-40, 40-20, 20-40, 20-20).
  • mode and movement information is transmitted via a specific channel called digital assistance channel or DATV.
  • French patent application No. 90 08299 of June 29, 1990 has therefore been proposed a method of coding with adjustable parameters of a field of motion in a sequence of moving images, this method being able to be used, in particular, in the encoding of DATV information from the HD-MAC television system. This process allows a significant reduction in the information rate to be obtained.
  • the object of the present invention is therefore to propose a device for decoding movement information in high definition television, more particularly for decoding the information transmitted over the digital assistance channel in the case of the HD-MAC system, this information having been encoded, for example, using the method described in French patent application No. 90 08299.
  • the subject of the present invention is a device for decoding movement information in high definition television, this information being coded according to a coding method with adjustable parameters in which, the images being divided into N lines of M macroblocks of dimensions determined, the movement information code of a macroblock comprises at least one start word (BMB) relating to the coding information and coding information, characterized in that it comprises first storage means for storing along N lines the M start words of a line and of the second storage means for storing along N lines the M sets of coding information relating to a line, the first and second storage means being read in parallel, decoding means and a means of storage at the output of the decoded information.
  • BMB start word
  • the coding information is obtained by calculating a coding tree on each of the macroblocks so as to obtain several menus identifying each vector-movement (Vect i) present in the image by accompanying each vector (Vect i) with its code word (CWi).
  • the code word represents either a node in the tree or the number of a vector in the menu.
  • the movement information code of a macroblock includes a start word (BMB), a menu consisting of all of the different motion vectors (Vect i), a tree decomposition code (QTREE) and code words (CWi 1 ) associated with the motion vectors.
  • the decoding device further comprises third storage means for storing along N lines the M tree decomposition codes relating to a line .
  • the different coding means are constituted by N FIFO registers (for F1RST-IN, FIRST-OUT in English) in parallel, each register being able to store respectively Mxn bits, n corresponding to the number of bits of a start word, or Mxm bits, m corresponding to the number of bits of a set of coding information, or Mxp bits, p corresponding to the number of bits of the tree decomposition code.
  • the decoding device comprises a shift register by storage means for temporarily storing the corresponding data before writing it to the storage means and a control means managing the shift registers and selecting the storage means.
  • FIFO registers allow a parallel reading of the information which is then sent to the decoding means.
  • the decoding means comprise a decoder of the code words and a decoder of the tree decomposition code when the information has been coded according to the process described in French patent application No. 90 08299.
  • FIGS. 1A , 1B, 1C represent a method for decomposing images into blocks with which is associated a decomposition tree for coding the blocks;
  • FIG. 3 is a schematic representation of a device for coding DATV information using the above method
  • FIG. 4 is a block diagram of a movement information decoding device according to the present invention.
  • FIG. 5 is a more detailed block diagram of the part allowing the decoding of the tree decomposition code used in the device of Figure 4;
  • FIG. 6 is a more detailed block diagram of the part allowing the route decoding used in the device of Figure 4;
  • FIG. 7 is a block diagram of the decoder of the code words used in the decoding device of FIG. 4, and
  • FIG. 8 is a representation of the circuit for decoding the relative addresses used in the decoding device in FIG. 4.
  • the present invention will be described with reference to an HD-MAC type television system in which the digital assistance information is coded using a method of coding with adjustable parameters of a field of motion in a sequence of moving images. described in French patent application No. 90 08299.
  • the decoding device according to the present invention can also be used with digital assistance information coded according to other types of coding.
  • the coding method described in this patent application consists in determining a coding tree defined by the homogeneous areas of the images to be transmitted and in linking this tree to the coding of a field of motion and to the coding of branch or mode decisions by taking account of variable parameters to obtain a good resolution-flow compromise.
  • the decomposition into a coding tree consists, as represented in FIGS. 1A, 1B and 1C, of dividing an image into homogeneous blocks of size n ⁇ n as large as possible, then of associating with the division obtained a tree, as represented in FIG.
  • REPLACEMENT SHEET the information to be coded is identical (represented, for example, by the sheets).
  • the information to be coded is the value of the motion vector as well as of the mode obtained to which is added a coding of the nodes necessary for the construction of the tree at the time of decoding.
  • This coding of the nodes can be done in the form of a specific "vector" associated with the coding of the movement or give rise to a particular code. Assuming the coding is limited to vectors of nominal amplitude —V in the directions
  • 08299 is to create a vector menu containing all the vectors present in the macroblock. Under these conditions, the information to be coded is no longer the value of the vector but a relative addressing in the menu. 0 To reconstruct the coding tree, it is generally preferable not to code a node as a specific "vector" but to transmit a particular code which represents the coding tree. In this case, the Information to be transmitted is coded as shown in Figure 5 2.
  • the BMB field represents a start word containing the number of different vectors Nv, a flag T indicating the presence or absence tree decomposition, and the length of the CLcw code words.
  • the "MENU" field comprises all the different motion vectors Vect i, present 0 in the macroblock considered.
  • the "QUADTREE" decomposition field includes a TREE code which gives the decomposition into a node and a leaf, a node being represented, for example, by an "O” and a leaf by a "1" and the field of code words referenced " CODE ORDS "gives the code words CWI 1 representing the branch or route decision and possibly the address of a motion vector in the menu.
  • the parameters for defining the coding tree are then: - size of the elementary blocks 16 ⁇ 16 pixels
  • the image is spatially divided into 99 macroblocks of size 128x128.
  • the “QUADTREE” decomposition technique used in the coding process consists in finding, in the image thus cut into macroblocks (the macroblocks being a set of 8 ⁇ 8 basic blocks of 16 ⁇ 16 pixels) the homogeneous areas of size 2 ⁇ 2.
  • a set of 2 x 2 blocks is homogeneous if the BD (branch or route decision), MV (vector-movement) and RAD (relative address) information are the same for each block. Then the digital assistance information or DATV is sent only once for all these zones, together with a code which represents the decomposition "QUADTREE".
  • the "QUADTREE" decomposition is performed on surfaces representing 2x2 basic blocks, 4x4 basic blocks and 8x8 basic blocks, namely on four levels, which corresponds to the decomposition shown in Figure 1C.
  • a "MENU” system can in this case be used, as described more generally above. This MENU is made up of the list of all the different vectors. So using the coding method described above, to each macroblock, the data flow will be of the type represented in FIG.
  • a start word BMB constituted in this case by a word Nv of 7 bits representing the number of different vectors in the MENU, a QT flag indicating the presence or absence of decomposting in "QUADTREE”, a 4 bit CLc word giving the length of the code words (CW), the MENU, that is to say the set of all the vectors -different movements which, in the present case, can be between 0 and 64.
  • This MENU is constituted by words Vect i of 8 bits for amplitudes of vectors of -6 pixels horizontally and vertically.
  • the MENU has a variable length in 8-bit steps.
  • the QTREE code representing the decomposition into a coding tree is formed by a 21-bit word and the "CODEWORDS" field consists of a set of different code words up to 64.
  • each CWi 1 word of variable length contains information on the mode or decision of branch and the address of the motion vector in the MENU.
  • a 32-bit synchronization word is included at the end of each line of macroblocks, i.e. all
  • This word is a single word in the data flow and is for example equal to "0. 1.1.1,
  • This type of information coding is obtained by using a coding device of the type represented in FIG. 3.
  • This coding device schematically includes an encoder 1 of code words which receives as input the BD information of mode or branch decision , the vectors -motion MV and the relative addresses RAD and which encode them in a code word Cw of variable length.
  • Encoder 1 code words works as follows. For each macroblock, the number (Nv) of different motion vectors per odd image is counted and transmitted in a MENU. Thus, the MENU will be made up of Nv 8-bit words for a vector-motion amplitude of -6 pixels in the horizontal direction and • 6 pixels in the vertical direction. The encoder will therefore output information NBvect (number of vectors) and CLvect (length of the vectors). Then, the branch or route decisions and the motion vectors are coded with a system called "ROUTE" as shown in the table below:
  • the coder 1 of the code words therefore provides for each macroblock and every 80 ms, namely every two images:
  • Nv 7-bit word representing the number of different motion vectors in an odd image, Nv being able to go up to 64,
  • - CLcw 4-bit word, length of code words
  • - CW CLcw bit words, code words corresponding to the "ROUTE" coding technique which can have words up to 11 bits.
  • the CW information from coder 1 of the code words is sent to a "QUADTREE" coder 2.
  • a breakdown into “QUADTREE” is carried out from areas having the size of a basic block up to the size of the macroblock.
  • the QTREE code of 21 bits representing the decomposition into “QUADTREE” is obtained.
  • the "0" indicates a node and the "1" indicates a leaf.
  • the corresponding sub-blocks are forced to "0" in order to avoid a code consisting only of "1". It is possible to consider a flexible QTREE code.
  • the non-significant "0" are deleted according to the "1" corresponding to sheets.
  • the QTREE code is sent to a multiplexer 5 to insert it at the right time in the coded DATV information.
  • the encoder 2 transmits NB sheet information (number of sheets) which is sent to a selection circuit 3.
  • the selection circuit 3 implements a selection process by macroblocks which makes it possible to choose between four possible options in order to reduce the bit rate of the information.
  • coded information can be transmitted in the following ways:
  • the no MENU option means that the MENU system, ie the only transmission of different motion vectors, is not used.
  • the no MENU option provides for each macroblock and every 80ms (two images):
  • Nv is forced to 65 and if the tree decomposition of type QTREE is not used (the 21-bit word: QTREE is not used), the flag QT is equal to " 1 "otherwise the QT flag is equal to” 0 "and the 64 code words (1 for each 16x16 pixel block) are transmitted.
  • the signals from the selection circuit 3, namely QT, NBvect, CLcw, CLvect, select are sent to a multiplexer 5.
  • the selection circuit 3 sends selection information simultaneously to the multiplexer 5 and to a multiplexer 4 which selects one or the other CW information (according to the MENU option or no MENU) from the coder 1 of code words to send this information to the multiplexer 5.
  • the multiplexer 5 At the output of the multiplexer 5, we therefore obtain the coded DATV information transmitted in series.
  • the decoder comprises, in accordance with the present invention, a part 10 for storing the input data, namely DATV information coded in the device of FIG. 3 and according to the method described above. This information comes in series.
  • the decoding device also includes a decoder 11 of the QUADTREE coding tree or decoder, a decoder 12 of the code words or CW decoder, a device 13 for storing the output data referenced RAM and a circuit 14 for decoding the relative addresses . As shown in FIG.
  • the QUADTREE decoder 11 is connected to a control circuit 15 which receives information from the storage part 10 of the data and sends commands to the decoder 11.
  • the decoder 12 of code words receives information from the storage part 10.
  • This decoder 12 of code words sends information either directly to a multiplexer 17 or to a vector table 16 connected to the multiplexer 17, then to the device 13 for storing the output data.
  • This device 13 also receives information from a circuit 18 for controlling the storage device controlled by information from the decoder 11.
  • the storage part 10 of the input data will now be described in more detail. According to the present invention, this part 10 is made up of 3 sets 100, 101, 102 of FIFO type shift registers for First-in, First-out in English.
  • the first set 100 is made up of 9 FIFO registers in parallel, each FIFO register being able to store 11 ⁇ 64 ⁇ 11 bits.
  • the first number 11 corresponds to the 11 macroblocks of a line in an HD-MAC television image cut out as described above, the number 64 corresponds to the maximum number of vectors and possible code words, these words being coded on 11 bits or less .
  • the second set 101 of FIFO registers also consists of 9 registers in parallel which can each store 11 words of 21 bits, the 21 bits representing the tree decomposition code. This code is stored in the 9 FIFO registers when it is signaled present in the start word or BMB.
  • the third set 102 of FIFO registers consists of 9 registers in parallel of 11 ⁇ 12 bits making it possible to store the 11 start words or BMB of the 11 macroblocks of a line, these start words being coded on 12 bits. As shown in Figure 4, the information
  • DATVs sent in series are first sent to shift registers 103, 104 and 105 where they are temporarily stored before being sent to the corresponding FIFOs.
  • the register 103 stores the 11 data of a line of a macroblock, namely the vector tables and the code words
  • the register 104 stores the 11 decomposition codes in tree of a line of a macroblock
  • the register 105 stores the 11 start words or BMB of a line in a macroblock.
  • the three sets of FIFO registers are controlled by a data acquisition control circuit 106 which controls the introduction of DATV information into the shift registers 103, 104, 105 and selects the appropriate FIFO registers by sending a selection pulse. 1 to 9, a pulse for selecting a set of registers such as select.
  • Part 10 also includes a register 107 making it possible to decode the characteristic information transmitted every 80 ms, namely every two images, and making it possible to obtain the film / video information and optionally Vx and Vy.
  • each set 100, 101, 102 consists of two identical sets, as shown diagrammatically in FIG. 4, in parallel, one being decoded while the other is loaded.
  • the storage part 10 comprises, between all of the FIFO registers and the decoders proper, 3 output shift registers 108, 109 and 110 allowing the temporary storage of the data before their processing.
  • This decoder 11 receives the QT code stored in the register 109.
  • the QT code comprises 21 bits, in the embodiment described, namely 1 bit relating to level 1, 4 bits relating to level 2 and 16 bits relating to level 3. Its operation is controlled by the decoding control circuit 15.
  • the circuit 15 receives as input information from register 110 storing the beginnings of words or BMB.
  • the BMB contains a flag indicating the presence or absence of tree decomposition.
  • Circuit 15 also receives information from register 109 storing the tree decomposition QT code. It sends a certain amount of information to the decoder 11 allowing control of the decoding.
  • the decoder comprises a multiplexer 151 which receives as input the information contained in the QTREE block relating to level 1, namely the 128 ⁇ 128 macroblock, the information originating from a multiplexer 152 relating to level 2, namely the 64x64 blocks and the information from the multiplexer 153 concerning level 3, namely the 32x32 blocks as well as "1".
  • This multiplexer 151 is controlled by information coming from a 2-bit level counter 154 whose operation is controlled by the CLRNIV and ENNIV information coming from a sequencer 160.
  • the multiplexer 152 receives the 4 bits of level 2 stored in the register 109.
  • the multiplexer 153 receives as input 4 bits from four multiplexers 155 a, 155 b, 155 c, 155 d. These four multiplexers each receive four bits relating to level 3 stored in the register 109.
  • the various multiplexers 152, 153, 155 are controlled by two counters 157, 158 with two bit positions. The counters are set to zero by information ENCPQT from the sequencer 160.
  • the "carry" output or hold of the counter 156 is sent at the input of the counter 157 and at the input of a multiplexer 159.
  • the "carry" output of the counter 157 is sent to the input of the counter 158 and to the input of the multiplexer 159 and the "carry” output of the counter 158 is sent to the input of the multiplexer 159 which also receives a "1".
  • the multiplexer 159 transmits FINECRQT information for the end of RAM writing.
  • the counters 156, 157, 158 send to the output memory 13 an address referenced Ad 0, 1; Ad 2, 3; Ad 4, 5; this information also being used to control the multiplexers 152, 153, 155 as shown in FIG. 5.
  • This set in relation to the sequencer 160 which receives the FINECRQT information from the multiplexer 159, OKQT from the multiplexer 151 and Cy2 from the counter 158 and which transmits the information MEMCW, ENCPQT, ECRRAM, CLRNIV and ENNIV operates as follows.
  • the content Cw will be written as many times as necessary in the RAM 13 at the addresses provided by the 3 counters.
  • the address is deduced from the increment of the 3 counters 156, 157, 158 cascades until the signal FINECRQT (CY of the selected level) goes to 1.
  • level counter 154 is reset to 0, the other 3 remain in the state and therefore switch to the new current QT value.
  • the memorization of the 64 elementary blocks will be finished when the 3 counters have incremented the 65 boxes (CY2).
  • the principle of decoding the QUADTREE decomposition tree assumes that the transmitted codeword is used once, 4 times, 16 times or 64 times depending on the value of the QTREE code stored in register 109. Consequently: "- the decoder of FIG. 5 with the help of a sequencer 160 performs the duplication of the code word with the selected values.
  • the duplication of the code word consists of writing to addresses different from the macroblock with the same value of the word of coded.
  • the decoder 11 sends on the control circuit 18 of the storage device 13 for output, an order for writing or not in said RAM.
  • the code words stored in the register 108 are sent as input to a code word decoder 12 or CW decoder which will be described in more detail below.
  • This decoder 12 of code words makes it possible to obtain on the output 12A the relative address and the route which are applied directly at the input of the output memory 13 which will be described below, and on the output 12B, ie an address making it possible to output the value of the motion vector stored in a table 16 of vectors -motion constituted by a memory such as a RAM type memory of capacities 64 ⁇ 8 bits, that is to say directly the value of the vector -motion, this value being included, in the embodiment shown, between 1 and 169.
  • the value of the motion vector coming directly from the decoder 12 and the value of the motion vector coming from the RAM 16 are sent to a multiplexer 17 with two inputs and an output which also receives a selection pulse depending on the option used.
  • the output of the multiplexer 17 is sent to the output memory 13.
  • the output memory 13 which is constituted, for example, by a memory of RAM type makes it possible to store decoded code words of 8 ⁇ 13 bits. In fact, the output memory 13 is dimensioned to store only one line of blocks elementary in a macroblock. According to an embodiment of the present invention, two RAM type memories are used working in flip-flop mode. When a memory is read, to obtain 8 elementary blocks, the other memory is written to store 8 elementary blocks. This makes it possible to decode a complete macroblock of 64 elementary blocks and to read at the same time the 8 blocks of the previous image.
  • the memory 13 is controlled by a device 18 for controlling the address of the memory which sends the address to the memory 13 in a macroblock.
  • This control device 18 receives elements making it possible to give the address in the macroblock, namely the number of the macroblock comprised between 1 and 99 in the embodiment shown and the number of the block in the macroblock comprised between 1 to 64 in the illustrated embodiment.
  • the memory 13 receives a write pulse in the memory symbolized by the reference W.
  • the information sent from memory 13 is sent on a delay line which makes it possible to obtain information "ROUTE", MVx and MVy.
  • the other routes namely the 40 ⁇ 40 routes and the 40 ⁇ 20 routes being a function of the number Nv which is a variable number
  • the 40x40 routes are coded with values of the code word between 10 and (9. Nv) + 10 and the 40x20 routes are coded up to (10. Nv) + 10.
  • the decoding can be carried out easily using only subtractors 120, 121, 125 and selection devices 126, 127 as well as certain storage registers 128, 124.
  • the stored code word in register 108 is sent to input A of a subtractor 120 from which the value "10" sent 10 is subtracted from input B of said subtractor.
  • the value CW-10 is obtained. If AB is less than 0, we exit on a specific output referenced ⁇ 0 and in this case, we obtain said first cases perfectly known at the level of the route and the relative addresses which are directly stored in the - * register 128.
  • the output AB of the subtractor 120 giving the value CW-10 greater than 0 is sent to the input A of a second subtractor 121 which receives on its input B the value Nvx8 of which the obtaining will be described below.
  • the value Nv is obtained by using the register 109 storing the beginnings of words 0 or BMB.
  • the output of register 109 is connected to the input of a multiplexer 123, the other of which. input receives the value "169" corresponding to the total number of possible -movement vectors in this case.
  • This multiplexer is controlled by a code from a circuit 122 which selects from the data from the register 109 the data corresponding to Nv.
  • the output of the multiplexer 123 is sent to the input of a register 124 which stores the data Nv and multiplies it by 8 by shifting all of the bits by zero.
  • the output of register 124 namely the value Nvx8, is therefore input 0 on the subtractor 121.
  • the data Nv at the output of the multiplexer 123 is also sent directly to the input B of a third subtractor 125 which receives on its input A the data from subtractor 121, namely (CW-10) -Nvx8 when this data is greater than zero. If AB is less than zero, then divide (CW-10) / 8, the quotient gives the vector number and the rest gives the relative address for 40-40 mode.
  • This division by 0 is carried out by taking the three least significant bits of CW-10 for the remainder of the division (relative addresses) and the 8 most significant bits for the quotient (number of the vector). As shown in FIG. 7, this is done using the selectors 126 and 127.
  • the selector 126 chooses the most significant bits of the value CW-10 coming from the subtractor 120 and the selector 127 chooses the least significant bits of the value CW-10 from subtractor 120, this operation being carried out according to an order from subtractor 121.
  • subtractor 125 we perform the subtraction (CW-10) -Nvx8-Nv, i.e. (CW- 10) - 9xNv.
  • the selectors 126 and 127 are connected at the input of the register 128 which gives respectively on the output 12A the route and the relative address and on the output 12B either directly the value of the vectors -motion, or an address in a table storing the motion vectors.
  • FIG. 8 an embodiment of a FIFO type delay line for the relative addresses. Indeed, to decode the motion vectors in the even image over a period of 80 ms, the data must be delayed. This delay allows the selection of one of the 9 motion vectors relative to the current position of an elementary block. This delay can be achieved in a circuit as shown in FIG. 8.
  • the relative address and route information from RAM 13 on channel 13A are sent in input of a multiplexer 140, which receives on its other input the same type of information but delayed by 88 elementary blocks.
  • the output of the multiplexer 140 is sent on delay lines 141a, 141b, 141c, 141d.
  • Delay lines 141a, 141b, 141d delay one block while delay line 141c delay 84 blocks.
  • the relative address and branch or route decision information concerning the current time is obtained. This information is returned through a delay line 141e of a block on the input of the multiplexer 140.
  • a decoder 142 which separates the route information and the relative address information. This latter information is sent at the input of a multiplexer 143 which receives a "0" at its other input. This multipfexer is controlled by a bit corresponding to the parity of the image. If the image is even, the relative address is selected and controls the relative address selector 148, otherwise the current vector is output. On the other hand, as shown in FIG. 8, the vector-movement information coming from the RAM 13 on the channel 13b are sent at the input of a multiplexer 144. The output of the multiplexer is connected to a delay line 145a of an elementary block and on the input 4 of the selector 148.
  • the output of the delay line 145a is connected at the input of a delay line 145b of an elementary block and on the input 3 of the selector 148.
  • the output of line 145b is connected to the input of a delay line 145c of 84 elementary blocks and to input 2 of the selector 148.
  • the output of line 145c is connected to the input of a delay line 145d of an elementary block and on the input 1 of the selector and the output of the line 145d giving the current instant is connected at the input of a multiplexer 146 on the input 0 of the selector and at the input of a delay line 145e of a block whose output is sent to the multiplexer 144.
  • a similar structure which has just been described is formed of the multiplexer 146 and 147a delay lines 147b, 147c, 147d and 147e, the line delay 147b achieving a delay of 84 elementary blocks and the other delay lines achieving a delay of an elementary block.
  • the selector 148 we have the vector -movement corresponding to the 8 elementary blocks surrounding the current block 1 as shown in 150. More precisely, on input 4 of the selector, we have the motion vector corresponding to the elementary block 9. Similarly, on the inputs 3, 2, 1, 0, - 1, -2, -3, -4, we have the motion vectors corresponding respectively to blocks 8, 7, 6, 1, 2, 3, 4, 5.
  • the decoding device described above is based on the division of an image into macroblocks of 64 elementary blocks of 16 ⁇ 16 pixels each and on the transmission of at most 169 different motion vectors.
  • the decoding device is optimized when the number of different vectors is limited, which is the case when using a BRH type motion estimator, such an estimator is described in particular in French patent application 89 11328.
  • the device for decoding can also be used with different types of motion estimators other than a BRH estimator and in particular with a BMA estimator for Block Matching
  • the reduction in bit rate is due in particular to the transmission of a motion vector table and to the reduction in the number and length of the code words which contain either the direct coding route or a mixed coding route comprising the address part. in a vector table.
  • the information decoding device described above is therefore a device which is simple to implement and which has the advantage over the already known decoding device of limiting the size, number and complexity of the circuits required. It also has the advantage of being flexible because it allows by modifying or adding few circuits to go from one option to another.

Abstract

Motion information decoding device for HDTV, wherein the information is encoded according to an adjustable-parameter encoding method in which pictures are divided into N lines of M macroblocks of predetermined size, and the motion information code of a macroblock comprises at least one start word (BMB) relating to encoding information, as well as encoding information. The device comprises a first store (102) for storing the M start words of a line in N lines, and a second store (100) for storing the M sets of information relating to a line in N lines, the first and second stores being read in parallel. The device further comprises decoders (11, 12) and a store (13) for storing the decoded information output. The device is particularly useful in HD-MAC television systems.

Description

DISPOSITIF DE DECODAGE D'INFORMATIONS DE MOUVEMENT EN TELEVISION HAUTE DEFINITION DEVICE FOR DECODING MOVEMENT INFORMATION IN HIGH DEFINITION TELEVISION
La présente invention concerne un dispositif de décodage d'informations de mouvement en télévision haute définition. Elle concerne un dispositif incorporé dans une télévision haute définition utilisant le système HD-MAC .The present invention relates to a device for decoding movement information in high definition television. It relates to a device incorporated in a high definition television using the HD-MAC system.
Le système de télévision connu sous la désignation HD-MAC est un système qui transmet des quantités d'informations réduites en utilisant des techniques de réduction de débit appliquées sur les images de télévision . Ces techniques tirent profit des propriétés spatio-temporelles des images,The television system known as HD-MAC is a system that transmits reduced amounts of information using bitrate reduction techniques applied to television pictures. These techniques take advantage of the spatio-temporal properties of images,
10 notamment en utilisant des techniques d'estimation de mouvement pour le codage et le décodage des Images de télévison haute définition. Ainsi, dans le système de télévision HD-MAC, on utilise trois modes selon le mouvement dans l'image : à savoir les modes 80ms, 40ms et 20ms, ces modes correspondant à trois - sous -échantillonnages spatio-temporels différents . D'autre part, le codage dea images de télévision HD-MAC a lieu sur la base d'un découpage de l'image en blocs de 16x16 pixels toutes les 40ms, en considérant chaque fois deux trames entrelacées . Dans ce type de codage, le mode 80ms correspond aux blocs fixes 0 pour lesquels le mouvement est nul, le mode 40ms aux blocs pour lesquels le mouvement a une amplitude inférieure ou égale à 6 pixels , et le mode de 20ms aux blocs pour lesquels le mouvement a une amplitude supérieure à plus ou moins 6 pixels . Dans ce type de codage, seul le mode 40ms qui utilise les vecteurs -mouvement est -> compensé en mouvement et, sur 80ms correspondant à la durée de deux trames entrelacées, seules les combinaisons suivantes sont autorisées (80-80, 40-40, 40-20, 20-40, 20-20) . Pour pouvoir reconnaître le mode utilisé et reconstruire les images de télévision dans le cas d'images compensées en mouvement, des 0 informations de mode et de mouvement sont transmises par l'intermédiaire d'une voie spécifique appelée voie d'assistance numérique ou DATV . Ces informations sont insérées dans l'intervalle de suppression de trame . De ce fait, le débit disponible est donc limité et E est nécessaire de coder ces informations pour en réduire le débit. On a donc proposé dans la demande de brevet français N°90 08299 du 29 juin 1990 un procédé de codage à paramètres ajustables d'un champ de mouvement dans une séquence _ d'images animées, ce procédé pouvant être utilisé, notamment, dans le codage des informations DATV du système de télévision HD-MAC. Ce procédé permet d'obtenir une réduction importante du débit d'informations . La présente invention a donc pour but de proposer un dispositif de décodage d'informations de mouvement en télévision haute définition, plus particulièrement de décodage des informations transmises sur la voie d'assistance numérique dans le cas du système HD-MAC, ces informations ayant été codées, par exemple, en utilisant le procédé décrit dans la demande de brevet français N°90 08299.10 in particular by using motion estimation techniques for coding and decoding high definition television images. Thus, in the HD-MAC television system, three modes are used according to the movement in the image: namely the 80ms, 40ms and 20ms modes, these modes corresponding to three - different spatio-temporal subsampling. On the other hand, the coding of HD-MAC television images takes place on the basis of a division of the image into blocks of 16 × 16 pixels every 40 ms, by considering each time two interlaced frames. In this type of coding, the 80ms mode corresponds to fixed blocks 0 for which the movement is zero, the 40ms mode to blocks for which the movement has an amplitude less than or equal to 6 pixels, and the 20ms mode to blocks for which movement has an amplitude greater than plus or minus 6 pixels. In this type of coding, only the 40ms mode which uses the -motion vectors is -> compensated in movement and, on 80ms corresponding to the duration of two interlaced frames, only the following combinations are authorized (80-80, 40-40, 40-20, 20-40, 20-20). In order to be able to recognize the mode used and reconstruct the television images in the case of motion compensated images, mode and movement information is transmitted via a specific channel called digital assistance channel or DATV. This information is inserted in the frame blanking interval. As a result, the available bit rate is therefore limited and E is necessary to code this information in order to reduce the bit rate. French patent application No. 90 08299 of June 29, 1990 has therefore been proposed a method of coding with adjustable parameters of a field of motion in a sequence of moving images, this method being able to be used, in particular, in the encoding of DATV information from the HD-MAC television system. This process allows a significant reduction in the information rate to be obtained. The object of the present invention is therefore to propose a device for decoding movement information in high definition television, more particularly for decoding the information transmitted over the digital assistance channel in the case of the HD-MAC system, this information having been encoded, for example, using the method described in French patent application No. 90 08299.
En conséquence, la présente invention a pour objet un dispositif de décodage d'informations de mouvement en télévision haute définition, ces informations étant codées selon un procédé de codage à paramètres ajustables dans lequel, les images étant découpées en N lignes de M macroblocs de dimensions déterminées, le code des informations de mouvement d'un macrobloc comporte au moins un mot de début (BMB) relatif aux informations de codage et des informations de codage, caractérisé en ce qu'il comporte des premiers moyens de stockage pour stocker selon N lignes les M mots de début d'une ligne et des deuxièmes moyens de stockage pour stocker selon N lignes les M ensembles d'informations de codage relatifs à une ligne, les premiers et deuxièmes moyens de stockage étant lus en parallèle, des moyens de décodage et un moyen de stockage en sortie des informations décodées .Consequently, the subject of the present invention is a device for decoding movement information in high definition television, this information being coded according to a coding method with adjustable parameters in which, the images being divided into N lines of M macroblocks of dimensions determined, the movement information code of a macroblock comprises at least one start word (BMB) relating to the coding information and coding information, characterized in that it comprises first storage means for storing along N lines the M start words of a line and of the second storage means for storing along N lines the M sets of coding information relating to a line, the first and second storage means being read in parallel, decoding means and a means of storage at the output of the decoded information.
Lorsque l'on utilise le procédé de codage décrit dans la demande de brevet français N°90 08299 et selon une caractéristique de la présente invention , les informations de codage sont obtenues en calculant un arbre de codage sur chacun des macroblocs de façon à obtenir plusieurs menus identifiant chaque vecteur-mouvement ( Vect i) présent dans l'image en accompagnant chaque vecteur (Vect i) de son mot de code (CWi) . Le mot de code représente soit un noeud dans l'arbre, soit le numéro d'un vecteur du menu . Toutefois, il est aussi possible, dans le cadre de ce procédé , de transmettre un code spécifique pour la décomposition en arbre et de ne pas coder un noeud comme un vecteur . Dans ce cas , le code des informations de mouvement d'un macrobloc comporte un mot de début (BMB) , un menu constitué par l'ensemble des vecteurs -mouvement (Vect i) différents , un code de décomposition en arbre (QTREE) et des mots de code (CWi1) associés aux vecteurs -mouvement .When using the coding method described in French patent application No. 90 08299 and according to a characteristic of the present invention, the coding information is obtained by calculating a coding tree on each of the macroblocks so as to obtain several menus identifying each vector-movement (Vect i) present in the image by accompanying each vector (Vect i) with its code word (CWi). The code word represents either a node in the tree or the number of a vector in the menu. However, it is also possible, within the framework of this method, to transmit a specific code for the decomposition into a tree and not to code a node as a vector. In this case, the movement information code of a macroblock includes a start word (BMB), a menu consisting of all of the different motion vectors (Vect i), a tree decomposition code (QTREE) and code words (CWi 1 ) associated with the motion vectors.
Lorsque les informations de mouvement sont codées avec un code de ce type et selon une caractéristique supplémentaire de la présente invention, le dispositif de décodage comporte de plus des troisièmes moyens de stockage pour stocker selon N lignes les M codes de décomposition en arbre relatifs à une ligne . Selon un mode de réalisation préférentiel de la présente invention, les différents moyens de codage sont constitués par N registres FIFO (pour F1RST-IN, FIRST-OUT en langue anglaise) en parallèle, chaque registre pouvant stocker respectivement Mxn bits, n correspondant au nombre de bits d'un mot de début, ou Mxm bits , m correspondant au nombre de bits d'un ensemble d'informations de codage, ou Mxp bits , p correspondant au nombre de bits du code de décomposition en arbre .When the movement information is coded with a code of this type and according to an additional characteristic of the present invention, the decoding device further comprises third storage means for storing along N lines the M tree decomposition codes relating to a line . According to a preferred embodiment of the present invention, the different coding means are constituted by N FIFO registers (for F1RST-IN, FIRST-OUT in English) in parallel, each register being able to store respectively Mxn bits, n corresponding to the number of bits of a start word, or Mxm bits, m corresponding to the number of bits of a set of coding information, or Mxp bits, p corresponding to the number of bits of the tree decomposition code.
De plus, le dispositif de décodage comporte un registre à décalage par moyen de stockage pour stocker temporairement les données correspondantes avant de les écrire dans les moyens de stockage et un moyen de commande gérant les registres à décalage et sélectionnant les moyens de stockage .In addition, the decoding device comprises a shift register by storage means for temporarily storing the corresponding data before writing it to the storage means and a control means managing the shift registers and selecting the storage means.
L'utilisation de registres FIFO permet une lecture en parallèle des informations qui sont ensuite envoyées vers les moyens de décodage .The use of FIFO registers allows a parallel reading of the information which is then sent to the decoding means.
Selon une autre caractéristique de la présente invention, dans le cas d'un système de télévision HD-MAC, les moyens de décodage comportent un décodeur des mots de code et un décodeur du code de décomposition en arbre lorsque les informations ont été codées selon le procédé décrit dans la demande de brevet français N°90 08299.According to another characteristic of the present invention, in the case of an HD-MAC television system, the decoding means comprise a decoder of the code words and a decoder of the tree decomposition code when the information has been coded according to the process described in French patent application No. 90 08299.
D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description faite ci-après d'un mode de réalisation préférentiel du dispositif de décodage, cette description étant faite avec référence aux dessins ci-annexés dans lesquels : les figures 1A, 1B, 1C représentent un procédé de décomposition d'images en blocs auquel est associé un arbre de décomposition pour le codage des blocs ;Other characteristics and advantages of the present invention will appear on reading the description given below of a preferred embodiment of the decoding device, this description being made with reference to the attached drawings in which: FIGS. 1A , 1B, 1C represent a method for decomposing images into blocks with which is associated a decomposition tree for coding the blocks;
- la figure 2 représente la composition des informations codées à transmettre lorsque l'on utilise le procédé de codage décrit dans la demande de brevet français N°90 08299 ;- Figure 2 shows the composition of the coded information to be transmitted when using the coding method described in French patent application No. 90 08299;
- la figure 3 est une représentation schématique d'un dispositif de codage d'une information DATV utilisant le procédé ci-dessus ;- Figure 3 is a schematic representation of a device for coding DATV information using the above method;
- la figure 4 est un schéma synoptique d'un dispositif de décodage d'informations de mouvement conforme à la présente invention ;- Figure 4 is a block diagram of a movement information decoding device according to the present invention;
- la figure 5 est un schéma synoptique plus détaillé de la partie permettant le décodage du code de décomposition en arbre utilisé dans le dispositif de la figure 4 ;- Figure 5 is a more detailed block diagram of the part allowing the decoding of the tree decomposition code used in the device of Figure 4;
- la figure 6 est un schéma synoptique plus détaillé de la partie permettant le décodage de route utilisé dans le dispositif de la figure 4 ; - la figure 7 est un schéma synoptique du décodeur des mots de code utilisé dans le dispositif de décodage de la figure 4, et- Figure 6 is a more detailed block diagram of the part allowing the route decoding used in the device of Figure 4; FIG. 7 is a block diagram of the decoder of the code words used in the decoding device of FIG. 4, and
- la figure 8 est une représentation du circuit de décodage des adresses relatives utilisé dans le dispositif de décodage de la figure 4.FIG. 8 is a representation of the circuit for decoding the relative addresses used in the decoding device in FIG. 4.
Pour simplifier la description , dans les figures les même éléments portent les mêmes références.To simplify the description, in the figures the same elements have the same references.
La présente invention sera décrite en se référant à un système de télévision de type HD-MAC dans lequel les informations d'assistance numériques sont codées en utilisant un procédé de codage à paramètres ajustables d'un champ de mouvement dans une séquence d'images animées décrit dans la demande de brevet français N° 90 08299. Toutefois, il est évident pour l'homme de l'art que le dispositif de décodage conforme à la présente invention peut aussi être utilisé avec des informations d'assistance numériques codées selon d'autres types de codage.The present invention will be described with reference to an HD-MAC type television system in which the digital assistance information is coded using a method of coding with adjustable parameters of a field of motion in a sequence of moving images. described in French patent application No. 90 08299. However, it is obvious to those skilled in the art that the decoding device according to the present invention can also be used with digital assistance information coded according to other types of coding.
On décrira tout d'abord avec référence, notamment aux figures 1 et 2, le procédé de codage à paramètres ajustables d'un champ de mouvement dans une séquence d'images animées décrit dans la demande de brevet français N° 90 08299 en appliquant ce procédé aux informations DATV d'un système de télévision HD-MAC.Firstly, with reference, in particular to FIGS. 1 and 2, the coding process with adjustable parameters of a field of motion in a sequence of moving images described in French patent application No. 90 08299 will be described by applying this DATV information from an HD-MAC television system.
Le procédé de codage décrit dans cette demande de brevet consiste à déterminer un arbre de codage défini par les zones homogènes des images à transmettre et à lier cet arbre au codage d'un champ de mouvement et au codage des décisions de branche ou modes en tenant compte de paramètres variables pour obtenir un bon compromis résolution- débit. La décomposition en arbre de codage consiste, comme représenté sur les figures 1A, 1B et 1C, à découper une image en blocs homogènes de taille nxn les plus grands possibles, puis à associer au découpage obtenu un arbre, comme représenté sur la figure 1 C, dont la racine R représente un macrobloc, les noeuds (N1 à N7), les blocs de taille 2nx2n, non homogènes, qui sont décomposés en quatre sous-blocs de taille nxn et les feuilles F1 à F25 des blocs non homogènes, ces feuilles représentant des parties homogènes. Ainsi, dans le cas de l'exemple représenté aux figures 1A, 1 B, 1C, on obtient quatre niveaux de code. Si l'on utilise ce type de décomposition en arbre, au lieu d'avoir une information pour chaque bloc élémentaire, on peut obtenir une découpe en zones où _The coding method described in this patent application consists in determining a coding tree defined by the homogeneous areas of the images to be transmitted and in linking this tree to the coding of a field of motion and to the coding of branch or mode decisions by taking account of variable parameters to obtain a good resolution-flow compromise. The decomposition into a coding tree consists, as represented in FIGS. 1A, 1B and 1C, of dividing an image into homogeneous blocks of size n × n as large as possible, then of associating with the division obtained a tree, as represented in FIG. 1C , whose root R represents a macroblock, the nodes (N1 to N7), the blocks of size 2nx2n, non-homogeneous, which are decomposed into four sub-blocks of size nxn and the sheets F1 to F25 of the non-homogeneous blocks, these sheets representing homogeneous parts. Thus, in the case of the example shown in FIGS. 1A, 1B, 1C, four levels of code are obtained. If we use this type of tree decomposition, instead of having information for each elementary block, we can obtain a division into areas where _
Figure imgf000007_0001
Figure imgf000007_0001
FEUILLE DE REMPLACEMENT l'information à coder est identique (représentée, par exemple, par les feuilles) . Au niveau du codage , l'information à coder est la valeur du vecteur-mouvement ainsi que du mode obtenus à laquelle s'ajoute un codage des noeuds nécessaires à la construction de l'arbre au moment du décodage. Ce codage des noeuds peut être fait sous la forme d'un "vecteur" spécifique associé au codage du mouvement ou donner lieu à un code particulier. Dans l'hypothèse où le codage est limité à des vecteurs d'amplitude nominale —V dans les directionsREPLACEMENT SHEET the information to be coded is identical (represented, for example, by the sheets). At the level of coding, the information to be coded is the value of the motion vector as well as of the mode obtained to which is added a coding of the nodes necessary for the construction of the tree at the time of decoding. This coding of the nodes can be done in the form of a specific "vector" associated with the coding of the movement or give rise to a particular code. Assuming the coding is limited to vectors of nominal amplitude —V in the directions
10 horizontales et verticales de l'image, sur deux images consécutives, le nombre de combinaisons .possibles est alors de (2V + l) 2 et le nombre de bits nécessaires au codage est égal à log„ (2V+1) 2 . D'autre part, comme dans une image tous les vecteurs possibles ne sont pas forcément présents, une des t j caractéristiques du procédé décrit dans le brevet français N°9010 horizontal and vertical of the image, on two consecutive images, the number of possible combinations is then (2V + 1) 2 and the number of bits necessary for coding is equal to log „(2V + 1) 2 . On the other hand, as in an image all the possible vectors are not necessarily present, one of the t j characteristics of the process described in French patent N ° 90
08299 est de réaliser un menu de vecteurs contenant tous les vecteurs présents dans le macrobloc . Dans ces conditions, l'information à coder n'est plus la valeur du vecteur mais un adressage relatif dans le menu. 0 Pour reconstruire l'arbre de codage, il est en général préférable de ne pas coder un noeud comme un "vecteur" spécifique mais de transmettre un code particulier qui représente l'arbre de codage. Dans ce cas, les Informations à transmettre sont codées de la manière représentée sur la figure 5 2. Sur cette figure , le champ BMB représente un mot de début contenant le nombre de vecteurs différents Nv, un drapeau T indiquant la présence ou l'absence de décomposition en arbre, et la longueur des mots de code CLcw. Le champ "MENU" comporte l'ensemble des vecteurs mouvement différents Vect i, présents 0 dans le macrobloc considéré. Le champ décomposition "QUADTREE" comporte un code TREE qui donne la décomposition en noeud et en feuille, un noeud étant représenté, par exemple, par un "O" et une feuille par un "1" et le champ des mots de code référencé "CODE ORDS" donne les mots de code CWI1 représentant la décision de branche ou route et éventuellement l'adresse d'un vecteur mouvement dans le menu .08299 is to create a vector menu containing all the vectors present in the macroblock. Under these conditions, the information to be coded is no longer the value of the vector but a relative addressing in the menu. 0 To reconstruct the coding tree, it is generally preferable not to code a node as a specific "vector" but to transmit a particular code which represents the coding tree. In this case, the Information to be transmitted is coded as shown in Figure 5 2. In this figure, the BMB field represents a start word containing the number of different vectors Nv, a flag T indicating the presence or absence tree decomposition, and the length of the CLcw code words. The "MENU" field comprises all the different motion vectors Vect i, present 0 in the macroblock considered. The "QUADTREE" decomposition field includes a TREE code which gives the decomposition into a node and a leaf, a node being represented, for example, by an "O" and a leaf by a "1" and the field of code words referenced " CODE ORDS "gives the code words CWI 1 representing the branch or route decision and possibly the address of a motion vector in the menu.
Si l'on applique ce type de procédé de codage à des images de télévision du standard HD-MAC , les paramètres de définition de l'arbre de codage sont alors : - taille des blocs élémentaires 16x16 pixelsIf this type of coding method is applied to television images of the HD-MAC standard, the parameters for defining the coding tree are then: - size of the elementary blocks 16 × 16 pixels
- amplitude des vecteurs +6 pixels- vector amplitude + 6 pixels
- le macrobloc choisi de taille : 128x128 pixels- the selected macroblock of size: 128x128 pixels
- taille des images HD : 1440x1152 pixels- HD image size: 1440x1152 pixels
- débit maximal autorisé : IMbit/S " informations codées : toutes les 80ms par blocs 16x16- maximum authorized bit rate: IMbit / S "coded information: every 80 ms in 16x16 blocks
Comme dans la norme HD-MAC, seuls 1408 points/lignes et 1152 lignes sont transmis , l'image est divisée spatialement en 99 macroblocs de taille 128x128.As in the HD-MAC standard, only 1408 points / lines and 1152 lines are transmitted, the image is spatially divided into 99 macroblocks of size 128x128.
La technique de décomposition en "QUADTREE" utilisée dans le procédé de codage consiste à rechercher, dans l'image ainsi découpée en macroblocs (les macroblocs étant un ensemble de 8x8 blocs de base de 16x16 pixels) les zones homogènes de taille 2 x2 . Un ensemble de 2 x2 blocs est homogène si les informations BD (décision de branche ou route) , MV (vecteur-mouvement) et RAD (adresse relative) sont les mêmes pour chaque bloc . Alors l'information d'assistance numérique ou DATV est envoyée une seule fois pour toutes ces zones , ensemble avec un code qui représente la décomposition "QUADTREE" . Comme la taille du bloc de base est de 16x16 pixels et comme un macrobloc représente un ensemble de 8x8 blocs de base, la décomposition "QUADTREE" est effectuée sur des surfaces représentant 2x2 blocs de base, 4x4 blocs de base et 8x8 blocs de base, à savoir sur quatre niveaux, ce qui correspond à la décomposition représentée sur la figure 1C . De plus, le nombre de vecteurs différents par macroblocs pouvant être limité, un système "MENU" peut dans ce cas être utilisé , comme décrit de manière plus générale ci-dessus . Ce MENU est constitué par la liste de tous les vecteurs différents . En utilisant donc le procédé de codage décrit ci-dessus , pour chaque macrobloc, le flot de données sera du type de celui représenté à la figure 2 et comportera toutes les 80ms : un mot de début BMB constitué dans ce cas par un mot Nv de 7 bits représentant le nombre de vecteurs différents dans le MENU, un drapeau QT indiquant la présence ou l'absence de décompostion en "QUADTREE" , un mot CLc de 4 bits donnant la longueur des mots de code (CW) , le MENU, c'est-à-dire l'ensemble de tous les vecteurs -mouvement différents qui, dans le cas présent, peuvent être compris entre 0 et 64. Ce MENU est constitué par des mots Vect i de 8 bits pour des amplitudes de vecteurs de -6 pixels horizontalement et verticalement. Le MENU présente une longueur variable par pas de 8 bits . Le code QTREE représentant la décomposition en arbre de codage est formé d'un mot de 21 bits et le champ "CODEWORDS" est constitué par un ensemble de mots de code différents jusqu'à 64. chaque mot CWi1 de longueur variable contient une information sur le mode ou décision de branche et l'adresse du vecteur-mouvement dans le MENU.The “QUADTREE” decomposition technique used in the coding process consists in finding, in the image thus cut into macroblocks (the macroblocks being a set of 8 × 8 basic blocks of 16 × 16 pixels) the homogeneous areas of size 2 × 2. A set of 2 x 2 blocks is homogeneous if the BD (branch or route decision), MV (vector-movement) and RAD (relative address) information are the same for each block. Then the digital assistance information or DATV is sent only once for all these zones, together with a code which represents the decomposition "QUADTREE". As the size of the basic block is 16x16 pixels and as a macroblock represents a set of 8x8 basic blocks, the "QUADTREE" decomposition is performed on surfaces representing 2x2 basic blocks, 4x4 basic blocks and 8x8 basic blocks, namely on four levels, which corresponds to the decomposition shown in Figure 1C. In addition, as the number of different vectors per macroblock can be limited, a "MENU" system can in this case be used, as described more generally above. This MENU is made up of the list of all the different vectors. So using the coding method described above, to each macroblock, the data flow will be of the type represented in FIG. 2 and will include every 80 ms: a start word BMB constituted in this case by a word Nv of 7 bits representing the number of different vectors in the MENU, a QT flag indicating the presence or absence of decomposting in "QUADTREE", a 4 bit CLc word giving the length of the code words (CW), the MENU, that is to say the set of all the vectors -different movements which, in the present case, can be between 0 and 64. This MENU is constituted by words Vect i of 8 bits for amplitudes of vectors of -6 pixels horizontally and vertically. The MENU has a variable length in 8-bit steps. The QTREE code representing the decomposition into a coding tree is formed by a 21-bit word and the "CODEWORDS" field consists of a set of different code words up to 64. each CWi 1 word of variable length contains information on the mode or decision of branch and the address of the motion vector in the MENU.
D'autre part, un mot de synchronisation de 32 bits est inclu à la fin de chaque ligne de macroblocs, à savoir tous lesOn the other hand, a 32-bit synchronization word is included at the end of each line of macroblocks, i.e. all
11 macroblocs dans le présent cas . Ce mot est un mot unique dans le flot des données et est égal par exemple à "0. 1.1.1 ,11 macroblocks in this case. This word is a single word in the data flow and is for example equal to "0. 1.1.1,
1.1.0" . De plus, toutes les deux images (80ms) , on émet aussi certains bits caractérisant l'image émise, à savoir un bit pour une transmission film/ vidéo, et éventuellement 5 bits Vx donnant l'ampHtude du vecteur dans la direction horizontale (0 à 31) et 4 bits Vy donnant l'amplitude du vecteur dans la direction verticale (0 à 15) .1.1.0 ". In addition, every two images (80 ms), certain bits characterizing the transmitted image are also emitted, namely one bit for film / video transmission, and possibly 5 bits Vx giving the ampHtude of the vector in the horizontal direction (0 to 31) and 4 bits Vy giving the amplitude of the vector in the vertical direction (0 to 15).
Ce type de codage des informations est obtenu en utilisant un dispositif de codage du type de celui représenté sur la figure 3. Ce dispositif de codage comporte schématiquement un codeur 1 des mots de code qui reçoit en entrée les informations BD de mode ou décision de branche, les vecteurs -mouvement MV et les adresses relatives RAD et qui les codent en un mot de code Cw de longueur variable. Le codeur 1 des mots de code fonctionne de la manière suivante . Pour chaque macrobloc , le nombre (Nv) de vecteurs-mouvement différents par image impaire est compté et est transmis dans un MENU . Ainsi, le MENU sera constitué de Nv mots de 8 bits pour une amplitude de vecteur-mouvent de -6 pixels dans la direction horizontale et •6 pixels dans la direction verticale . Le codeur sortira donc des informations NBvect (nombre de vecteurs) et CLvect (longueur des vecteurs) . Ensuite , les décisions de branche ou route et les vecteurs-mouvement sont codés avec un système appelé "ROUTE" tel que représenté dans le tableau ci-après :This type of information coding is obtained by using a coding device of the type represented in FIG. 3. This coding device schematically includes an encoder 1 of code words which receives as input the BD information of mode or branch decision , the vectors -motion MV and the relative addresses RAD and which encode them in a code word Cw of variable length. Encoder 1 code words works as follows. For each macroblock, the number (Nv) of different motion vectors per odd image is counted and transmitted in a MENU. Thus, the MENU will be made up of Nv 8-bit words for a vector-motion amplitude of -6 pixels in the horizontal direction and • 6 pixels in the vertical direction. The encoder will therefore output information NBvect (number of vectors) and CLvect (length of the vectors). Then, the branch or route decisions and the motion vectors are coded with a system called "ROUTE" as shown in the table below:
Figure imgf000011_0001
Figure imgf000011_0001
Pour chaque macrobloc , la longueur des mots de code est calculée par : CLcw = (LOG2 ( 10Nv + 11) ) bitsFor each macroblock, the length of the code words is calculated by: CLcw = (LOG 2 (10Nv + 11)) bits
Le codeur 1 des mots de code fournit donc pour chaque macrobloc et toutes les 80ms , à savoir toutes les deux images :The coder 1 of the code words therefore provides for each macroblock and every 80 ms, namely every two images:
Nv : mot de 7 bits représentant le nombre de vecteurs -mouvement différents dans une image impaire, Nv pouvant aller jusqu'à 64,Nv: 7-bit word representing the number of different motion vectors in an odd image, Nv being able to go up to 64,
- MENU : Nv mots de 8 bits ,- MENU: New 8-bit words,
- CLcw : mot de 4 bits, longueur des mots de code , - CW : mots de CLcw bits , mots de code correspondant à la technique de codage "ROUTE" pouvant avoir des mots jusqu'à 11 bits .- CLcw: 4-bit word, length of code words, - CW: CLcw bit words, code words corresponding to the "ROUTE" coding technique which can have words up to 11 bits.
Il fournit aussi une autre valeur de CW et de CLcw lorsque l'option pas de MENU est utilisée , comme expliqué ci-après .It also provides another value of CW and CLcw when the no MENU option is used, as explained below.
Les informations CW issues du codeur 1 des mots de code sont envoyées sur un codeur "QUADTREE" 2. Pour chaque macrobloc, une décomposition en "QUADTREE" est effectuée à partir de zones ayant la taille d'un bloc de base jusqu'à la taille du macrobloc . On obtient en sortie de ce codeur, le code QTREE de 21 bits représentant la décomposition en "QUADTREE" . Dans ce code, les "0" indiquent un noeud et les "1" indiquent une feuille . Selon une technique particulière de codage, si un bloc est une feuille à savoir un "1" , les sous-blocs correspondant sont forcés à "0" afin d'éviter un code constitué que de "1" . Il est possible d'envisager un code QTREE flexible. Dans ce cas, l'on supprime les "0" non significatifs suivant les "1" correspondant à des feuilles . Le code QTREE est envoyé vers un multiplexeur 5 pour l'insérer au bon moment dans les informations DATV codées . D'autre part, le codeur 2 émet une information NB feuille (nombre de feuilles) qui est envoyée vers un circuit 3 de sélection.The CW information from coder 1 of the code words is sent to a "QUADTREE" coder 2. For each macroblock, a breakdown into "QUADTREE" is carried out from areas having the size of a basic block up to the size of the macroblock. At the output of this coder, the QTREE code of 21 bits representing the decomposition into "QUADTREE" is obtained. In this code, the "0" indicates a node and the "1" indicates a leaf. According to a particular coding technique, if a block is a sheet, namely a "1", the corresponding sub-blocks are forced to "0" in order to avoid a code consisting only of "1". It is possible to consider a flexible QTREE code. In this case, the non-significant "0" are deleted according to the "1" corresponding to sheets. The QTREE code is sent to a multiplexer 5 to insert it at the right time in the coded DATV information. On the other hand, the encoder 2 transmits NB sheet information (number of sheets) which is sent to a selection circuit 3.
Le circuit 3 de sélection met en oeuvre un processus de sélection par macroblocs qui permet de choisir entre quatre options possibles afin de réduire le débit des informations .The selection circuit 3 implements a selection process by macroblocks which makes it possible to choose between four possible options in order to reduce the bit rate of the information.
Ainsi, les informations codées peuvent être transmises de la manières suivantes :Thus, the coded information can be transmitted in the following ways:
- MENU + décomposition en QTREE - pas de MENU + décomposition en QTREE (tous les vecteurs-mouvement sont possibles)- MENU + decomposition in QTREE - no MENU + decomposition in QTREE (all motion vectors are possible)
- MENU + pas de décomposition en QTREE (64 mots de code)- MENU + no decomposition into QTREE (64 code words)
- pas de MENU + pas de décomposition en QTREE (tous les vecteurs -mouvement sont possibles et on transmet les 64 mots de code) . En fait l'option pas de MENU signifie que le système MENU, à savoir la seule transmission des vecteurs-mouvement différents, n'est pas utilisé . Dans ce cas , le système "ROUTE" est calculé avec tous les vecteurs-mouvement possibles . Ainsi, si l'amplitude d'un vecteur est de «.6 pixels dans la direction horizontale et -6 pixels dans la direction verticale, dans ce cas Nv = 169 et CLcw = 11 bits .- no MENU + no decomposition into QTREE (all vectors -motion are possible and the 64 code words are transmitted). In fact, the no MENU option means that the MENU system, ie the only transmission of different motion vectors, is not used. In this case, the "ROUTE" system is calculated with all possible motion vectors. Thus, if the amplitude of a vector is “.6 pixels in the horizontal direction and -6 pixels in the vertical direction, in this case Nv = 169 and CLcw = 11 bits.
Si CLcw est plus grand que 11 bits , l'option pas de MENU n'est pas utilisée parce que le débit binaire corespondant serait trop élevé . Ainsi, l'option pas de MENU fournit pour chaque macrobloc et toutes les 80ms (deux images) :If CLcw is larger than 11 bits, the no MENU option is not used because the corresponding bit rate would be too high. Thus, the no MENU option provides for each macroblock and every 80ms (two images):
- Nv : un mot de 7 bits forcé à 65 indiquant que pas de MENU est utilisé ;- Nv: a 7-bit word forced to 65 indicating that no MENU is used;
- CLcw : un mot de 4 bits égal à 11 - Cw : des mots de 11 bits, les mots de code correspondant à la technique de codage "ROUTE" avec Nv = 169.- CLcw: a 4-bit word equal to 11 - Cw: 11-bit words, the code words corresponding to the "ROUTE" coding technique with Nv = 169.
Si le MENU n'est pas utilisé , Nv est forcé à 65 et si la décomposition en arbre de type QTREE n'est pas utilisée (le mot de 21 bits : QTREE n'est pas utilisé) , le drapeau QT est égal à "1" sinon le drapeau QT est égal à "0" et les 64 mots de code (1 pour chaque bloc de 16x16 pixels) sont transmis .If the MENU is not used, Nv is forced to 65 and if the tree decomposition of type QTREE is not used (the 21-bit word: QTREE is not used), the flag QT is equal to " 1 "otherwise the QT flag is equal to" 0 "and the 64 code words (1 for each 16x16 pixel block) are transmitted.
Les signaux issus du circuit de sélection 3 , à savoir QT, NBvect, CLcw, CLvect, sélect sont envoyés vers un multiplexeur 5. De même, le circuit de sélection 3 envoie une information- sélection simultanément vers le multiplexeur 5 et vers un multiplexeur 4 qui sélectionne l'une ou l'autre des informations CW (selon l'option MENU ou pas de MENU) issues du codeur 1 de mots de code pour envoyer cette information sur le multiplexeur 5. En sortie du multiplexeur 5 , on obtient donc les informations DATV codées émises en série .The signals from the selection circuit 3, namely QT, NBvect, CLcw, CLvect, select are sent to a multiplexer 5. Similarly, the selection circuit 3 sends selection information simultaneously to the multiplexer 5 and to a multiplexer 4 which selects one or the other CW information (according to the MENU option or no MENU) from the coder 1 of code words to send this information to the multiplexer 5. At the output of the multiplexer 5, we therefore obtain the coded DATV information transmitted in series.
On décrira maintenant avec référence plus particulièrement à la figure 4 , un mode de réalisation d'un décodeur permettant de décoder des informations DATV codées par le dispositif représenté à la figure 3. Le décodeur comporte, conformément à la présente invention, une partie 10 de mémorisation des données en entrée à savoir des informations DATV codées dans le dispositif de la figure 3 et selon le procédé décrit ci-dessus . Ces informations arrivent en série. Le dispositif de décodage comporte aussi un décodeur 11 de l'arbre de codage ou décodeur QUADTREE, un décodeur 12 des mots de code ou décodeur CW, un dispositif 13 de mémorisation des données en sortie référencé RAM et un circuit 14 de décodage des adresses relatives . Comme représenté sur la figure 4, le décodeur QUADTREE 11 est relié à un circuit de commande 15 qui reçoit des informations de la partie mémorisation 10 des données et émet des commandes vers le décodeur 11. Le décodeur 12 de mots de code reçoit des informations de la partie de mémorisation 10. Ce décodeur 12 de mots de code envoie des informations soit directement sur un multiplexeur 17, soit sur une table de vecteurs 16 reliée au multiplexeur 17, puis, dans le dispositif 13 de mémorisation des données en sortie . Ce dispositif 13 reçoit aussi des informations d'un circuit 18 de commande du dispositif de mémorisation contrôlé par des informations issues du décodeur 11. On décrira maintenant de manière plus détaillée la partie mémorisation 10 des données en entrée . Conformément à la présente invention, cette partie 10 est .constituée de 3 ensembles 100, 101, 102 de registres à décalage de type FIFO pour First-in, First-out en langue anglaise. Le premier ensemble 100 est constitué de 9 registres FIFO en parallèle, chaque registre FIFO pouvant stocker 11x64x11 bits . Le premier chiffre 11 correspond aux 11 macroblocs d'une ligne dans une image de télévision HD-MAC découpée comme décrit ci-dessus, le chiffre 64 correspond au nombre de vecteurs maximal et de mots de code possible, ces mots étant codés sur 11 bits ou moins .There will now be described with reference more particularly to FIG. 4, an embodiment of a decoder making it possible to decode DATV information coded by the device represented in FIG. 3. The decoder comprises, in accordance with the present invention, a part 10 for storing the input data, namely DATV information coded in the device of FIG. 3 and according to the method described above. This information comes in series. The decoding device also includes a decoder 11 of the QUADTREE coding tree or decoder, a decoder 12 of the code words or CW decoder, a device 13 for storing the output data referenced RAM and a circuit 14 for decoding the relative addresses . As shown in FIG. 4, the QUADTREE decoder 11 is connected to a control circuit 15 which receives information from the storage part 10 of the data and sends commands to the decoder 11. The decoder 12 of code words receives information from the storage part 10. This decoder 12 of code words sends information either directly to a multiplexer 17 or to a vector table 16 connected to the multiplexer 17, then to the device 13 for storing the output data. This device 13 also receives information from a circuit 18 for controlling the storage device controlled by information from the decoder 11. The storage part 10 of the input data will now be described in more detail. According to the present invention, this part 10 is made up of 3 sets 100, 101, 102 of FIFO type shift registers for First-in, First-out in English. The first set 100 is made up of 9 FIFO registers in parallel, each FIFO register being able to store 11 × 64 × 11 bits. The first number 11 corresponds to the 11 macroblocks of a line in an HD-MAC television image cut out as described above, the number 64 corresponds to the maximum number of vectors and possible code words, these words being coded on 11 bits or less .
Le deuxième ensemble 101 de registres FIFO est constitué aussi de 9 registres en parallèle pouvant stocker chacun 11 mots de 21 bits, les 21 bits représentant le code de décomposition en arbre . Ce code est stocké dans les 9 registres FIFO lorsqu'il est signalé présent dans le mot de début ou BMB . Le troisième ensemble 102 de registre FIFO est constitué de 9 registres en parallèle de 11x12 bits permettant de stocker les 11 mots de début ou BMB des 11 macroblocs d'une ligne, ces mots de début étant codés sur 12 bits . Comme représenté sur la figure 4 , les informationsThe second set 101 of FIFO registers also consists of 9 registers in parallel which can each store 11 words of 21 bits, the 21 bits representing the tree decomposition code. This code is stored in the 9 FIFO registers when it is signaled present in the start word or BMB. The third set 102 of FIFO registers consists of 9 registers in parallel of 11 × 12 bits making it possible to store the 11 start words or BMB of the 11 macroblocks of a line, these start words being coded on 12 bits. As shown in Figure 4, the information
DATV émises en série sont tout d 'abord envoyées dans des registres à décalage 103 , 104 et 105 où elles sont stockées temporairement avant d'être envoyées sur les FIFO correspondantes . Le registre 103 stocke les 11 données d'une ligne d'un macrobloc, à savoir les tables de vecteurs et les mots de code, le registre 104 stocke les 11 codes de décomposition en arbre d'une ligne d'un macrobloc et le registre 105 stocke les 11 mots de début ou BMB d'une ligne d'un macrobloc . Les trois ensembles de registres FIFO sont commandés par un circuit 106 de commande d'acquisition des données qui commandent l'introduction des informations DATV dans les registres à décalage 103, 104 , 105 et sélectionnent les registres FIFO appropriés en émettant une impulsion de sélection de 1 à 9, une impulsion de sélection d'un ensemble de registres telle que sélect . DATA, sélect . QT, sélect . BMB . La partie 10 comporte aussi un registre 107 permettant de décoder les informations caractéristiques émises toutes les 80ms , à savoir toutes les deux images, et permettant d'obtenir les informations film/ vidéo et en option Vx et Vy . De préférence, chaque ensemble 100, 101, 102 est constitué de deux ensembles identiques, comme représenté schématiquement sur la figure 4, en parallèle, l'un étant décodé pendant que l'autre est chargé . La partie de mémorisation 10 comporte, entre l'ensemble des registres FIFO et les décodeurs proprement dit, 3 registres à décalage 108, 109 et 110 de sortie permettant le stockage temporaire des données avant leur traitement .DATVs sent in series are first sent to shift registers 103, 104 and 105 where they are temporarily stored before being sent to the corresponding FIFOs. The register 103 stores the 11 data of a line of a macroblock, namely the vector tables and the code words, the register 104 stores the 11 decomposition codes in tree of a line of a macroblock and the register 105 stores the 11 start words or BMB of a line in a macroblock. The three sets of FIFO registers are controlled by a data acquisition control circuit 106 which controls the introduction of DATV information into the shift registers 103, 104, 105 and selects the appropriate FIFO registers by sending a selection pulse. 1 to 9, a pulse for selecting a set of registers such as select. DATA, select. QT, select. BMB. Part 10 also includes a register 107 making it possible to decode the characteristic information transmitted every 80 ms, namely every two images, and making it possible to obtain the film / video information and optionally Vx and Vy. Preferably, each set 100, 101, 102 consists of two identical sets, as shown diagrammatically in FIG. 4, in parallel, one being decoded while the other is loaded. The storage part 10 comprises, between all of the FIFO registers and the decoders proper, 3 output shift registers 108, 109 and 110 allowing the temporary storage of the data before their processing.
On décrira maintenant avec référence aux figures 4 et 5, un mode de réalisation du décodeur 11 de l'arbre de décomposition de type QUADTREE . Ce décodeur 11 reçoit le code QT stocké dans le registre 109. Le code QT comporte 21 bits , dans le mode de réalisation décrit, à savoir 1 bit concernant le niveau 1, 4 bits concernant le niveau 2 et 16 bits concernant le niveau 3. Son fonctionnement est commandé par le circuit de commande de décodage 15. Le circuit 15 reçoit en entrée les informations issues du registre 110 stockant les débuts de mots ou BMB . Le BMB contient un drapeau indiquant la présence ou l'absence de décomposition en arbre. Le circuit 15 reçoit aussi des informations issues du registre 109 stockant le code QT de décomposition en arbre . Il envoie vers le décodeur 11 un certain nombre d'informations permettant la commande du décodage.We will now describe with reference to FIGS. 4 and 5, an embodiment of the decoder 11 of the decomposition tree of the QUADTREE type. This decoder 11 receives the QT code stored in the register 109. The QT code comprises 21 bits, in the embodiment described, namely 1 bit relating to level 1, 4 bits relating to level 2 and 16 bits relating to level 3. Its operation is controlled by the decoding control circuit 15. The circuit 15 receives as input information from register 110 storing the beginnings of words or BMB. The BMB contains a flag indicating the presence or absence of tree decomposition. Circuit 15 also receives information from register 109 storing the tree decomposition QT code. It sends a certain amount of information to the decoder 11 allowing control of the decoding.
Comme représenté sur la figure 5, le décodeur comporte un multiplexeur 151 qui reçoit en entrée l'information contenue dans le bloc QTREE concernant le niveau 1, à savoir le macrobloc 128x128, l'information issue d'un multiplexeur 152 concernant le niveau 2, à savoir les blocs 64x64 et l'information issue du multiplexeur 153 concernant le niveau 3, à savoir les blocs 32x32 ainsi que "1" . Ce multiplexeur 151 est commandé par des informations issues d'un compteur de niveau 154 à 2 bits dont le fonctionnement est commandé par les informations CLRNIV et ENNIV issues d'un séquenceur 160. Le multiplexeur 152 reçoit les 4 bits du niveau 2 stocké dans le registre 109. D'autre part, le multiplexeur 153 reçoit en entrée 4 bits issus de quatre multiplexeurs 155 a, 155 b, 155 c, 155 d. Ces quatre multiplexeurs reçoivent chacun quatre bits concernant le niveau 3 stockés dans le registre 109. Les différents multiplexeurs 152, 153, 155 sont commandés par deux compteurs 157, 158 à deux positions binaires . Les compteurs sont mis à zéro par une information ENCPQT issue du séquenceur 160. La sortie "carry" ou retenue du compteur 156 est envoyée en entrée du compteur 157 et en entrée d'un multiplexeur 159. De même la sortie "carry" du compteur 157 est envoyée en entrée du compteur 158 et en entrée du multiplexeur 159 et la sortie "carry" du compteur 158 est envoyée en entrée du multiplexeur 159 qui reçoit aussi un "1" . En fonction de l'information issue du compteur 154, le multiplexeur 159 émet une information FINECRQT de fin d'écriture RAM. D'autre part , les compteurs 156 , 157 , 158 envoient vers la mémoire de sortie 13 une adresse référencée Ad 0, 1 ; Ad 2 , 3 ; Ad 4 , 5 ; ces informations étant aussi utilisées pour commander les multiplexeurs 152 , 153 , 155 comme représenté sur la figure 5.As shown in FIG. 5, the decoder comprises a multiplexer 151 which receives as input the information contained in the QTREE block relating to level 1, namely the 128 × 128 macroblock, the information originating from a multiplexer 152 relating to level 2, namely the 64x64 blocks and the information from the multiplexer 153 concerning level 3, namely the 32x32 blocks as well as "1". This multiplexer 151 is controlled by information coming from a 2-bit level counter 154 whose operation is controlled by the CLRNIV and ENNIV information coming from a sequencer 160. The multiplexer 152 receives the 4 bits of level 2 stored in the register 109. On the other hand, the multiplexer 153 receives as input 4 bits from four multiplexers 155 a, 155 b, 155 c, 155 d. These four multiplexers each receive four bits relating to level 3 stored in the register 109. The various multiplexers 152, 153, 155 are controlled by two counters 157, 158 with two bit positions. The counters are set to zero by information ENCPQT from the sequencer 160. The "carry" output or hold of the counter 156 is sent at the input of the counter 157 and at the input of a multiplexer 159. Similarly the "carry" output of the counter 157 is sent to the input of the counter 158 and to the input of the multiplexer 159 and the "carry" output of the counter 158 is sent to the input of the multiplexer 159 which also receives a "1". Based on the information from the counter 154, the multiplexer 159 transmits FINECRQT information for the end of RAM writing. On the other hand, the counters 156, 157, 158 send to the output memory 13 an address referenced Ad 0, 1; Ad 2, 3; Ad 4, 5; this information also being used to control the multiplexers 152, 153, 155 as shown in FIG. 5.
Cet ensemble en relation avec le séquenceur 160 qui reçoit les informations FINECRQT issues du multiplexeur 159 , OKQT du multiplexeur 151 et Cy2 issue du compteur 158 et qui émet les informations MEMCW, ENCPQT, ECRRAM, CLRNIV et ENNIV fonctionne de la manière suivante .This set in relation to the sequencer 160 which receives the FINECRQT information from the multiplexer 159, OKQT from the multiplexer 151 and Cy2 from the counter 158 and which transmits the information MEMCW, ENCPQT, ECRRAM, CLRNIV and ENNIV operates as follows.
A l'initialisation, tous les 3 + 1 compteurs indiquent zéro, ce qui sélectionne le premier bit du QT vers le séquenceur . Si celui-ci est à zéro, le compteur de niveau 154 s'incrémente, ce qui sélectionne alors QTNIV2 pointant sur A, puis QTNIV3 pointant sur Al , puis QTNÏV4=1 jusqu'à ce qu'il rencontre un 1 ;On initialization, all 3 + 1 counters indicate zero, which selects the first bit of the QT to the sequencer. If this is at zero, the level counter 154 increments, which then selects QTNIV2 pointing to A, then QTNIV3 pointing to Al, then QTNÏV4 = 1 until it encounters a 1;
A partir de ce 1 obtenu au niveau en question, le contenu Cw sera écrit autant de fois que nécessaire dans la RAM 13 aux adresses fournies par les 3 compteurs . L'adresse se déduit de l'incrément des 3 compteurs 156 , 157, 158 cascades jusqu'à ce que le signal FINECRQT (CY du niveau sélectionné) passe à 1.From this 1 obtained at the level in question, the content Cw will be written as many times as necessary in the RAM 13 at the addresses provided by the 3 counters. The address is deduced from the increment of the 3 counters 156, 157, 158 cascades until the signal FINECRQT (CY of the selected level) goes to 1.
Alors on réinitialise le compteur niveau 154 à O, les 3 autres restent en l'état et aiguillent dès lors la nouvelle valeur de QT en cours . La mémorisation des 64 blocs élémentaires sera finie lorsque les 3 compteurs auront incrémenté les 65 cases (CY2) .Then the level counter 154 is reset to 0, the other 3 remain in the state and therefore switch to the new current QT value. The memorization of the 64 elementary blocks will be finished when the 3 counters have incremented the 65 boxes (CY2).
Le principe du décodage de l'arbre de décomposition QUADTREE suppose que le mot de code transmis est utilisé une fois, 4 fois, 16 fois ou 64 fois en fonction de la valeur du code QTREE stockée dans le registre 109. En conséquent:"- . le décodeur de la figure 5 avec l'aide d'un séquenceur 160 efiectue la duplication du mot de code avec les valeurs sélectionnées . Ainsi, la duplication du mot code consiste à écrire à des adresses différentes du macrobloc avec la même valeur du mot de code. De ce fait, le décodeur 11 envoie sur le circuit 18 de contrôle du dispositif 13 de mémorisation en sortie, un ordre d'écriture ou non dans ladite RAM.The principle of decoding the QUADTREE decomposition tree assumes that the transmitted codeword is used once, 4 times, 16 times or 64 times depending on the value of the QTREE code stored in register 109. Consequently: "- the decoder of FIG. 5 with the help of a sequencer 160 performs the duplication of the code word with the selected values. Thus, the duplication of the code word consists of writing to addresses different from the macroblock with the same value of the word of coded. As a result, the decoder 11 sends on the control circuit 18 of the storage device 13 for output, an order for writing or not in said RAM.
On expliquera maintenant, plus particulièrement avec référence à la figure 6, le procédé de décodage de la route dans le cas où l'on utilise le code QTREE et une table des vecteurs-mouvement. En effet, à cause du procédé de codage utilisé, il est nécessaire de décoder les routes de codage et d'extraire les valeurs des routes ou décisions de branche, les vecteurs -mouvement et les adresses relatives contenues dans les informations codées de manière à obtenir principalement le vecteur-mouvement ou son adresse si une table de vecteurs est utilisée .We will now explain, more particularly with reference to FIG. 6, the method of decoding the route in the case where the QTREE code and a table of motion vectors are used. Indeed, because of the coding method used, it is necessary to decode the coding routes and to extract the values of the routes or branch decisions, the vectors -movement and the relative addresses contained in the coded information so as to obtain mainly the motion vector or its address if a vector table is used.
Comme représenté sur la figure 6, les mots de code stockés dans le registre 108 sont envoyés en entrée d'un décodeur 12 de mots de code ou décodeur CW qui sera décrit de manière plus détaillée ci-après . Ce décodeur 12 de mots de code permet d'obtenir sur la sortie 12A l'adresse relative et la route qui sont appliquées directement en entrée de la mémoire de sortie 13 qui sera décrite ci-après , et sur la sortie 12B, soit une adresse permettant de sortir la valeur du vecteur-mouvement stockée dans une table 16 de vecteurs -mouvement constituée par une mémoire telle qu'une mémoire de type RAM de capacités 64x8 bits, soit directement la valeur du vecteur -mouvement, cette valeur étant comprise , dans le mode de réalisation représenté, entre 1 et 169. La valeur du vecteur-mouvement issue directement du décodeur 12 et la valeur du vecteur-mouvement issue de la RAM 16 sont envoyées sur un multiplexeur 17 à deux entrées et une sortie qui reçoit aussi une impulsion de sélection en fonction de l'option utilisée . La sortie du multiplexeur 17 est envoyée sur la mémoire de sortie 13. La mémoire de sortie 13 qui est constituée, par exemple, par une mémoire de type RAM permet de stocker des mots de code décodés de 8x13 bits . En fait, la mémoire de sortie 13 est dimensionnée pour stocker seulement une ligne de blocs élémentaires dans un macrobloc . Selon un mode de réalisation de la présente invention , on utilise deux mémoires de type RAM travaillant en mode flip-flop . Lorsqu'une mémoire est lue , pour obtenir 8 blocs élémentaires , l'autre mémoire est écrite pour stocker 8 blocs élémentaires . Ceci permet de décoder un macrobloc complet de 64 blocs élémentaires et de lire en même temps les 8 blocs de l'image précédente .As shown in FIG. 6, the code words stored in the register 108 are sent as input to a code word decoder 12 or CW decoder which will be described in more detail below. This decoder 12 of code words makes it possible to obtain on the output 12A the relative address and the route which are applied directly at the input of the output memory 13 which will be described below, and on the output 12B, ie an address making it possible to output the value of the motion vector stored in a table 16 of vectors -motion constituted by a memory such as a RAM type memory of capacities 64 × 8 bits, that is to say directly the value of the vector -motion, this value being included, in the embodiment shown, between 1 and 169. The value of the motion vector coming directly from the decoder 12 and the value of the motion vector coming from the RAM 16 are sent to a multiplexer 17 with two inputs and an output which also receives a selection pulse depending on the option used. The output of the multiplexer 17 is sent to the output memory 13. The output memory 13 which is constituted, for example, by a memory of RAM type makes it possible to store decoded code words of 8 × 13 bits. In fact, the output memory 13 is dimensioned to store only one line of blocks elementary in a macroblock. According to an embodiment of the present invention, two RAM type memories are used working in flip-flop mode. When a memory is read, to obtain 8 elementary blocks, the other memory is written to store 8 elementary blocks. This makes it possible to decode a complete macroblock of 64 elementary blocks and to read at the same time the 8 blocks of the previous image.
D'autre part, comme représenté sur la figure 6 , la mémoire 13 est commandée par un dispositif 18 de commande de l'adresse de la mémoire qui envoie sur la mémoire 13 l'adresse dans un macrobloc . Ce dispositif 18 de commande reçoit des éléments permettant de donner l'adresse dans le macrobloc , à savoir le numéro du macrobloc compris entre 1 et 99 dans le mode de réalisation représenté et le numéro du bloc dans le macrobloc compris entre 1 à 64 dans le mode de réalisation représenté . D'autre part, la mémoire 13 reçoit une impulsion d'écriture dans la mémoire symbolisée par la référence W . Les informations émises de la mémoire 13 sont envoyées sur une ligne à retard qui permet d'obtenir en sortieles informations "ROUTE" , MVx et MVy .On the other hand, as shown in FIG. 6, the memory 13 is controlled by a device 18 for controlling the address of the memory which sends the address to the memory 13 in a macroblock. This control device 18 receives elements making it possible to give the address in the macroblock, namely the number of the macroblock comprised between 1 and 99 in the embodiment shown and the number of the block in the macroblock comprised between 1 to 64 in the illustrated embodiment. On the other hand, the memory 13 receives a write pulse in the memory symbolized by the reference W. The information sent from memory 13 is sent on a delay line which makes it possible to obtain information "ROUTE", MVx and MVy.
On décrira maintenant, avec référence à la figure 7 , un mode de réalisation particulier du décodeur de mots de code ou décodeur Cw référencé 12 sur les figures 4 et 6. En utilisant un ordre spécifique pour le codage des valeurs , (nombre de vecteurs et toutes les possibilités de
Figure imgf000019_0001
, il est possible d'obtenir un décodeur de structure relativement simple et d'autre part de faire baisser le débit . Un ordre de codage intéressant susceptible d'être utilisé avec le décodeur de la figure 7 est le suivant : - la route 80x80 est codée par le mot de code 1 ,
We will now describe, with reference to FIG. 7, a particular embodiment of the code word decoder or Cw decoder referenced 12 in FIGS. 4 and 6. Using a specific order for the coding of the values, (number of vectors and all possibilities of
Figure imgf000019_0001
, it is possible to obtain a relatively simple structure decoder and on the other hand to lower the bit rate. An interesting coding order capable of being used with the decoder of FIG. 7 is as follows: the route 80 × 80 is coded by the code word 1,
- la route 20x20 est codée par le mot de code 2 ,- the 20x20 route is coded by code word 2,
- les 8 routes 20x40 sont codées par les mots de code 3 à 10,- the 8 20x40 routes are coded by code words 3 to 10,
- les autres routes , à savoir les routes 40x40 et les routes 40x20 étant fonction du nombre Nv qui est un nombre variable , sont codées par les mots de code suivants . A titre d'exemple, les routes 40x40 sont codées avec des valeurs du mot de code comprises entre 10 et (9. Nv) + 10 et les routes 40x20 sont codées jusqu'à (10. Nv) + 10.the other routes, namely the 40 × 40 routes and the 40 × 20 routes being a function of the number Nv which is a variable number, are coded by the following code words. For example, the 40x40 routes are coded with values of the code word between 10 and (9. Nv) + 10 and the 40x20 routes are coded up to (10. Nv) + 10.
Dans ce cas , le décodage peut être effectué facilement en utilisant uniquement des soustracteurs 120, 121, 125 et des dispositifs de sélection 126, 127 ainsi que certains registres de stockage 128, 124. Comme représenté sur la figure 7, le mot de code stocké dans le registre 108 est envoyé sur l'entrée A d'un soustracteur 120 auquel on soustrait la valeur "10" envoyée 10 sur l'entrée B dudit soustracteur . Sur la sortie A - B, l'on obtient la valeur CW-10. Si A-B est inférieur à 0, on sort sur une sortie spécifique référencée < 0 et dans ce cas, on obtient lesdits premiers cas parfaitement connus au niveau de la route et des adresses relatives qui sont directement stockées dans le --* registre 128. La sortie A-B du soustracteur 120 donnant la valeur CW-10 supérieure à 0 est envoyée sur l'entrée A d'un second soustracteur 121 qui reçoit sur son entrée B la valeur Nvx8 dont on décrira ci-après l'obtention . La valeur Nv est obtenue en utilisant le registre 109 stockant les débuts de mots 0 ou BMB . Comme représenté sur la figure 7, la sortie du registre 109 est connectée en entrée d'un multiplexeur 123 dont l'autre . entrée reçoit la valeur "169" correspondant au nombre total de vecteurs -mouvement possibles dans le présent cas . Ce multiplexeur est commandé par un code issu d'un circuit 122 qui 5 sélectionne parmi les données issues du registre 109 la donnée correspondant à Nv . La sortie du multiplexeur 123 est envoyée en entrée d'un registre 124 qui stocke la donnée Nv et la multiplie par 8 en décalant l'ensemble des bits d'un zéro. La sortie du registre 124, à savoir la valeur Nvx8, est donc entrée 0 sur le soustracteur 121. D'autre part, la donnée Nv en sortie du multiplexeur 123 est aussi envoyée directement sur l'entrée B d'un troisième soustracteur 125 qui reçoit sur son entrée A la donnée issue du soustracteur 121, à savoir (CW-10) -Nvx8 lorsque cette donnée est supérieure à zéro. Si A-B est inférieur à zéro, alors on effectue la division (CW-10) /8, le quotient donne le numéro du vecteur et le reste donne l'adresse relative pour le mode 40-40. Cette division par 0 est réalisée en prenant les trois bits de poids faible de CW- 10 pour le reste de la division (adresses relatives) et les 8 bits de poids fort pour le quotient (numéro du vecteur) . Comme représenté sur la figure 7, ceci est effectué en utilisant les sélecteurs 126 et 127. Le sélecteur 126 choisit les bits de poids fort de la valeur CW- 10 issue du soustracteur 120 et le sélecteur 127 choisit les bits de poids faible de la valeur CW-10 issue du soustracteur 120, cette opération étant effectuée en fonction d'un ordre issu du soustracteur 121. Au niveau du soustracteur 125 , on réalise la soustraction (CW-10) -Nvx8-Nv, soit (CW- 10) -9xNv .In this case, the decoding can be carried out easily using only subtractors 120, 121, 125 and selection devices 126, 127 as well as certain storage registers 128, 124. As shown in FIG. 7, the stored code word in register 108 is sent to input A of a subtractor 120 from which the value "10" sent 10 is subtracted from input B of said subtractor. On output A - B, the value CW-10 is obtained. If AB is less than 0, we exit on a specific output referenced <0 and in this case, we obtain said first cases perfectly known at the level of the route and the relative addresses which are directly stored in the - * register 128. The output AB of the subtractor 120 giving the value CW-10 greater than 0 is sent to the input A of a second subtractor 121 which receives on its input B the value Nvx8 of which the obtaining will be described below. The value Nv is obtained by using the register 109 storing the beginnings of words 0 or BMB. As shown in Figure 7, the output of register 109 is connected to the input of a multiplexer 123, the other of which. input receives the value "169" corresponding to the total number of possible -movement vectors in this case. This multiplexer is controlled by a code from a circuit 122 which selects from the data from the register 109 the data corresponding to Nv. The output of the multiplexer 123 is sent to the input of a register 124 which stores the data Nv and multiplies it by 8 by shifting all of the bits by zero. The output of register 124, namely the value Nvx8, is therefore input 0 on the subtractor 121. On the other hand, the data Nv at the output of the multiplexer 123 is also sent directly to the input B of a third subtractor 125 which receives on its input A the data from subtractor 121, namely (CW-10) -Nvx8 when this data is greater than zero. If AB is less than zero, then divide (CW-10) / 8, the quotient gives the vector number and the rest gives the relative address for 40-40 mode. This division by 0 is carried out by taking the three least significant bits of CW-10 for the remainder of the division (relative addresses) and the 8 most significant bits for the quotient (number of the vector). As shown in FIG. 7, this is done using the selectors 126 and 127. The selector 126 chooses the most significant bits of the value CW-10 coming from the subtractor 120 and the selector 127 chooses the least significant bits of the value CW-10 from subtractor 120, this operation being carried out according to an order from subtractor 121. At subtractor 125, we perform the subtraction (CW-10) -Nvx8-Nv, i.e. (CW- 10) - 9xNv.
- Si (CW-10) -9xNv est inférieur à zéro, dans ce cas on envoie un ordre sur le sélecteur 127, le mode est alors 40-40 avec une adresse relative égale à "9" et Nvl égal à (CW-10) -8xNv donne le numéro du vecteur stocké dans le sélecteur 126.- If (CW-10) -9xNv is less than zero, in this case we send an order to the selector 127, the mode is then 40-40 with a relative address equal to "9" and Nvl equal to (CW-10 ) -8xNv gives the number of the vector stored in selector 126.
- Si (CW-10) -9xNv est strictement supérieur à zéro, alors la route est 40-20 et Nv2 = (CW-10) -9xNv donne le numéro du vecteur stocké dans le sélecteur 126.- If (CW-10) -9xNv is strictly greater than zero, then the route is 40-20 and Nv2 = (CW-10) -9xNv gives the number of the vector stored in the selector 126.
Comme représenté sur la figure 7, les sélecteurs 126 et 127 sont connectés en entrée du registre 128 qui donne respectivement sur la sortie 12A la route et l'adresse relative et sur la sortie 12B soit directement la valeur des vecteurs -mouvement, soit une adresse dans une table stockant les vecteurs -mouvement.As shown in FIG. 7, the selectors 126 and 127 are connected at the input of the register 128 which gives respectively on the output 12A the route and the relative address and on the output 12B either directly the value of the vectors -motion, or an address in a table storing the motion vectors.
On décrira maintenant avec référence à la figure 8, un mode de réalisation d'une ligne à retard de type FIFO pour les adresses relatives . En effet pour décoder les vecteurs -mouvement dans l'image paire sur une période de 80ms , les données doivent être retardées . Ce retard permet la sélection d'un des 9 vecteurs-mouvement par rapport à la position courante d'un bloc élémentaire . Ce retard peut être réalisé dans un circuit tel que représenté sur la figure 8.We will now describe with reference to FIG. 8, an embodiment of a FIFO type delay line for the relative addresses. Indeed, to decode the motion vectors in the even image over a period of 80 ms, the data must be delayed. This delay allows the selection of one of the 9 motion vectors relative to the current position of an elementary block. This delay can be achieved in a circuit as shown in FIG. 8.
Dans ce cas, les informations adresse relative et route issues de la RAM 13 sur la voie 13A sont envoyées en entrée d'un multiplexeur 140, qui reçoit sur son autre entrée le même type d'informations mais retardées de 88 blocs élémentaires . En effet, la sortie du multiplexeur 140 est envoyée sur des lignes à retard 141a, 141b , 141c, 141d . Les lignes à retard 141a, 141b, 141d réalisent un retard d'un bloc tandis que la ligne à retard 141c réalise un retard de 84 blocs . En sortie de la ligne à retard 141d, on obtient l'information adresse relative et décision de branche ou route concernant l'instant courant. Cette information est renvoyée à travers une ligne à retard 141e d'un bloc sur l'entrée du multiplexeur 140.In this case, the relative address and route information from RAM 13 on channel 13A are sent in input of a multiplexer 140, which receives on its other input the same type of information but delayed by 88 elementary blocks. Indeed, the output of the multiplexer 140 is sent on delay lines 141a, 141b, 141c, 141d. Delay lines 141a, 141b, 141d delay one block while delay line 141c delay 84 blocks. At the output of the delay line 141d, the relative address and branch or route decision information concerning the current time is obtained. This information is returned through a delay line 141e of a block on the input of the multiplexer 140.
Elle est aussi envoyée sur un décodeur 142 qui sépare l'information route et l'information adresse relative. Cette dernière information est envoyée en entrée d'un multiplexeur 143 qui reçoit sur son autre entrée un "0" . Ce multipfexeur est commandé par un bit correspondant à la parité de l'image . Si l'image est paire, l'adresse relative est sélectionnée et commande le sélecteur d'adresse relative 148, sinon l'on sort le vecteur courant. D'autre part, comme représenté sur la figure 8, les informations vecteurs -mouvement issues de la RAM 13 sur la voie 13b sont envoyées en entrée d'un multiplexeur 144. La sortie du multiplexeur est connectée à une ligne à retard 145a d'un bloc élémentaire et sur l'entrée 4 du sélecteur 148. La sortie de la ligne à retard 145a est connectée en entrée d'une ligne à retard 145b d'un bloc élémentaire et sur l'entrée 3 du sélecteur 148. La sortie de la ligne 145b est connectée en entrée d'une ligne à retard 145c de 84 blocs élémentaires et sur l'entrée 2 du sélecteur 148. La sortie de la ligne 145c est connectée en entrée d'une ligne à retard 145d d'un bloc élémentaire et sur l'entrée 1 du sélecteur et la sortie de la ligne 145d donnant l'instant courant est connectée en entrée d'un multiplexeur 146 sur l'entrée 0 du sélecteur et en entrée d'une ligne à retard 145e d'un bloc dont la sortie est envoyée sur le multiplexeur 144. Une structure similaire à celle qui vient d'être décrite est formée du multiplexeur 146 et des lignes à retard 147a, 147b, 147c, 147d et 147e, la ligne à retard 147b réalisant un retard de 84 blocs élémentaires et les autres lignes à retard réalisant un retard d'un bloc élémentaire . Avec le circuit décrit ci-dessus , sur les 9 entrées du sélecteur 148, l'on a les vecteur -mouvement correspondant aux 8 blocs élémentaires entourant le bloc courant 1 comme représenté en 150. De manière plus précise , sur l'entrée 4 du sélecteur, l'on a le vecteur-mouvement correspondant au bloc élémentaire 9. De même, sur les entrées 3 , 2 , 1 , 0, - 1 , -2 , -3 , -4, l'on a les vecteurs-mouvement correspondant respectivement aux blocs 8, 7, 6, 1, 2 , 3 , 4 , 5. Suivant la sortie du multiplexeur 144, l'une des entrées du sélecteur est choisie et le vecteur-mouvement correspondant est envoyé sur le décodeur 149 qui permet d'obtenir les valeurs en X et en Y du vecteur-mouvement . Le dispositif de décodage décrit ci-dessus est basé sur le découpage d'une image en macroblocs de 64 blocs élémentaires de 16x16 pixels chacun et sur la transmission d'au plus 169 vecteurs -mouvement différents . Le dispositif de décodage est optimisé lorsque le nombre de vecteurs différents est limité, ce qui est le cas lorsqu'on utilise un estimateur de mouvement de type BRH, un tel estimateur est décrit notamment dans la demande de brevet français 89 11328. Le dispositif de décodage peut aussi être utilisé avec différents types d'estimateurs de mouvement autre qu'un estimateur BRH et notamment avec un estimateur BMA pour Block MatchingIt is also sent to a decoder 142 which separates the route information and the relative address information. This latter information is sent at the input of a multiplexer 143 which receives a "0" at its other input. This multipfexer is controlled by a bit corresponding to the parity of the image. If the image is even, the relative address is selected and controls the relative address selector 148, otherwise the current vector is output. On the other hand, as shown in FIG. 8, the vector-movement information coming from the RAM 13 on the channel 13b are sent at the input of a multiplexer 144. The output of the multiplexer is connected to a delay line 145a of an elementary block and on the input 4 of the selector 148. The output of the delay line 145a is connected at the input of a delay line 145b of an elementary block and on the input 3 of the selector 148. The output of line 145b is connected to the input of a delay line 145c of 84 elementary blocks and to input 2 of the selector 148. The output of line 145c is connected to the input of a delay line 145d of an elementary block and on the input 1 of the selector and the output of the line 145d giving the current instant is connected at the input of a multiplexer 146 on the input 0 of the selector and at the input of a delay line 145e of a block whose output is sent to the multiplexer 144. A similar structure which has just been described is formed of the multiplexer 146 and 147a delay lines 147b, 147c, 147d and 147e, the line delay 147b achieving a delay of 84 elementary blocks and the other delay lines achieving a delay of an elementary block. With the circuit described above, on the 9 inputs of the selector 148, we have the vector -movement corresponding to the 8 elementary blocks surrounding the current block 1 as shown in 150. More precisely, on input 4 of the selector, we have the motion vector corresponding to the elementary block 9. Similarly, on the inputs 3, 2, 1, 0, - 1, -2, -3, -4, we have the motion vectors corresponding respectively to blocks 8, 7, 6, 1, 2, 3, 4, 5. Depending on the output of the multiplexer 144, one of the inputs of the selector is chosen and the corresponding motion vector is sent to the decoder 149 which allows to obtain the values in X and in Y of the vector-motion. The decoding device described above is based on the division of an image into macroblocks of 64 elementary blocks of 16 × 16 pixels each and on the transmission of at most 169 different motion vectors. The decoding device is optimized when the number of different vectors is limited, which is the case when using a BRH type motion estimator, such an estimator is described in particular in French patent application 89 11328. The device for decoding can also be used with different types of motion estimators other than a BRH estimator and in particular with a BMA estimator for Block Matching
Algorithm en langue an aise . La réduction du débit est due notamment à la transmission d'une table de vecteurs-mouvement et à la réduction du nombre et de la longueur des mots de code qui contiennent soit la route de codage directe soit une route de codage mélangée comportant la partie adresse dans une table de vecteurs .Easy language algorithm. The reduction in bit rate is due in particular to the transmission of a motion vector table and to the reduction in the number and length of the code words which contain either the direct coding route or a mixed coding route comprising the address part. in a vector table.
Pour permettre l'utilisation de plus de vecteurs-mouvement (par exemple -3 , -15 à la place de -6 pixels, soit 1953 vecteurs-mouvement à la place de 169) , il est seulement nécessaire d'accroître la largeur de la table de vecteurs -mouvement de 8 à 11 bits, la taille des multiplicateurs de 8 à 11 bits dans le décodeur de mots de code et la taille de la mémoire de sortie qui passe à 8 à 16. Il est possible aussi dans le cadre de la présente invention d'envisager l'utilisation de blocs élémentaires plus petits, par exemple des blocs 8x8.To allow the use of more motion vectors (for example -3, -15 instead of -6 pixels, or 1953 motion vectors instead of 169), it is only necessary to increase the width of the table of vectors -movement from 8 to 11 bits, the size of the multipliers from 8 to 11 bits in the decoder of code words and the size of the output memory which passes to 8 to 16. It is also possible within the framework of the present invention to consider the use of smaller elementary blocks, for example 8x8 blocks.
Ceci accroît de 1 le nombre de niveaux de décodage et augmente en conséquence, notamment le nombre de bits du code QT. On peut aussi envisager d'avoir des vecteurs-mouvement pour le mode 20ms. Dans ce cas, il y aura 2 ensembles de vecteurs -mouvement avec NV1 et NV2 le nombre de vecteurs -mouvement par ensemble . Ces modifications jouent principalement sur la taille de certains circuits mais pas sur les fonctions décrites dans la présente demande .This increases the number of decoding levels by 1 and increases accordingly, in particular the number of bits of the QT code. We can also consider having motion vectors for the 20ms mode. In this case, there will be 2 sets of motion vectors with NV1 and NV2 the number of motion vectors per set. These modifications mainly affect the size of certain circuits but not the functions described in the present application.
Le dispositif de décodage d'informations décrit ci- dessus est donc un dispositif simple à mettre en oeuvre qui présente l'avantage par rapport au dispositif de décodage déjà connu de limiter la taille, le nombre et la complexité des circuits nécessaires . Il présente aussi l'avantage d'être flexible car il permet en modifiant ou en ajoutant peu de circuits de passer d'une option à une autre . The information decoding device described above is therefore a device which is simple to implement and which has the advantage over the already known decoding device of limiting the size, number and complexity of the circuits required. It also has the advantage of being flexible because it allows by modifying or adding few circuits to go from one option to another.

Claims

REVENDICATIONS
1. Dispositif de décodage d'informations de mouvement en télévision haute définition, ces informations étant codées selon un procédé de codage à paramètres ajustables dans lequel, les images étant découpées en N lignes de M macroblocs de dimensions déterminées, le code des Informations de mouvement d'un macrobloc comporte au moins un mot de début (BMB) relatif aux informations de codage et des informations de codage, caractérisé en ce qu'il comporte des premiers moyens (102) de stockage pour stocker selon N lignes les M mots de début d'une ligne et des deuxièmes moyens (100) de stockage pour stocker selon N lignes les M ensembles d'informations de codage relatifs à une ligne, les premiers et deuxièmes moyens de stockage étant lus en parallèle, des moyens de décodage (11 , 12) et un moyen de stockage (13) en sortie des informations décodées . 1. Device for decoding movement information in high definition television, this information being coded according to a coding method with adjustable parameters in which, the images being divided into N lines of M macroblocks of determined dimensions, the code of the Motion information of a macroblock comprises at least one start word (BMB) relating to the coding information and coding information, characterized in that it comprises first storage means (102) for storing along N lines the M start words a line and second storage means (100) for storing along N lines the M sets of coding information relating to a line, the first and second storage means being read in parallel, decoding means (11, 12) and a storage means (13) at the output of the decoded information.
2. Dispositif selon la revendication 1 , caractérisé en ce que les premiers moyens (102) de stockage sont constitués par N registres FIFO en parallèle, chaque registre pouvant stocker Mxn bits, n correspondant au nombre de bits d'un mot de début (BMB) . 2. Device according to claim 1, characterized in that the first storage means (102) are constituted by N FIFO registers in parallel, each register being able to store Mxn bits, n corresponding to the number of bits of a start word (BMB ).
3. Dispositif selon la revendication 1, caractérisé en ce que les deuxièmes moyens (100) de stockage sont constitués par N registres FIFO en parallèle, chaque registre pouvant stocker Mxm bits, m correspondant au nombre de bits d'un ensemble d'informations de codage (CWi) . 3. Device according to claim 1, characterized in that the second storage means (100) are constituted by N FIFO registers in parallel, each register being able to store Mxm bits, m corresponding to the number of bits of a set of information of coding (CWi).
4. Dispositif selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les informations de codage sont obtenues en calculant un arbre de codage sur chacun des macroblocs de façon à obtenir plusieurs menus identifiant chaque vecteur-mouvement (Vect i) présent dans l'image en accompagnant chaque vecteur (Vect i) de son mot de code (CWi) .4. Device according to any one of claims 1 to 3, characterized in that the coding information is obtained by calculating a coding tree on each of the macroblocks so as to obtain several menus identifying each vector-movement (Vect i) present in the image by accompanying each vector (Vect i) with its code word (CWi).
5. Dispositif selon la revendication 4, caractérisé en ce que le code des informations de mouvement d'un macrobloc comporte un mot de début (BMB) , un MENU constitué par l'ensemble des vecteurs -mouvement (Vect i) différents, un code de décomposition en arbre (QTREE) et des mots de code (CWi') associés aux vecteurs -mouvement. 5. Device according to claim 4, characterized in that the movement information code of a macroblock includes a start word (BMB), a MENU consisting of all the different motion vectors (Vect i), a tree decomposition code (QTREE) and code words (CWi ') associated with the motion vectors.
6. Dispositif selon la revendication 5, caractérisé en ce que, dans le cas du codage des signaux d'assistance numérique (DATV) de télévision du système HD-MAC, les mots de code (CWi') contiennent une information de décision de branche ou route et l'adresse du vecteur-mouvement dans le menu ou le numéro du vecteur parmi l'ensemble de tous les vecteurs possibles . .6. Device according to claim 5, characterized in that, in the case of coding of digital assistance signals (DATV) of television of the HD-MAC system, the code words (CWi ') contain branch decision information or route and the address of the motion vector in the menu or the number of the vector among the set of all possible vectors. .
7. Dispositif selon les revendications 5 et 6, caractérisé en ce que le MENU et les mots de code ont des longueurs variables fonction du nombre de vecteurs-mouvement différents .7. Device according to claims 5 and 6, characterized in that the MENU and the code words have variable lengths depending on the number of different motion vectors.
8. Dispositif selon la revendication 5, caractérisé en ce que les informations de codage relatives à chaque ligne de macroblocs sont séparées par un mot do synchronisation.8. Device according to claim 5, characterized in that the coding information relating to each line of macroblocks is separated by a word do synchronization.
9. Dispositif selon la revendication 8, caractérisé en ce que le mot de synchronisation est constitué par un ensemble de bits spécifiques unique dans le flot des données .9. Device according to claim 8, characterized in that the synchronization word is constituted by a set of specific bits unique in the data stream.
10. Dispositif selon la revendication 5, caractérisé en ce qu'il comporte de plus des troisièmes moyens (101) de stockage pour stocker selon N lignes les M codes (QTREE) de décomposition en arbre relatifs à une ligne .10. Device according to claim 5, characterized in that it further comprises third storage means (101) for storing along N lines the M codes (QTREE) of tree decomposition relating to a line.
11. Dispositif selon la revendication 10, caractérisé en ce que les troisième moyens (101) de stockage sont constitués par N registres FIFO en parallèle, chaque registre pouvant stocker Mxp bits , p correspondant au nombre de bits du code (QTREE) de décomposition en arbre .11. Device according to claim 10, characterized in that the third storage means (101) consist of N FIFO registers in parallel, each register being able to store Mxp bits, p corresponding to the number of bits of the decomposition code (QTREE) in tree .
12. Dispositif selon l'une quelconque des revendications 1 à 10, caractérisé en ce que chaque moyen de stockage (100, 101, 102) est constitué de deux moyens de stockage identiques en parallèle, l'un étant chargé pendant que l'autre est décodé . 12. Device according to any one of claims 1 to 10, characterized in that each storage means (100, 101, 102) consists of two identical storage means in parallel, one being loaded while the other is decoded.
13. Dispositif selon l'une quelconque des revendications 1 à 12 , caractérisé on ce qu'il comporte un registre à décalage (103 , 104, 105) par moyens de stockage (100, 101 , 102) pour stocker temporairement les données correspondantes avant de les écrire dans les moyens de stockage et un moyen de commande ( 106) gérant les registres à décalage et sélectionnant les moyens de stockage .13. Device according to any one of claims 1 to 12, characterized in that it comprises a shift register (103, 104, 105) by storage means (100, 101, 102) for temporarily storing the corresponding data before writing them to the storage means and a control means (106) managing the shift registers and selecting the storage means.
14. Dispositif selon l'une quelconque des revendications 1 à 13, caractérisé en ce que , dans le cas d'un système de télévision HD-MAC, les moyens de décodage comporte un décodeur (12) des mots de code et un décodeur ( 13) du code de décomposition en arbre .14. Device according to any one of claims 1 to 13, characterized in that, in the case of an HD-MAC television system, the decoding means comprises a decoder (12) of the code words and a decoder ( 13) the tree decomposition code.
15. Dispositif selon la revendication 14 , caractérisé en ce que le décodeur (12) des mots de code permet de décoder des mots de code formés des Nv vecteurs-mouvement différents et de toutes les possibilités de route , ces éléments étant classer de manière appropriée .15. Device according to claim 14, characterized in that the decoder (12) of the code words makes it possible to decode code words formed by the Nv different motion vectors and of all the route possibilities, these elements being classified in an appropriate manner .
16. Dispositif selon la revendication 15 , caractérisé en ce que les dix premiers mots de code ( 1 à 10) correspondent à des possibilités de route fixe .16. Device according to claim 15, characterized in that the first ten code words (1 to 10) correspond to fixed route possibilities.
17. Dispositif selon l'une quelconque des revendications 13 et 14, caractérisé en ce que le décodeur (12 ) des mots de code est constitué principalement par trois soustracteurs (120, 121, 125) réalisant respectivement les soustractions CW-10, (CW-10) -Nvx8 et (CW- lO) -δxNv-Nv, par un registre à décalage (124) réalisant la multiplication par 8 et par des sélecteurs ( 126 , 127) permettant en sélectionnant les bits de poids faible et les bits de poids fort d'obtenir l'adresse relative, la décision de branche ou route et le vecteur-mouvement pour les possibilités de routes variables17. Device according to any one of claims 13 and 14, characterized in that the decoder (12) of the code words consists mainly of three subtractors (120, 121, 125) performing respectively the subtractions CW-10, (CW -10) -Nvx8 and (CW- lO) -δxNv-Nv, by a shift register (124) carrying out the multiplication by 8 and by selectors (126, 127) allowing by selecting the least significant bits and the bits of most significant is to obtain the relative address, the branch or route decision and the motion vector for the variable route possibilities
(route 40-40 et route 40-20) .(route 40-40 and route 40-20).
18. Dispositif selon l'une quelconque des revendications 1 à 17, caractérisé en ce que le moyen de stockage en sortie est constitué par au moins une mémoire (13) permettant de stocker une ligne de blocs élémentaires d'un macrobloc .18. Device according to any one of claims 1 to 17, characterized in that the output storage means consists of at least one memory (13) making it possible to store a line of elementary blocks of a macroblock.
19. Dispositif selon la revendication 18, caractérisé en ce que la mémoire (13) est constituée de deux mémoires RAM travaillant en mode flip-flop . 19. Device according to claim 18, characterized in that the memory (13) consists of two RAM memories working in flip-flop mode.
20. Dispositif selon l'une quelconque des revendications 1 à 19, caractérisé en ce que le moyen de stockage (13) de sortie .est connecté à un circuit formé de lignes à retard d'un bloc élémentaire permettant d'obtenir en entrée d'un sélecteur les vecteurs -mouvement des blocs entourant le bloc courant et sortir le vecteur -mouvement correspondant à l'adresse relative donnée par le moyen de stockage (13) . 20. Device according to any one of claims 1 to 19, characterized in that the storage means (13) for output is connected to a circuit formed by delay lines of an elementary block making it possible to obtain at input d 'a selector the vectors -movement of the blocks surrounding the current block and output the vector -movement corresponding to the relative address given by the storage means (13).
PCT/FR1992/001087 1991-11-27 1992-11-24 Motion information decoding device for hdtv WO1993011634A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR91/14626 1991-11-27
FR9114626A FR2684257A1 (en) 1991-11-27 1991-11-27 DEVICE FOR DECODING MOVEMENT INFORMATION IN HIGH DEFINITION TELEVISION.

Publications (1)

Publication Number Publication Date
WO1993011634A1 true WO1993011634A1 (en) 1993-06-10

Family

ID=9419379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1992/001087 WO1993011634A1 (en) 1991-11-27 1992-11-24 Motion information decoding device for hdtv

Country Status (2)

Country Link
FR (1) FR2684257A1 (en)
WO (1) WO1993011634A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0637889A2 (en) * 1993-08-06 1995-02-08 Goldstar Co. Ltd. Device for converting image frame format

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0349454A1 (en) * 1988-06-24 1990-01-03 France Telecom Method of coding auxiliary data for the reconstruction of an undersampled electronic image
EP0381283A2 (en) * 1989-02-03 1990-08-08 Koninklijke Philips Electronics N.V. DATV encoding and decoding method and apparatus
GB2240005A (en) * 1989-11-03 1991-07-17 British Broadcasting Corp Improvements in digitally-assisted television systems
EP0443921A1 (en) * 1990-02-23 1991-08-28 Laboratoire Europeen De Recherches Electroniques Avancees, Societe En Nom Collectif Method of processing digital control data associated to an HD-MAC video signal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0349454A1 (en) * 1988-06-24 1990-01-03 France Telecom Method of coding auxiliary data for the reconstruction of an undersampled electronic image
EP0381283A2 (en) * 1989-02-03 1990-08-08 Koninklijke Philips Electronics N.V. DATV encoding and decoding method and apparatus
GB2240005A (en) * 1989-11-03 1991-07-17 British Broadcasting Corp Improvements in digitally-assisted television systems
EP0443921A1 (en) * 1990-02-23 1991-08-28 Laboratoire Europeen De Recherches Electroniques Avancees, Societe En Nom Collectif Method of processing digital control data associated to an HD-MAC video signal

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FREQUENZ. vol. 43, no. 3,4, Avril 1989, BERLIN DE pages 86 - 108 M. GILGE ET AL. 'Codierung von farbigen Bewegtbildern mit 64 kbit/s - Ein neuer Ansatz zur Verwirklichung eines Bildtelefons im ISDN' *
SIGNAL PROCESSING OF HDTV, II, PROCEEDINGS OF THE THIRD INTERNATINAL WORKSHOP ON HDTV Septembre 1989, AMSTERDAM, NL pages 101 - 108 M. KERDRANVAT 'Hierarchical motion estimation and motion information encoding' *
SIGNAL PROCESSING OF HDTV, II, PROCEEDINGS OF THE THIRD INTERNATIONAL WORKSHOP ON HDTV Septembre 1989, AMSTERDAM, NL pages 643 - 648 G.M.X. FERNANDO ET AL. 'Motion compensated field rate conversion of bandwidth compressed HD-MAC pictures' *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0637889A2 (en) * 1993-08-06 1995-02-08 Goldstar Co. Ltd. Device for converting image frame format
EP0637889A3 (en) * 1993-08-06 1995-02-15 Gold Star Co

Also Published As

Publication number Publication date
FR2684257A1 (en) 1993-05-28

Similar Documents

Publication Publication Date Title
EP0448491B1 (en) Method of coding and transmitting digital images of an image sequence with at least two quality levels and corresponding devices
EP0022713B1 (en) Device for coding and decoding a digital videophone signal
EP0454556B1 (en) Procedure and device for scrambling-descrambling of digital image data
EP0558377B1 (en) Videocodec, especially for videophone
EP0206847B1 (en) Cosine transform calculating devices, picture coding and decoding device comprising such calculating devices
EP0416985B1 (en) Method of multiplexing a sound signal with an analogue video signal and corresponding distribution system for still images with sound
EP0618722A1 (en) Method and device for decoding compressed images
EP0330279A1 (en) Device for the space-time sub-sampling of digital video signals representative of a sequence of interlaced or sequential pictures, system for the transmission of high definition television pictures including such a device, and broadcasting and receiving stages for such a system
EP0412003B1 (en) Device for transforming a movement information into a movement detection signal with desired number of lines and field frequency for a high definition television receiver
EP0490799A1 (en) Image coding apparatus and method and corresponding transmission system and receiver
EP0337565B1 (en) Device for coding signals representative of a sequence of pictures and system for transmission of high definition television pictures including such a device
FR2697706A1 (en) Flow reduction method and device for recording images on a VCR.
EP0716395B1 (en) A method for decoding compressed images
EP0967576A1 (en) Memory addressing in an MPEG decoder
WO1993011634A1 (en) Motion information decoding device for hdtv
EP0365090B1 (en) Device for doubling the sequential rate of television signals, and television picture decoder comprising such a device
EP0063990B1 (en) Method for image transmission with reduced data rate; transmission system for executing this method
FR2664117A1 (en) METHOD OF ENCODING ADJUSTABLE PARAMETERS OF A MOTION FIELD IN A SEQUENCE OF ANIMATED IMAGES.
EP3685283A1 (en) Methods for encoding and decoding an image
EP0350122A1 (en) Methods and devices for coding and decoding high-definition television pictures, and transmission systems including such devices
EP0595700B1 (en) System for acquisition and reproduction of a video image sequence with real time animation
FR2646047A1 (en) Process and installation for coding and transmitting moving pictures in digital form at low speed
FR2626131A1 (en) METHOD AND DEVICE FOR SWITCHING BLOCK TELEVISION LINES
EP0431699B1 (en) Method and arrangement for moving picture decoding
FR2660142A1 (en) METHOD AND DEVICE FOR ENCODING-DECODING HIGH-DEFINITION DIGITAL HIGH-DEFINITION TELEVISION SIGNAL IN NARROW BAND.

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

122 Ep: pct application non-entry in european phase