|
RussianPatents.com
|
Method and apparatus for encoding and decoding signal, data medium and computer program product. RU patent 2509439. |
|||||||||||||||||||||
IPC classes for russian patent Method and apparatus for encoding and decoding signal, data medium and computer program product. RU patent 2509439. (RU 2509439):
|
FIELD: information technology. SUBSTANCE: method of encoding a series of images includes a step of encoding at least one block of the current image of the series, making a prediction which links said block with at a corresponding block in a reference image, wherein said prediction includes the following steps for at least one said block of the current image or reference image: determining a plurality of control vectors for the block, wherein each of said control vectors is determined based on movement of said block and at least one connection flag which represents movement between said block and at least one neighbouring block in said reference and current images; at least one breakup of the block into sub-blocks; determining a plurality of control vectors for the sub-blocks; determining the prediction value for at least one point on the current image. In addition, the method includes of inserting, into the signal representing the series, information on reconstructing control vectors for a given block. EFFECT: effective quality of prediction. 13 cl, 15 dwg
1. The scope of the invention The scope of the invention refers to the coding and decoding image sequences. More particularly, the invention relates to the compression/decompression of image sequences and scenes (two-dimensional or multi-dimensional scenes), using the conversion based on the block of images. The invention may be, in particular, applied to the interim forecast, implemented in the famous video encoders image (MPEG, H.264, etc.) or in a future video encoders (N). 2. The level of equipment Modern video encoders implementing the standards of the integration obtained from the organization MPEG (MPEG 1, MPEG 2, MPEG 4, ...) or from the ITU-T International telecommunication Union (N, ..., H.264/AVC), are used for encoding the image sequence and transmission of coded sequence of compressed sequence of the original image. With this aim in these encoders use a coding scheme using forecast between the transmission of a sequence of images to obtain the basic characteristics for compression. You may recall that image in the sequence is traditionally divided into the parts of the array, which is then divided into macroblocks. Each macroblock is further divided into blocks of pixels, where a block of pixels corresponds to the grouping of adjacent pixels. The block of pixels in the image sequence can then be encoded interim forecast from one or more blocks of one or more other images in the sequence. In this case, it uses the term "intermediate unit". A block of pixels can also be encoded spatial forecast from one or more blocks of the image to be encoded. In this case, it uses the term "internal block". During the encoding block is defined, encoded, whether this unit, using the information obtained from other images in the sequence, called the reference images. These sample images - images that have already been previously exposed encoding and decoding. Support unit corresponds to the grouping pixels reference image. More specifically, coding intermediate block is done in two stages: - first of all, the forecast of the encoded block using one or more reference blocks and mechanism motion compensation for accounting apparent motion or again to achieve effective forecasting; - then calculates the remainder of error in the projections predict the difference between the encoded block and Outlook. Then encoded and transmitted and/or stored, depending on the method of application) the difference or the balance between the current block and is predicted by the unit. During decoding, the difference is added to the forecast, to restore (restore) the unit. Classically, the standards of the integration forecast motion compensation intermediate block is achieved through motion compensation type conversion. Thus, if v represents the considered motion vector and R is considered the reference image, the forecast of the River in each dot or pixel x unit is defined as: P(x)=R(x+v). One drawback of this method motion compensation is that it cannot be used for consideration of natural movements of rotation, zooming, panning, or change to another type. For the forecast appreciate other kinds of motion. For example, Peshwar and Palin in the work On Spatial Adaptation Field of Motion Smoothness in Video Coding" ("Spatial adaptation uniformity of motion of the field when coding"), proposed based on the block in the way of motion, known as the Mar (compensation overlapping motion unit), which is considering the multiple values of vectors to establish the movement for predicting the value of a pixel x unit, subject to encode: P ( x ) = ∑ i w i ( x ) R ( x + V i )where the vectors V i meet the motion vectors i, value w i (x) correspond to the weighted values between different forecasts obtained with different vectors of movement; the weighted values of w i (x), largely depend on the position of the point x, discussed in box. Typically, the weight w i (x) are the same for all units. Although this technique can be used for accounting of a large family of natural movements, received the forecast is of average quality. Consequently, the volume of transmitted information on the forecasted balance is very large, and this transfer of additional information entails losses from the point of view compression efficiency. Consequently, there is a need for new ways of encoding/decoding images with low complexity, while at the same time providing high quality forecast, and which, at least, partially correct imperfections of the prior art. 3. Short description of the invention The invention provides a new approach, which does not have these disadvantages of the prior art in the form of encoding the image sequence containing the stage of coding, at least one block of the current image sequence, forecast by connecting at least one unit with the corresponding unit in the reference image sequence. In accordance with the invention, the forecast has the following stage, at least for one of the block of the current image or a reference image, respectively: - the definition many of the control vector for a given block, each of which represents a shift between the characteristic point of the block and the corresponding position of the specified characteristics points to anchor the image or in the current picture, respectively; - execution of at least one partitioning block into subsections; - definition of many of the control vector for the subblocks of the vector control unit; - determining the size of the forecast, at least one point on the current image, motion compensation, at least one of the specified sub-blocks that are made from vectors management defined for sub-block. The encoding stage also contains insertion into a signal that represents the sequence of the recovery of the control vector for this unit. Thus, the invention provides a new method of forecasting of "intermediate" unit, providing effective quality of the forecast, which, at the same time, has a low complexity. The proposed decision also takes into account the natural movement in the sequence of images, in order to take into account the motion of the box with at least one of his neighbours (i.e. blocks located on the left, right, above or below this block). With this purpose, the invention proposes several vectors of control for a block (for example, two, three, four or more vectors)defined depending on connection this unit with one or more of its neighbors. For example, the vector control unit or subunit each associated with one of the peaks of the unit or subunit. Thus, for 2D four control vector associated with a block with one vector control is associated with each vertex or corner of the block. For eight 3D image of vectors associated with a block, which actually corresponds to Cuba, the vector control is associated with each corner of the unit. It is also possible to link these vectors control with other points of the block, corresponding, for example, the circuit. Similarly, the number of vectors related management unit will not be recorded. In particular, the proposed method is applicable to encode a sequence of images, using direct and/or rear projection. Thus, if the method implements reverse projection, this projection is forecast reverse motion compensation, and vector control point on the path from the current image to one or more reference images. In this case, the set of vectors management, specific for a given block, belongs to the current image. On the contrary, if the method implements a direct projection, forecast is a prediction compensation forward, and vector control point on the way from one or several data images to the current image. Then for a given block, owned by reference image, is defined set of the control vector. At least for one of the block reference image or the current image, this block is divided into subsections, which is defined set of the control vector. These subsections, in particular, can be of different sizes. This division, in particular, allows to take into account the natural movement in the sequence of images, such as affine deformation, while, at the same time, can be limited only by the operation unit conversion. Thus, these operations unit conversion significantly reduce the complexity of calculation interpolated values of the image in a sub-pixel positions (i.e. sharing the computing unit is more efficient than separate calculation based on the point). According to one of the specific objectives of the invention, the portion of the recovery of the control vector include vector control to this unit or the information, representing the vectors of control. Thus, these vectors control block can easily be recovered in the decoder. According to one embodiment variant of the invention, the portion of the recovery of the control vector include at least one checkbox connection, representing the movement between this unit and at least one neighbouring block. For example, portions of the recovery of the control vector contain two flags connections, including: - the first check box representing the movement between this block and the block above this block, between the current image and the reference image, and These check boxes are marked, for example, as "flag_tc" for the first checkbox and flag_lc for a second check box is used to associate the movement of the block and his neighbor (top or left side of the neighbouring block) between the current image and the reference image. After receiving decoder these check boxes will be used to restore the vectors of control. For example, if the block and the block above it, have a common crest, as in the current image and the reference image, after motion compensation, the second option is set to 1 (flag_tc=1). It is assumed that the two units are connected together. If this block and block located with his left hand, have a common crest, as in the current image and the reference image, after motion compensation, the second option is set to 1 (flag_lc=1). The invention also refers to the product of the computer program that is downloaded from the network connection and/or stored in machine-readable carrier and/or executable processor program containing the program code to implement encoding method described above, when a program runs on your computer. In another example of an embodiment of the present invention relates to a device for encoding the image sequence that contains tools for encoding at least one block of the current image sequence, using forecasting, connecting this, at least, one unit with the corresponding unit in the reference image sequence. In accordance with the invention, predictive tools contain at least one specified block the current image or the support of an image: - a tool to determine the set of vectors of control for block; - breaker unit subblock; - a tool to determine the set of vectors management for sub-blocks out of the control vector defined for the unit; - a tool to determine the value of the forecast, at least for one point, the current image of the motion compensation, at least one of the specified sub-blocks that are made from vector control, specified for this subsection. Furthermore, the encoder of this type has the means to insert a signal that represents the sequence of the recovery of the control vector for the specified block. This encoder, particularly adapted to the implementation of the above-described method of coding. For example, it may be the video encoder MPEG or H.264 encoder that uses the future standard for the integration. Another objective of the invention refers to the signal, representing the sequence of images encoded in the encoding method described above. This signal contains at least one portion of the recovery of the control vector for the specified block. This signal is, of course, can have various characteristics related to the encoding method of the present invention. For example, information about the restoration includes at least one checkbox connection, representing the movement between this unit and at least one neighbouring block. According to one embodiment variant of the invention, information about restoring includes vectors management or information that represents these vectors for the specified block. In particular, this signal also includes the difference or the balance between the current block images and Outlook. The signal can also convey information about partitioning blocks. The invention also refers to the media, carrying the signal as mentioned above. Another objective of the invention refers to the manner decode the signal, representing the sequence of images containing the stage for a recovery, at least one image from a sequence of image forecast to be restored, with the specified forecast, links block the restored image, at least one relevant unit in the reference image sequence. This method of decoding stage contains information about the restoration of the control vector, at least for one of the specified block image to be restored, or the reference image, respectively. In addition, the Outlook includes the following stages for the specified block: - defining a set of vectors of control to block, each of which represents a shift between the characteristic point of the specified block and the corresponding position of the specified characteristics points to anchor the image or the image you want to restore, respectively, from the specified information about restoring; - at least one partition block on the subblock; - definition of many of the control vector for the subblocks of the vector control unit; - determining the size of the forecast, at least for one point in the image that should be restored from motion compensation, at least one of the specified sub-blocks that are made from vector control, for certain sub-block. Thus, according to the first example of the incarnation, stage of obtaining includes the stage of extraction, at least one flag connections, representing the movement between this unit and at least one neighbouring block. The boxes, for example, "flag_tc" (first option) and "flag_lc" (the second option) is passed in the signal. These check boxes are used, in particular, to restore the vectors control for the specified block. According to the second example of the incarnation, stage of obtaining includes stage of reception of the control vector for this specified block. In particular the method of decoding stage includes decisions and/or parameterization of a break, allowing you to decide whether this block to be broken and/or parameterize the breaking of the specified block. These stages decisions and/or parameterization are determined, taking into account the predefined criteria, part of a group that contains: - predefined number of sub-blocks to the block; - information about the similarity of these vectors control; - the size of the specified block; - the flag that represents the number of partitions, etc. Thus, all the blocks of the image to be restored or blocks the reference image, not necessarily divided into subsections, and splitting into sub-blocks may vary from one block image to another. Consequently, the division into sub-blocks is adaptive. The invention also refers to the product of the computer program that is downloaded from the network connection and/or stored in machine-readable carrier and/or executed by the processor, containing commands of the program code to implement the method of decoding, as described above, when a program is executed by the processor. Another example of an embodiment of the invention refers to a device decode the signal, representing the sequence of images, and the specified device contains a means to restore at least one image from a sequence, creating a tool to forecast the image to be restored, linking block the restored image, at least one relevant unit in the sequence of the reference image. This device also contains information about the restoration of the control vector, at least for one of the specified block images, subject to recovery or for the reference image, respectively. These predictive tools for the specified block include: - a tool to determine the set of vectors of a control block of recovery information; - breaker unit subblock; - tools to determine the set of vectors management for sub-blocks of the vector control unit; - a tool for determining the amount of the forecast, at least for one point of the image to be restored from motion compensation, at least one of the specified sub-blocks that are made from vector control, for certain sub-block. Decoder of this type, in particular, is the most suitable for the implementation of the method of decoding described above. This is, for example, the video decoder MPEG or H.264 or a decoder, which will be used any future standard of integration. 4. Description of drawings Other characteristics and advantages of the invention will be apparent from the following descriptions that do not restrict specific example of an embodiment of the invention with reference to the attached drawings, in which: figures 1A and 1B present the main stages of the forecast motion compensation and encoding according to one example of an embodiment of the invention; - figure 2 offers the algorithm for determination of the control vector for the unit; figures 3A-3G illustrate the definition of vectors for the unit, whereas its neighbors; - figure 4 presents an example of the block break on a sub-blocks; - figure 5 illustrates the determination of the value of the forecast for the pixel; - figure 6 presents the main stages of the method of decoding according to one example of an embodiment of the invention; figures 7 and 8 represent the structure of encoder and decoders according to one specific example of an embodiment of the invention. 5. Description of one example of an embodiment of the invention 5.1 General principles The General principle invention is based on the coding and decoding the sequence of images, implementing temporary forecast connecting block image, encode, at least one relevant unit in the sequence of the reference image. More specifically, the present invention provides a new way of prediction, by motion compensation block encoded in the "intermediate» mode. The proposed method can be used to obtain a representation of the natural movement, limiting difficulty that he makes in calculations and in the number of passed parameters. The invention, in particular, can be used to encode sequences of images or scenes presented by the moving image, where the moving image corresponds to a block of pixels that change over time. During this changes the picture may be distorted, for example, to account for apparent motion or when the number of pixels present in the unit, increases or decreases. This image can also be changed, for example, transition to a sub-pixel level of the block. The invention can be used, in particular, for definition of deformation, which is subjected to the image. In particular, you may recall that the moving image is determined, at least the following portions of information: - block of the reference pixel, containing information about the base texture; - the start and stop of the image; - information about the transition that is used to update the specified reference block, and at least one passage of a specified sequence. Such a way to represent a sequence of images, in particular, described in the French patent application 0756007, registered on June 25, 2007 in the name of this applicant. Provisional forecast of the present invention is based on defining the set of vectors of control, at least for one block, breaking at least this block in the subsections and defining the set of vectors management for sub-blocks. These vectors control is then used to determine the prognosis of sub-blocks, and then the unit itself. 5.2 motion Compensation Below with reference to figure 1A, we describe the main stages implemented to forecast motion compensation, realized in the video encoder, such as H.264. It should be noted that the invention may be applied to the blocks, as well as to macroblocks standard H.264. Consequently, the term "block" in the description should be understood as "macroblock" or "block" on the value of this standard, not using the opposite indications. As shown in figure 1A, the forecast compensation propulsion (11), at least one block of the current image sequence provides the following stage, at least for the specified block 6 with the first image; - definition 111 many of the control vector vb and C for block b, C , each of which represents a shift between the characteristic point of the block b, C and its corresponding position in the second image; - at least one partition 112 block b C in subsections b SC1 , b SC2 etc.; - definition 113 multiple vectors vb control SC1 , vb SC2, etc. for the sub-blocks on the basis of the control vector vb and C for block; - the definition 114 value of the forecast, at least for one point of the current image-based motion compensation performed on the basis of the control vector vb SC1 , vb SC2, etc. specific to sub-block. In particular, if the forecast performs motion compensation ago, the first image is the current image, and the second image is the reference image. One should recall that the reference image matches the previously encoded/decoded image. If the forecast compensates move forward, the first image is the reference image, and the second image is the current image. This determines the forecast, at least one of the current block images, also known as the projected unit b ^ C .Below is a more detailed description of the various stages implemented to determine the prognosis of the staging of the coded block. Stage to define the vector control and to block break on a sub-blocks are described for the case of motion compensation ago, according to which the vectors of control point to the path from the current image to one or more reference images. Specialists in this field are well aware of the compensation process moving forward, according to which the vectors of control point to the path of the image to the current image when replacing the current image and the reference image, and Vice versa. Stage of determining the amount of the forecast points or pixels described for each of the two types of motion. A) Definition of the control vector First of all, by the classical method is determined by the motion vector for block b C current image I C . This motion vector is denoted as v. Next, define a set of vectors vb control C (111) for the block b, C . In this example, the incarnation defines four control vector for a given block, each of which is associated with a node or a corner of the block. In particular, note the following: - V br vector control is associated with a corner at the bottom right of the block b, C ; - V bl vector control is associated with a corner at the bottom left of the block b, C , - V tr vector control is associated with angle in the main right-hand corner of the block b, C ; - V tl vector control is associated with the angle in the upper left corner of the block b, C . These vectors controls are initialized to zero. Side coding position of the block b C in the current picture I C compared with the position of his neighbors, and the position of the unit in the reference image I R comparisons are made with its neighbors. A value of 1 is then assigned to the second check box flag_lc. These check boxes are used to represent the movement of the block b, C and his neighbor (top or left) between the current image and the reference image. They can be used for determination of the control vector. These flags can be used to restore vector control, if they are received by the decoder. Additionally, for the implementation of the reduced number of signals, two flags flag_tc and flag_lc may be limited by the same amount. They then presented the only checkbox flag_c, taking only the value 0 or 1. Therefore, in this variant of the implementation by the decoder uses the unique option to recovery of the control vector. After analysis of the current and reference images we define the vectors of control br V , V bl, and V tr brand tl for block b, C , as shown in figure 2. For example, the control vector V br associated with the corner at the bottom right of the block b, C , stands out as 21 motion vector v, foreordained to this block. The system then checks (22)to check whether flag_lc unit, meaning that block b and block located with his left hand, connected horizontally. Also in the operation (231, 232)to check whether flag_tc unit, meaning that block b, C and above it the unit is connected vertically. If flag_lc equal to 1, then the vector control V bl takes the value of the control vector V br block located to the left from block b C (V bl =V br (left_block)). These designations have been selected to help specialists to read and understand the equations in this field. Additionally, in a mode of vertical connection (selected flag_tc equal to 1), the control vector V tr takes the value of the control vector V br block, located above the deck b C (V tr =V br (top_block)), and the control vector V tl takes the average value of the control vector V bl block above the block b, C , and control vector V tr block located to the left from block b C (V tl =moy[V tr (left_block), V bl (top_block)]). In vertical mode without a connection (flag_tc equal 0) the control vector V tl takes the value of the control vector V tr blocks, situated to the left from block b C (tl V =V tr (left_block)), and the control vector V tr is derived from three other vector control block b C (V tr =tl V +V br-V bl ). If at the stage of 22, notes that flag_lc not equal to 1, it means that the block b and block located with his right hand are placed mode, disconnect, and we get: - in the mode of connection vertically (box flag_tc equal to 1): on the control vector V tr takes the value of the control vector V br block, located above the block b C (V tr =V br (top_block)); on the control vector V tl takes the value of the control vector V bl unit, located over unit a b C (tl V =V bl (top_block)); on the control vector V bl from the other three vectors control block b C (V bl =tl V +V br-V tr ); - not in the United vertical mode (flag_tc 0): about vectors control V tl , V tr and V bl all take the value of the control vector V br block b C (V bl =tl V =br V =V tr =V). In particular, if the block has no neighbors on the left side, the vectors of management associated with its upper left and lower left corners are determined from vectors management, specific to its upper right and lower right corners (V bl =V br and tl V =V tr ). Similarly, if the block has no neighbors above him, the vectors of management associated with its upper left corner and upper right corners are determined on the basis of the control vector defined for its bottom-left and bottom-right corners (tl V =V bl and V tr =V br ). If the box doesn't have the neighbour on the left, the neighbour over him, the vectors of management associated with its top left corner, top right and bottom right corners are based on vector control, specified for its lower right corner (V bl =tl V =V tr =V br ). According to the presented example of the incarnation, the boxes flag_lc and flag_tc transferred to the decoder in the form of the recovery of the control vector for block b, C . In particular, the flags may be determined by a series of blocks or block by block. In addition, these flags can be used when determining the motion vector v for the specified block. Indeed, those pieces of information can be used, for example, the mode forecast used for forecasting the movement vector associated with this unit. Thus, if the block and the block above it, unite and if this unit is not connected to the unit, located on the left side, then the encoding vector of movement of a given block can be accomplished through prediction defined by the vector of movement of the block, situated above (not a forecast based on the mean vector of neighboring blocks, as was done in the encoder prior art). Similarly, if the block and block located with his left hand, are connected together and if this unit is not connected to the unit, located over it, then the encoding vector of movement of the specified block can be done through prediction defined by a motion vector that block his left hand (not a forecast based on the mean vector of neighboring blocks, as was done in the encoder prior art). In addition, according to the example of the incarnation, only a single motion vector can be encoded, namely, the vector v (V=V br ). Other motion vectors (V tr brand tl ,V bl ) can be determined through the check boxes flag_lc and flag_tc. The figures 3A-3F shows the definition of the control vector for block b C current image I C , forecast for compensation of reverse motion ago, according to which the vectors control point the way from the current image I C to the reference image I R . More specifically, figure 3A shows the definition of the control vector for block b, C , if the block is located to the left and above the block b, C , is constant, i.e. when the lower left corner of the block, situated above the block b, C , and upper right corner of the block, situated to the left from block b, C , are connected together and check boxes flag_lc and flag_tc equal to 1. Figure 3C shows the case when the blocks located on the left and over unit b, C are constant, flag_lc equal to 1 and flag_tc equal to 0. Figure 3C shows the case when the blocks to the left and above the block b, C are constant, flag_lc 0 and flag_tc equal to 1. The figure 3D shows the case when the blocks to the left and above the block b, C are constant, and check boxes flag_lc and flag_tc equal to 0. Figure 3 shows the case when the blocks to the left and above the block b, C , are not persistent, meaning the lower left corner of the block, situated above the block b, C , and upper right corner of the block, situated to the left from block b, C , differ from each other, flag_lc equal to 1 and flag_tc equal to 0. Figure 3F shows the case when the blocks to the left and above the block b, C , are not permanent, flag_lc 0 and flag_tc equal to 1. The figure 3G case is shown, when the blocks are situated to the left and above the block b, C , are not permanent, and flag_lc and flag_tc equal to 1. B) Split of the block subblocks Below we provide a more detailed description of stages 112 block break b C subblocks. It should be noted that the present invention, at least one block of the current image is divided into subsections. Then use the four vector control, for certain block b C that are interpolated for determination of the control vector various sub-blocks. For example, we defined four vector control for each sub-block. Thus, as shown in figure 4, block b, C , for example, is divided into four sub-blocks b SC1 , b SC2 , b SC3 and b SC4 . Vectors of management attached to the block b, C , are interpolated and are used to determine the new vectors of control for the subblocks. For example, the following symbols are used: - V ml vector control associated with angle to the bottom left of subsection b SC1 , also corresponding corner, located at the upper left sub-block b SC3 ; - V tm vector control associated with the corner, above subsection b SC1 , also corresponding corner, located at the upper left sub-block b SC2 ; - mr V vector control associated with the corner at the bottom right of the subblock b SC2 , also corresponding corner, located at the top right of the subblock b SC4 , - V bm vector control associated with the angle at the top right of the subblock b SC3 , also corresponding corner, located at the bottom left of the subblock b SC4 , and - V mm a control vector associated with a corner at the bottom right of the subblock b SC1 , also corresponding corner, located at the bottom left of the subblock b SC2 corner, located on the top right of the subblock b SC3 , and corner, located at the upper left sub-block b SC4 . Vectors management for sub-blocks are then identified from the vectors control block b, C , for example, as follows: V t m = V t l + V t r 2 V b m = V b l + V b r 2 and V m l = V t l + V b l 2 V m r = V t r + V b r 2 V m m = V t l + V t r + V b l + V b r 4 .These vectors control will then be allocated to the various sub-blocks: - subsection (b SC1 , located at the top left, has, as vectors of control, motion vectors V tl V tm ; V ml mm V - subsection (b SC2 , located at the top left, has, as vectors of control, motion vectors V V tm tr ; mm V V mr - subsection (b SC3 , located at the bottom left, is, as vectors of control, motion vectors V ml mm V ; V V bl bm - subsection (b SC4 , located at the bottom right, has, as vectors of control, motion vectors V mm mr V V bm br V The number of partitions can depend on several parameters. For example, it may be determined by the General parameter defined for a number of blocks, or other configuration block. Thus, the unit is divided into subsections smaller, which is a specific forecast. Then there are variable block sizes for reparations movement. More specifically, the number of partitions can be defined by the size of the block or in accordance with a predetermined number of sub-blocks for this block. For example, macro block size of 16 x 16 can be divided into eight blocks of size 4 x 8 or 8 x 4 or four block size of 8 x 8 or blocks, shaped as two blocks of size 8 x 16 or 16 x 8. According to one embodiment variant of the invention, the vectors of management associated with block b, C , compares two by two to obtain information about the similarity. Block b, C is then broken into subsections, only if the information about the similarities, at least above a predetermined threshold. Where it is adapted unit, we can determine the number of partitions that will be made depending on the maximum difference between the amplitude of the control vector (for example, a simple quantization values of maximum difference). C) determination of the forecast, at least for one point of the current image to compensate for the reverse motion of the subblock current image Below is stage 114 to determine the magnitude of forecast, at least for one pixel current image from compensation for reverse movements performed on the basis of the control vector-specific subsection of the current image is shown in figure 5. Choose a subsection and his four vector control, we set for any point x of this subsection forecast for P(x) by the following equation: P(x)=w 1 (x)I R (x+V 1 )+w 2 (x)I R (x+V 2 )+3 w (x)I R (x+3 V )+w 4 (x)I R (x+V 4 )c: (V 1 , V 2 , V 3 V 4 )=(V tl , V tm , mm V , V ml ) for subsection b SC1 ; (V 1 , V 2 , V 3 V 4 )=(V tm brand tr , mr V , V mm ) for subsection b SC2 ; (V 1 , V 2 , V 3 V 4 )=(V m l , mm V , V bm , V bl ) for subsection b and SC3 (V 1 , V 2 , V 3 V 4 )=(V (mm), mr V , V br , V bm ) for subsection b SC4 . The weighted values 1 w (x), w 2 (x), w 3 (x), w 4 (x) can be defined as described in this document the "Spatial adaptation uniformity of motion of the field when the coding. Also can be used and other known methods. Thus, we define the forecast, at least one block of the current image I C . D) determination of the forecast, at least, one point of the current image to compensate for the translational motion of the subblock reference image Below is stage 114 to determine the magnitude of forecast, at least for one pixel current image-based compensation progressive movement, performed on the basis of the control vector-specific subsection of the reference image. In case of compensation of translational motion blocks the current image can be predicted by several blocks of one or more reference images. To calculate the value of the forecast points of the current image, you must design all blocks of the reference image in the current image to determine which blocks can be used for prediction point of the current image. Below the algorithm for creating the projected image for the current image. At the first stage we will initiate the projected image. Thus, for every point of the image x we have: RI(x)=0, RW(x)=0. RI corresponds to the projected image, in which all values of the forecast issued by the blocks of base images, weighed and accumulate RW corresponds to the accumulated weight of the image. For every subblock b SC1 , b SC1 , ..., the following stages: for each vector of movement of the subblock projected image is updated for ab, equal to tl, tr, bl and br then. For any x in subblock: - the value of w ab (x)*P(x) at the point RI(x+v ab ):RI(x+v ab )+=w ab (x)*P(x), accumulates, with P(x) is a forecast at the point x of the subblock; - in points RW(x+v ab ): RW(x+v ab )+=w ab (x) accumulated value ab w (x). Weight w ab , used for compensation of the progressive movement may take the value of the weights used in motion ago, as well as other measures. In particular, these values can vary and can be adapted by the unit. For example, this adaptation may depend on similarities motion vector control. The projected image is then for any point x in the image: - if RW (x) is different from 0, RI (x) divided by RW (x): RW(x)!=0, then RI (x) /=RW (x); otherwise RI(x) is updated in a predefined value UNDEF, for example, the value 0. Additionally, an undetermined value, for which RW(x) is equal to 0, change to be more likely value relative to their surroundings. This last phase can be performed in different ways, for example, in determining for any quantity is not determined by the point value, which is the closest to the projected image, which has a well-defined value (i.e. RW(y), different from 0). Thus determined forecast blocks the current image I C . 5.3 Encoding Below, with reference to figure 1B, we define the basic stages of coding, for example, implemented a video encoder type H.264. In particular, how the invention can be implemented in various ways, i.e. hardware or software. As shown in figure 1B, the coding method of the present invention includes a step encoding 11 to encode at least one block b C current image sequence I C , carrying forecast motion compensation, as described above with reference to figure 1A. Thus, we define the forecast, at least one block of the current image I C , also known as the projected unit b ^ C .Then we classically defined error balance of forecast corresponding to the difference between the current block images and projected unit b ^ C .Finally, at the stage 12, information about the restoration of the control vector for block b C inserted into the signal, representing the sequence of images. The remains of the forecast errors also are inserted into the signal. These errors can be used by the decoder during recovery image sequence. Signal representing the sequence of images that can then be transmitted and/or stored in a data carrier. 5.4 Signal After encoding the image sequence is transmitted to the decoder. Furthermore, elements of information about the restoration of the control vector for block b C inserted into the signal. For example, those pieces of information about restoring include flags flag_lc and flag_tc. One example of the incarnation, the remains of the forecast errors are also inserted into the signal, in particular, the remainder of the forecast of motion vector v, which will be used by the decoder when restoring an image sequence. You can also insert a flag indicating whether the split, which undergoes the block b C coder. Thus, the fact that splitting performed during the forecast by the encoder, identical to split runs during the forecast decoder. 5.5 Decoding Now let's figure 6, where we present the main stages of the decoding, for example, implemented scaler type H.264. The method of the present invention can be done in various ways, in particular, hardware or software. It is assumed that the decoder receives the signal, representing the sequence of images, coded, for example, encoding method, described above. More specifically, as shown in figure 6, the method of decoding the present invention includes a step 61 to restore at least one image of the projected image sequence to be restored, and the stage of obtaining information about 62 restoring vector control, at least for one of the specified block b C messages to be restored, or the reference image. In this example, the following stages are executed at least for the specified block b C image to be restored, or the reference image: - the definition 611 many of the control vector vb and C for block b, C , each of which represents a shift between the characteristic point of the block b, C and its appropriate position in the reference image or picture that you want to restore, on the basis of information about restoring; - at least one partition 612 block b C in subsections b SC1 , b SC2 etc.; - determination of the 613 many vectors vb control SC1 / vb / SC1 etc. subblock for vector control for this block; - definition 614 value of the forecast, at least for a single pixel in the image to be restoration, based motion compensation, at least one of the subblock, made on the basis of the control vector for certain sub-block. Thus, the prognosis is determined, at least for one block restored image also known as the projected unit b ^ C .Then, the remainder of the forecast error is defined by the classical manner when encoding the projected unit to determine restored block the restored image. Stage 20 to define a set of vectors of a control block, break 612 block on the subblock, the definition 613 many of the control vector for subsections and definition 614 value of the forecast, at least for a single pixel in the image to be restored similar stages performed during encoding, and, consequently, do not require a more detailed description. In particular, we can note that the phase 611 to determine the set of vectors vb control C for block b C account recovery information, obtained at the stage of 62. According to the first variant the embodiment of the invention, those pieces of information about reconstruction, in particular, take the form of at least one flag connections inserted into the signal, representing the sequence of images in the encoder. For example, those pieces of information about restoring include flags flag_tc and flag_lc. According to the second variant embodiment of the invention, those pieces of information about restoring take the form of the control vector for block b, C , directly transmitted in the data stream. 5.6 Inversion movement As noted above, the proposed method ensures the encoding/decoding the sequence of images, using direct and/or rear projection. Thus, movement, defined on the blocks, can be inverted and may include the establishment of encoding/decoding direct projection (motion vectors are defined in the reference image), portions of the information (the forecast in the current picture structural values motion or other useful information, such as information about the depth for information 3D video from the encoder that encodes information in depth. The image is restored to the inversion of motion is obtained by dividing the aforesaid sub-blocks. This is the reconstructed image can be used in the encoder and/or decoder. 5.7 Structure of the encoder and decoder Let us turn now to figures 7 and 8, for which we present the simplified structure of the encoder and decoder or encoder and decoder, respectively, implementing the encoding method and the method of decoding, as described above. Encoder, are shown in figure 7, contains the memory 71, including buffer memory, processor, 72, equipped, for example, microprocessor Mr and executing a computer program 73 for the implementation of the encoding method of the present invention. During initialization commands computer software code 73, for example, is loaded into RAM, and then executed by the processor 72. Processor 72 takes at least one image that you want to encode, or unit of encoded images. Microprocessor processor 72 performs the stage described above encoding, according to the instructions of a computer program 73 for a prognosis of the image or block encoded picture and encodes the block or the corresponding image. With this purpose, the encoder contains, in addition to the buffer memory 71 tool forecasting linking at least one unit with the corresponding unit in the sequence of the reference image and the means to insert in the signal, representing the sequence, information on the restoration of the control vector for the block, and forecasting contains a tool to determine the set of vectors control to block breaker unit on the subblock, a tool to determine the set of vectors control to subsections and means to determine the magnitude of forecast, at least for a single pixel on the current image. These funds are driven by a microprocessor processor 72. A decoding device, shown in figure 8, contains the memory 81, including buffer memory, processor, 82, is equipped with, for example, microprocessor Mr and executing a computer program 83, by encoding method of the present invention. During initialization commands computer software code 83, for example, is loaded into RAM, and then executed by the processor 82. Processor 82 accepts your input signal, representing the sequence of images containing portions of the recovery of the control vector associated, at least one data block. The microprocessor control unit 82 performs stage of the above-described method of decoding, on commands from the computer program 83, to determine the prognosis of the specified block and restore the image. With this purpose, the decoder contains, in addition to the buffer memory 81, restore, at least one image at a specified sequence, and the tool information about the restoration of the control vector, at least for one specific unit, a recovery tool that contains a tool forecast, including the means for determining the set of vectors of control for the block tool division in subsections and means for determining the set of vectors management for sub-block, and a means for determining the amount of the forecast, at least for a single pixel in the image that should be restored. These funds are driven by a microprocessor processor 82. 1. The encoding of a sequence of images that contain the stage of coding, at least one block of the current image sequence, carrying forecast (11)connecting at least one unit with the corresponding unit in the reference image in the specified sequence, and the specified forecast (11) contains the following stage, at least for one specific unit current image or for the reference image, respectively: - definition of a (111) many of the control vector for a given block, each of which represents a shift between the characteristic point of the specified block and the relevant provision of the specified specific points to anchor the image or in the current picture, respectively, and each of these vectors management determined with the account of movement of the specified block and at least one flag connections, representing the movement between the specified unit and at least one neighbouring block in the specified reference and the current image; - splitting (112) the specified block to the sub-blocks that are performed at least once; - definition (113) many of the control vector for these sub-blocks out of the control vector for the specified block; - definition (114) the values of the forecast, on least one point on the specified current image of motion compensation, at least one of the specified sub-blocks found out of the control vector defined for a specified sub-block and insert the specified motion vector and specified information (12) for the recovery of these vectors control to this the specified block to the signal, representing the specified sequence. 3. The encoding method according to claim 1, characterized in that said vectors control for the specified unit or subunit associated with each vertex specified unit or subunit. 4. Machine-readable medium of a computer program that contains the command control codes for realization of this method on any item 1-3, when the program is executed by the processor. 5. Device for encoding the image sequence that contains a tool for encoding at least one block of the current image sequence of images, by means of anticipating (11)linking this block, with at least one relevant unit in the sequence of the reference image and the specified tool forecast (11) contains at least one specified block the current image or for the reference image accordingly: a tool to determine the (111) many of the control vector for a given block, each of which represents a shift between the characteristic point of the specified block and the relevant provision of the specified characteristics points to anchor the image or in the current picture, respectively, made with the possibility to define these vectors, taking into account the motion vector specified block and to form at least one checkbox connection, representing the movement between the specified unit and at least one neighbouring block in the specified reference and the current image; - a means to an organizational unit (112) the specified block to the subblock; a tool to determine (113) many of the control vector for these sub-blocks out of the control vector for the specified block; - a tool to determine (114) the values of the forecast, at least one point on the specified current image of motion compensation, at least one of the specified sub-blocks found out of the control vector defined for a specified sub-blocks and - a tool for inserting (12) in the specified vector of movement and the specified information in the signal, representing the specified sequence, of the recovery of these vectors control for the specified block. 6. Signal representing the sequence of images encoded way on any of clauses 3, containing at least one portion of the recovery of the control vector for the specified block that includes at least one checkbox connection, representing the movement between the specified unit and at least one neighbouring block. 7. Data carrier, made with the possibility to carry the signal 6. 8. Way to decode the signal, representing the sequence of images containing the stage for recovery (61)at least one image specified sequences from a forecast of the image to be restored, with the specified forecast associates block the restored image, at least one relevant unit in the reference image sequence, and the method includes a step for (62) of the recovery of the control vector, at least for one of the specified block image to be restored, or for the reference image, respectively, and the specified forecast includes the following stages: - definition (20) many of the control vector for a given block, each of which represents a shift between the characteristic point of the specified block and the relevant provision of the specified characteristics points to anchor the image or the image you want to restore, respectively, from the specified information for recovery of the control vector, each of these vectors control is determined taking into account the motion vector specified block and at least one flag connections, representing the movement between these units and at least one neighbouring block in the specified reference and the current image; - splitting (612) block into subsections performed at least once; define (613) many of the control vector for these sub-blocks out of the control vector for the specified block; - definition (614) value of the forecast, at least for one point of the image to be restored from motion compensation, at least one of the specified sub-blocks found out vector control, for certain sub-block. 9. Method of decoding under item 8, wherein the specified stage (62) for information includes a step extract at least one flag connections, representing the movement between this unit and at least one neighbouring block. 10. Method of decoding under item 8, wherein the specified stage (62) for information includes the stage for taking the vectors control for the specified block. 11. Method of decoding under item 8, wherein it contains the solving stage and/or the parameterization of the specified split, according to predetermined criterion of belonging to the group, comprising: - a predefined number of sub-blocks for the unit; - information about the similarities between these vectors management; - the size of the specified unit; - the box representing the number of breaks. 12. Machine-readable medium of a computer program that contains the command control codes for the implementation of the method of decoding on any item 8-11, when the program is executed by the processor. 13. The device decode the signal, representing the sequence of images containing recovery (61)at least one image sequence, using the tool for forecasting the image to be restored, with the tool connects the unit image to be restored at least one the corresponding unit in the reference image in the specified sequence, and it contains the tools (62) for information about the restoration of the control vector, at least for one of the specified block image to be restored, or for the reference image, respectively, and predictive tools for the specified block contain: - a tool to determine (20) many of the control vector for a given block, each of which represents a shift between the characteristic point of the unit and the relevant provision of the specified characteristics points in the reference image or image that you want to restore, respectively, of the recovery of the control vector, made with the possibility to determine these vectors, taking into account the motion vector specified block and to form at least one checkbox connection, representing the movement between the specified unit and at least one neighbouring block in the specified reference and the current image; - breaker (612) specified block to the subblock; a tool to determine (613) many of the control vector for these sub-blocks out of the control vector for the specified unit; - a tool to determine (64) the values of the forecast, at least for one point of the image to be restored from motion compensation, at least one of the specified sub-blocks, made of vector control, as defined for the specified sub-block.
|
||||||||||||||||||||
| © 2013-2014 Russian business network RussianPatents.com - Special Russian commercial information project for world wide. Foreign filing in English. |