US8649439B2 - Decoding circuit, decoding device, and decoding system - Google Patents

Decoding circuit, decoding device, and decoding system Download PDF

Info

Publication number
US8649439B2
US8649439B2 US11/791,220 US79122005A US8649439B2 US 8649439 B2 US8649439 B2 US 8649439B2 US 79122005 A US79122005 A US 79122005A US 8649439 B2 US8649439 B2 US 8649439B2
Authority
US
United States
Prior art keywords
macroblock
decoding
motion vector
direct mode
buffer
Prior art date
Legal status (The legal status 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 status listed.)
Active, expires
Application number
US11/791,220
Other versions
US20080008244A1 (en
Inventor
Keishi Chikamura
Takeshi Tanaka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Publication of US20080008244A1 publication Critical patent/US20080008244A1/en
Assigned to MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. reassignment MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHIKAMURA, KEISHI, TANAKA, TAKESHI
Assigned to PANASONIC CORPORATION reassignment PANASONIC CORPORATION CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.
Application granted granted Critical
Publication of US8649439B2 publication Critical patent/US8649439B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Definitions

  • the present invention relates to a decoding circuit, a decoding device, and a decoding system for sequentially decoding a plurality of macroblocks composing an encoded picture in a predetermined order.
  • a “motion-compensated interframe prediction” is one of important elements of a conventional moving image compression encoding/decoding technology.
  • the motion-compensated interframe prediction is a method for detecting how pictures in continuous frames (screens) composing a moving image move, in order to compress the moving image effectively.
  • a typical moving image compression method such as MPEG (Moving Picture Experts Group) and the like
  • MPEG Motion Picture Experts Group
  • the motion vector indicates, per unit called a “macroblock” made by dividing a picture, to which direction a current picture moves and an amount of the movement of the current picture compared to a macroblock in another picture preceding or succeeding the current picture in a display order. Note that the compared picture is called a “reference picture”.
  • MPEG 4-AVC Advanced Video Coding
  • the bidirectional motion-compensated interframe prediction is a method for selecting two arbitrary reference pictures from other pictures preceding or succeeding a current picture in a display order, and performing the motion-compensated interframe prediction using the two reference pictures.
  • a picture, on which the bidirectional motion-compensated interframe prediction is to be performed is called a “Bi-predictive picture”, or a “B picture” for short.
  • an encoding mode called a “direct mode” may be used.
  • the direct mode calculates a motion vector of a current macroblock using a motion vector of a reference macroblock that has already been decoded, without encoding the motion vector of the current macroblock. Specifically, if the current macroblock is encoded by the direct mode, the motion vector of the current macroblock is calculated using the motion vector of the reference macroblock on same orthogonal coordinates as the current macroblock in a preceding picture.
  • a conventional process of decoding a macroblock encoded by the direct mode will be briefly described with reference to FIG. 7 .
  • a predetermined amount of motion vectors of decoded macroblocks are stored.
  • motion vectors of four pictures are stored.
  • one picture is composed of 8,160 macroblocks
  • motion vectors of 32,640 macroblocks in total are required to be stored.
  • a normal buffer is neither sufficient nor practical for storing so many motion vectors in a decoding circuit. Therefore, motion vectors of decoded macroblocks are stored in a memory located outside of the decoding circuit, such as a DRAM (Dynamic Random Access Memory).
  • DRAM Dynamic Random Access Memory
  • step S 200 when a macroblock of a B picture is decoded, firstly, macroblock type information included in the head of the macroblock is referenced to judge whether the macroblock is encoded by the direct mode (step S 200 ).
  • a DMA (Direct Memory Access) transfer instruction is performed to obtain a motion vector of a reference macroblock from an external memory (step S 201 ).
  • a motion vector of the macroblock is specified based on the motion vector of the reference macroblock transferred from the external memory as a result of the DMA transfer instruction (step S 202 ).
  • the necessary motion vector of the reference macroblock is obtained by accessing the external memory (step S 201 ). Because it takes time to transfer the motion vector of the reference macroblock from the external memory to the decoding circuit, a waiting time is required as shown by an arrow in FIG. 7 . As a result, a total time T for decoding the macroblock of the B picture becomes longer.
  • a longer total time T for decoding the macroblock of the B picture causes a delay in the decoding of the B picture. This can adversely affect a speed for decoding a whole moving image.
  • a main object of the present invention is to provide a decoding circuit, a decoding device, and a decoding system for decoding a B picture encoded by the direct mode at a high speed.
  • a decoding circuit for sequentially decoding a plurality of macroblocks in a predetermined order, the plurality of macroblocks composing a picture that is encoded according to MPEG, the decoding circuit comprising: a transferring unit operable to execute a data transfer with an external memory located outside of the decoding circuit; a buffer operable to hold a motion vector of a reference macroblock, the motion vector of the reference macroblock being to be referenced if a current macroblock has been encoded by a direct mode; a buffer transfer instructing unit operable to instruct the transferring unit to transfer, before decoding of a macroblock preceding the current macroblock ends, the motion vector of the reference macroblock from the external memory to the buffer; a decoding unit operable to, if the current macroblock has been encoded by the direct mode, specify a motion vector of the current macroblock based on the motion vector held in the buffer; and an external memory transfer instructing unit operable to instruct the transferring unit to transfer the specified motion vector
  • a decoding circuit which is required to temporarily store a decoded motion vector in an external memory because of a limit of a buffer capacity of the decoding circuit, transfers a motion vector as follows.
  • the decoding circuit transfers a motion vector that will be needed for a macroblock to be decoded, from the external memory to the buffer in the decoding circuit, before decoding of the macroblock is started.
  • This construction is not necessary unless a macroblock is encoded by the direct mode.
  • a motion vector of the macroblock can be immediately specified when the macroblock starts to be decoded.
  • a time required for decoding the macroblock can be shortened.
  • the buffer transfer instructing unit instructs the transferring unit to transfer the motion vector of the reference macroblock from the external memory to the buffer, during a period from when decoding of a macroblock immediately preceding the current macroblock begins to when the decoding ends.
  • a motion vector, to which is referenced when an (n+1)-th macroblock is encoded by the direct mode is transferred to the buffer in the decoding circuit. Therefore, even if the (n+1)-th macroblock is encoded by the direct mode, a motion vector of the (n+1)-th macroblock can be immediately specified when the (n+1)-th macroblock starts to be decoded. Also, a buffer size in the decoding circuit can be minimized for retaining a motion vector to which is referenced by a succeeding macroblock.
  • FIG. 1 is a block diagram showing a construction of a decoding system 10 of the present invention.
  • FIG. 2 is a schematic diagram showing a structure of data encoded according to MPEG.
  • FIG. 3 is a schematic diagram showing a method of calculating a motion vector in a temporal direct mode.
  • FIG. 4 is a flowchart showing a decoding process operation of the decoding system 10 .
  • FIG. 5 is a timing chart showing the decoding process operation of the decoding system 10 .
  • FIG. 6 is a schematic diagram showing a method of calculating a motion vector in a spatial direct mode.
  • FIG. 7 is a timing chart showing a conventional decoding process.
  • a decoding system 10 includes a decoding circuit 100 , an external memory 200 connected to the decoding circuit 100 , and a storage medium 300 .
  • the external memory 200 is a writable memory used as a working area such as a DRAM and the like, and temporarily stores data that is necessary for the decoding circuit 100 to perform a decoding process.
  • the decoding circuit 100 will be described later.
  • the storage medium 300 is a mass storage medium such as a HDD (Hard Disk Drive) and the like, and stores moving image data (hereinafter, referred also to as a “stream”) that is encoded according to MPEG.
  • the stream is a TV program recorded by a user.
  • the decoding circuit 100 is an integrated circuit for decoding a stream that is encoded according to MPEG.
  • the decoding circuit 100 receives a stream sequentially loaded from the storage medium 300 to a working area of the external memory 200 , and decodes the stream.
  • the decoding circuit 100 includes a stream transfer instructing unit 101 , a decoding unit 102 , a DMA controller 103 , a reference image transfer instructing unit 104 , a buffer transfer instructing unit 105 , a buffer 106 , an external memory transfer instructing unit 107 , an inverse frequency transformation processing unit 108 , a motion compensation processing unit 109 , an intra macroblock processing unit 110 , a deblock filter processing unit 111 ; and a decoded image transfer instructing unit 112 .
  • the stream transfer instructing unit 101 instructs the DMA controller 103 to transfer the stream from the external memory 200 to the buffer 106 described later.
  • the decoding unit 102 variable-length-decodes the stream that has been variable-length-encoded according to MPEG per macroblock, and outputs a macroblock type, a motion vector, and a pixel residual value of the macroblock. If the macroblock is encoded by a mode other than the direct mode, the motion vector is specified by decoding the macroblock. On the other hand, if the macroblock is encoded by the direct mode, the motion vector is calculated using a motion vector retained in the buffer 106 .
  • the DMA controller 103 transfers data between the external memory 200 and each buffer included in the decoding circuit 100 such-as the buffer 106 , using a DMA method.
  • the reference image transfer instructing unit 104 instructs the DMA controller 103 to transfer a reference image indicated by the motion vector outputted from the decoding unit 102 , from the external memory 200 to the buffer 106 .
  • the buffer transfer instructing unit 105 instructs the DMA controller 103 to transfer the motion vector of an already decoded macroblock, to which is referenced when the macroblock is encoded by the direct mode, to the buffer 106 .
  • the buffer 106 is a storage area for temporarily storing data in the decoding circuit 100 , and has a capacity of storing at least one motion vector of a macroblock. Specifically, the buffer 106 temporarily stores the motion vector outputted from the DMA controller 103 according to the instruction from the buffer transfer instructing unit 105 .
  • the external memory transfer instructing unit 107 instructs the DMA controller 103 to transfer a motion vector specified each time the decoding unit 102 decodes a macroblock, to the external memory 200 .
  • the inverse frequency transformation processing unit 108 inverse-frequency-transforms the pixel residual value outputted from the decoding unit 102 and outputs it.
  • the motion compensation processing unit 109 combines the pixel residual value outputted from the inverse frequency transformation processing unit 108 with the reference image transferred according to the instruction from the reference image transfer instructing unit 104 , and outputs the combined image as a decoded image.
  • the intra macroblock processing unit 110 if the macroblock is encoded by a mode that does not require an interframe prediction (hereinafter, referred to as an “intra macroblock”), decodes the macroblock using the pixel residual value of the macroblock outputted from the inverse frequency transformation processing unit 108 , and outputs the decoded image.
  • an intra macroblock a mode that does not require an interframe prediction
  • the deblock filter processing unit 111 performs a deblock filter process on the decoded image outputted from any of the motion compensation processing unit 109 and the intra macroblock processing unit 110 , in order to reduce block noise.
  • the decoded image transfer instructing unit 112 instructs the DMA controller 103 to transfer the decoded image on which the deblock filter process has been performed by the deblock filter processing unit 111 , to the external memory 200 .
  • a stream encoded according to MPEG is composed of a plurality of pictures (P 1 , P 2 , P 3 , . . . Pn).
  • Each of the plurality of pictures is a still image composing the stream which is a moving image, and corresponds to one screen.
  • each of the plurality of pictures is divided into slices each having a width of 16 lines in a horizontal direction (slice # 1 , slice # 2 , . . . slice #n).
  • a slice is a basic unit for encoding a picture.
  • a macroblock is a basic unit for decoding including the motion-compensated interframe prediction.
  • a macroblock is a basic unit for decoding including the motion-compensated interframe prediction.
  • HDTV High Definition Television
  • MPEG4-AVC Advanced Video Coding
  • the motion vector is information showing to which direction a current picture moves and an amount of the movement of the current picture compared to a macroblock in another picture preceding or succeeding the current picture in a display order. If the macroblock is encoded by a mode other than the direct mode, the motion vector is specified when the macroblock is variable-length-decoded.
  • the motion vector of the macroblock is calculated using a motion vector of another macroblock.
  • a method of calculating a motion vector in a “temporal direct mode” will be described.
  • a motion vector of a macroblock (MB 01 ) to be decoded one of two reference pictures (hereinafter, referred to as an “anchor picture”) (AP 01 ) for the macroblock to be decoded is referenced.
  • the motion vector of the MB 01 is calculated using a motion vector of a macroblock (hereinafter, referred to as an “anchor block”) (AB 01 ) on same orthogonal coordinates as the MB 01 in the AP 01 , according to the following formula.
  • mvL 0 mvCol*tb/td [Formula 1]
  • mvL 1 mvL 0 ⁇ mvCol [Formula 2]
  • mvCol is a value of the motion vector of the AB 01 , and indicates to which macroblock in the reference picture the AB 01 corresponds.
  • tb is a time interval between the other reference picture and the picture of the MB 01 .
  • td is a time interval between the other reference picture and the AP 01 . Values of tb and td are informed from the decoding unit 102 . From the formulas 1 and 2, mvL 0 and mvL 1 as the motion vector of the MB 01 are calculated. By mvL 0 and mvL 1 , a macroblock MB 00 on the AP 01 and a macroblock MB 02 on the other reference picture are determined as reference images.
  • the stream transfer instructing unit 101 instructs the DMA controller 103 to transfer the stream from the external memory 200 to the decoding unit 102 .
  • the DMA controller 103 transfers the stream from the external memory 200 to the decoding unit 102 (step S 100 ).
  • the decoding unit 102 receiving the stream starts a decoding process of a picture composing the stream per macroblock (step S 101 ).
  • a decoding process of an n-th macroblock is started.
  • the buffer transfer instructing unit 105 instructs the DMA controller 103 to transfer a motion vector of an anchor block to be referenced if an (n+1)-th macroblock succeeding the n-th macroblock is encoded by the direct mode (hereinafter, referred to as an “anchor block for the (n+1)-th macroblock”), from the external memory 200 to the buffer 106 (step S 102 ).
  • the decoding unit 102 judges whether the macroblock is a macroblock requiring the interframe prediction (hereinafter, referred to as an “inter macroblock”) or a macroblock not requiring the interframe prediction (hereinafter, referred to as an “intra macroblock) by referring to a macroblock header (step S 103 ).
  • inter macroblock a macroblock requiring the interframe prediction
  • intra macroblock a macroblock not requiring the interframe prediction
  • step S 104 the decoding unit 102 further judges whether an encoding mode of the n-th macroblock is the direct mode (step S 104 ).
  • step S 104 if the encoding mode of the n-th macroblock is the direct mode (“YES” in step S 104 ), the decoding unit 102 specifies a motion vector of the n-th macroblock using a motion vector stored in the buffer 106 (step S 105 ).
  • the motion vector stored in the buffer 106 here is a motion vector of an anchor block that was transferred in parallel with a decoding process of an (n ⁇ 1)-th macroblock and is to be referenced if the n-th macroblock is encoded by the direct mode (hereinafter, referred to as an “anchor block for the n-th macroblock”).
  • step S 104 if the encoding mode of the n-th macroblock is not the direct mode, the decoding unit 102 specifies the motion vector when variable-length-decoding the n-th macroblock (step S 106 ).
  • the decoding unit 102 outputs the specified motion vector to a buffer in the external memory transfer instructing unit 107 . Then, the external memory transfer instructing unit 107 instructs the DMA controller 103 to transfer the motion vector to the external memory 200 (step S 107 ).
  • the motion vector is transferred so that an address in the external memory 200 to which the motion vector is transferred corresponds to the n-th macroblock.
  • the reference image transfer instructing unit 104 instructs the DMA controller 103 to transfer a reference image based on the motion vector outputted from the decoding unit 102 , from the external memory 200 to a buffer in the motion compensation processing unit 109 (step S 108 ).
  • the inverse frequency transformation processing unit 108 inverse-frequency-transforms the pixel residual value outputted from the decoding unit 102 and outputs it (step S 109 ).
  • the motion compensation processing unit 109 combines the pixel residual value outputted from the inverse frequency transformation processing unit 108 with the reference image transferred via the DMA controller 103 according to the instruction from the reference image transfer instructing unit 104 , and outputs the combined image as a decoded image (step S 110 ).
  • step S 103 if the macroblock is the intra macroblock, the decoding unit 102 instructs the DMA controller 103 to transfer information that the macroblock is the intra macroblock, to the external memory 200 (step S 111 ).
  • the inverse frequency transformation processing unit 108 inverse-frequency-transforms the pixel residual value outputted from the decoding unit 102 and outputs it (step S 112 ).
  • the intra macroblock processing unit 110 generates a reference image based on an image around the n-th macroblock, adds the reference image to the pixel residual value outputted from the inverse frequency transformation processing unit 108 , and outputs the image as a decoded image (step S 113 ).
  • the deblock filter processing unit 111 performs a deblock filter process on the decoded image outputted in step S 110 or step S 113 to remove block noise, and outputs the decoded image to a buffer in the decoded image transfer instructing unit 112 (step S 114 ).
  • the decoded image transfer instructing unit 112 instructs the DMA controller 103 to transfer the decoded image on which the deblock filter process has been performed, to the external memory 2 b 0 (step S 115 ).
  • the motion vector of the anchor block for the (n+1)-th macroblock is transferred to the buffer 106 via the DMA controller 103 , according to the instruction of transferring the motion vector in step S 102 (step S 116 ).
  • a variable “n” is incremented. Then, a decoding process of the (n+1)-th macroblock and transfer of a motion vector of an anchor block for an (n+2)-th macroblock are started (steps S 101 and S 102 ).
  • the decoding process of the n-th macroblock (steps S 103 to S 115 ) is performed in parallel with the transfer of the motion vector of the anchor block for the (n+1)-th macroblock to the buffer 106 (steps S 102 and S 116 ).
  • the motion vector can be immediately calculated using the motion vector of the anchor block for the (n+1)-th macroblock in the buffer 106 .
  • step S 200 the macroblock type is judged once (step S 200 ), after the macroblock is judged to be encoded by the direct mode, the DMA controller 103 is instructed to transfer the motion vector (step S 201 ). Therefore, even if the decoding process of the macroblock is completed, it is necessary to wait until the transfer of the macroblock from the external memory 200 is completed. As a result, the total time T required for decoding the macroblock becomes longer.
  • the decoding process of the n-th macroblock (steps S 103 to S 115 ) is performed in parallel with the transfer of the motion vector of the anchor block for the (n+1)-th macroblock to the buffer 106 (steps S 102 and S 116 ).
  • the motion vector can be immediately calculated using the motion vector of the anchor block for the (n+1)-th macroblock in the buffer 106 .
  • each of the macroblocks composing a B picture when each of macroblocks composing a B picture is encoded by the direct mode, each of the macroblocks can be decoded at a high speed. This can speed up decoding of the B picture.
  • the motion vector of the anchor block for the immediately succeeding macroblock is transferred to the buffer 106 .
  • a plurality of motion vectors of anchor blocks for a plurality of macroblocks succeeding the current macroblock can be collectively transferred, by making a capacity of the buffer 106 larger.
  • transfer efficiency may be reduced because a burst length is not reached by transferring the data per one motion vector.
  • the motion vector of the anchor block for the (n+1)-th macroblock and the motion vector of the anchor block for the (n+2)-th macroblock can be collectively transferred at the same time.
  • the size of the buffer 106 can be minimum for retaining the motion vector to be referenced by the macroblock immediately succeeding the current macroblock. However, it is not limited to one macroblock as far as the size of the buffer 106 allows.
  • a plurality of motion vectors of a plurality of macroblocks may be collectively transferred.
  • the “temporal direct mode” is described as the direct mode.
  • a “spatial direct mode” may be used.
  • a motion vector of an anchor block and a motion vector of a macroblock around the macroblock are used for specifying a motion vector of the macroblock.
  • the motion vector of the MB 01 is calculated according to the following formula using each of motion vectors of a macroblock (MB(A)) located on a left side of the MB 01 , a macroblock (MB(B)) located on an upper side of the MB 01 , and a macroblock (MB(C)) located on an upper right side of the MB 01 .
  • mv median( mvA,mvB,mvC ) [Formula 3]
  • mvA is a motion vector of the MB (A).
  • mvB is a motion vector of the MB(B).
  • mvC is a motion vector of the MB(C). From the formula 3, mv as the motion vector of the MB 01 is calculated.
  • step S 102 in the flowchart shown in FIG. 4 the DMA controller 103 may be instructed to transfer each of motion vectors (three motion vectors in total) of macroblocks located on a left side, an upper side, and an upper right side in the picture of the (n+1)-th macroblock to the buffer 106 .
  • a size of the buffer 106 may be fitted to a size for storing the three motion vectors.
  • the decoding circuit, the decoding device, and the decoding system of the present invention can be applied to a reproducing device for decoding an image encoded according to MPEG, and are useful as a technology for realizing high-speed decoding.

Abstract

A decoding circuit, a decoding device, and a decoding system are included for decoding a B picture encoded by a direct mode at a high speed. A decoding process of an n-th macroblock is performed in parallel with transfer of a motion vector of an anchor block for an (n+1)-th macroblock to a buffer 106. With this construction, even if the (n+1)-th macroblock is encoded by the direct mode, a motion vector can be immediately calculated using the motion vector of the anchor block for the (n+1)-th macroblock in the buffer 106, when the (n+1)-th macroblock is decoded during a time T2.

Description

TECHNICAL FIELD
The present invention relates to a decoding circuit, a decoding device, and a decoding system for sequentially decoding a plurality of macroblocks composing an encoded picture in a predetermined order.
BACKGROUND ART
A “motion-compensated interframe prediction” is one of important elements of a conventional moving image compression encoding/decoding technology. The motion-compensated interframe prediction is a method for detecting how pictures in continuous frames (screens) composing a moving image move, in order to compress the moving image effectively. In a typical moving image compression method such as MPEG (Moving Picture Experts Group) and the like, when the motion-compensated interframe prediction is performed, the following “motion vector” is used. The motion vector indicates, per unit called a “macroblock” made by dividing a picture, to which direction a current picture moves and an amount of the movement of the current picture compared to a macroblock in another picture preceding or succeeding the current picture in a display order. Note that the compared picture is called a “reference picture”.
In recent years, MPEG 4-AVC (Advanced Video Coding) has been standardized as a new moving image compression encoding/decoding technology. In MPEG 4-AVC, a “bidirectional motion-compensated interframe prediction” method as an improved motion-compensated interframe prediction is used (refer to a nonpatent document 1).
Here, the bidirectional motion-compensated interframe prediction will be briefly described.
The bidirectional motion-compensated interframe prediction is a method for selecting two arbitrary reference pictures from other pictures preceding or succeeding a current picture in a display order, and performing the motion-compensated interframe prediction using the two reference pictures. Note that a picture, on which the bidirectional motion-compensated interframe prediction is to be performed, is called a “Bi-predictive picture”, or a “B picture” for short.
When a B picture is encoded, an encoding mode called a “direct mode” may be used. The direct mode calculates a motion vector of a current macroblock using a motion vector of a reference macroblock that has already been decoded, without encoding the motion vector of the current macroblock. Specifically, if the current macroblock is encoded by the direct mode, the motion vector of the current macroblock is calculated using the motion vector of the reference macroblock on same orthogonal coordinates as the current macroblock in a preceding picture. A conventional process of decoding a macroblock encoded by the direct mode will be briefly described with reference to FIG. 7.
In MPEG, for later decoding of macroblocks encoded by the direct mode, when sequentially decoding macroblocks in a picture, a predetermined amount of motion vectors of decoded macroblocks are stored. For example, according to one specification of MPEG4-AVC, motion vectors of four pictures are stored. In this case, if one picture is composed of 8,160 macroblocks, motion vectors of 32,640 macroblocks in total are required to be stored. A normal buffer is neither sufficient nor practical for storing so many motion vectors in a decoding circuit. Therefore, motion vectors of decoded macroblocks are stored in a memory located outside of the decoding circuit, such as a DRAM (Dynamic Random Access Memory).
As shown in FIG. 7, when a macroblock of a B picture is decoded, firstly, macroblock type information included in the head of the macroblock is referenced to judge whether the macroblock is encoded by the direct mode (step S200).
If the macroblock is encoded by the direct mode, a DMA (Direct Memory Access) transfer instruction is performed to obtain a motion vector of a reference macroblock from an external memory (step S201). A motion vector of the macroblock is specified based on the motion vector of the reference macroblock transferred from the external memory as a result of the DMA transfer instruction (step S202).
  • Nonpatent Document 1: ITU-T Recommendation H.264 “Advanced Video Coding for Generic Audiovisual Services”
DISCLOSURE OF THE INVENTION Problems the Invention is Going to Solve
However, in the conventional method shown in FIG. 7, after the macroblock is judged as being encoded by the direct mode (step S200), the necessary motion vector of the reference macroblock is obtained by accessing the external memory (step S201). Because it takes time to transfer the motion vector of the reference macroblock from the external memory to the decoding circuit, a waiting time is required as shown by an arrow in FIG. 7. As a result, a total time T for decoding the macroblock of the B picture becomes longer.
A longer total time T for decoding the macroblock of the B picture causes a delay in the decoding of the B picture. This can adversely affect a speed for decoding a whole moving image.
In view of this, a main object of the present invention is to provide a decoding circuit, a decoding device, and a decoding system for decoding a B picture encoded by the direct mode at a high speed.
Means of Solving the Problems
The above-mentioned object can be achieved by a decoding circuit for sequentially decoding a plurality of macroblocks in a predetermined order, the plurality of macroblocks composing a picture that is encoded according to MPEG, the decoding circuit comprising: a transferring unit operable to execute a data transfer with an external memory located outside of the decoding circuit; a buffer operable to hold a motion vector of a reference macroblock, the motion vector of the reference macroblock being to be referenced if a current macroblock has been encoded by a direct mode; a buffer transfer instructing unit operable to instruct the transferring unit to transfer, before decoding of a macroblock preceding the current macroblock ends, the motion vector of the reference macroblock from the external memory to the buffer; a decoding unit operable to, if the current macroblock has been encoded by the direct mode, specify a motion vector of the current macroblock based on the motion vector held in the buffer; and an external memory transfer instructing unit operable to instruct the transferring unit to transfer the specified motion vector to the external memory. Here, the decoding circuit is realized by an integrated circuit, and a buffer capacity of the decoding circuit is limited. Also, the transferring unit is realized by a DMA controller.
Effects of the Invention
With the above-stated construction, even a decoding circuit, which is required to temporarily store a decoded motion vector in an external memory because of a limit of a buffer capacity of the decoding circuit, transfers a motion vector as follows. The decoding circuit transfers a motion vector that will be needed for a macroblock to be decoded, from the external memory to the buffer in the decoding circuit, before decoding of the macroblock is started. This construction is not necessary unless a macroblock is encoded by the direct mode. However, if the macroblock is encoded by the direct mode, a motion vector of the macroblock can be immediately specified when the macroblock starts to be decoded. As a result, if the macroblock is encoded by the direct mode, a time required for decoding the macroblock can be shortened.
Also, the buffer transfer instructing unit instructs the transferring unit to transfer the motion vector of the reference macroblock from the external memory to the buffer, during a period from when decoding of a macroblock immediately preceding the current macroblock begins to when the decoding ends.
With the above-stated construction, while an n-th macroblock is being decoded, a motion vector, to which is referenced when an (n+1)-th macroblock is encoded by the direct mode, is transferred to the buffer in the decoding circuit. Therefore, even if the (n+1)-th macroblock is encoded by the direct mode, a motion vector of the (n+1)-th macroblock can be immediately specified when the (n+1)-th macroblock starts to be decoded. Also, a buffer size in the decoding circuit can be minimized for retaining a motion vector to which is referenced by a succeeding macroblock.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram showing a construction of a decoding system 10 of the present invention.
FIG. 2 is a schematic diagram showing a structure of data encoded according to MPEG.
FIG. 3 is a schematic diagram showing a method of calculating a motion vector in a temporal direct mode.
FIG. 4 is a flowchart showing a decoding process operation of the decoding system 10.
FIG. 5 is a timing chart showing the decoding process operation of the decoding system 10.
FIG. 6 is a schematic diagram showing a method of calculating a motion vector in a spatial direct mode.
FIG. 7 is a timing chart showing a conventional decoding process.
DESCRIPTION OF REFERENCE NUMERALS
    • 10: decoding system
    • 100: decoding circuit
    • 101: stream transfer instructing unit
    • 102: decoding unit
    • 103: DMA controller
    • 104: reference image transfer instructing unit
    • 105: buffer transfer instructing unit
    • 106: buffer
    • 107: external memory transfer instructing unit
    • 108: inverse frequency transformation processing unit
    • 109: motion compensation processing unit
    • 110: intra macroblock processing unit
    • 111: deblock filter processing unit
    • 112: decoded image transfer instructing unit
    • 200: external memory
    • 300: storage medium
BEST MODE FOR CARRYING OUT THE INVENTION
The following describes an embodiment of the present invention, with reference to the attached drawings.
<1. Construction>
<1-1. Construction of a Decoding System 10>
As shown in FIG. 1, a decoding system 10 includes a decoding circuit 100, an external memory 200 connected to the decoding circuit 100, and a storage medium 300.
The external memory 200 is a writable memory used as a working area such as a DRAM and the like, and temporarily stores data that is necessary for the decoding circuit 100 to perform a decoding process. The decoding circuit 100 will be described later.
The storage medium 300 is a mass storage medium such as a HDD (Hard Disk Drive) and the like, and stores moving image data (hereinafter, referred also to as a “stream”) that is encoded according to MPEG. For example, the stream is a TV program recorded by a user.
The decoding circuit 100 is an integrated circuit for decoding a stream that is encoded according to MPEG. The decoding circuit 100 receives a stream sequentially loaded from the storage medium 300 to a working area of the external memory 200, and decodes the stream.
<1-2. Construction of the Decoding Circuit 100>
The decoding circuit 100 includes a stream transfer instructing unit 101, a decoding unit 102, a DMA controller 103, a reference image transfer instructing unit 104, a buffer transfer instructing unit 105, a buffer 106, an external memory transfer instructing unit 107, an inverse frequency transformation processing unit 108, a motion compensation processing unit 109, an intra macroblock processing unit 110, a deblock filter processing unit 111; and a decoded image transfer instructing unit 112.
The stream transfer instructing unit 101 instructs the DMA controller 103 to transfer the stream from the external memory 200 to the buffer 106 described later.
The decoding unit 102 variable-length-decodes the stream that has been variable-length-encoded according to MPEG per macroblock, and outputs a macroblock type, a motion vector, and a pixel residual value of the macroblock. If the macroblock is encoded by a mode other than the direct mode, the motion vector is specified by decoding the macroblock. On the other hand, if the macroblock is encoded by the direct mode, the motion vector is calculated using a motion vector retained in the buffer 106.
The DMA controller 103 transfers data between the external memory 200 and each buffer included in the decoding circuit 100 such-as the buffer 106, using a DMA method.
The reference image transfer instructing unit 104 instructs the DMA controller 103 to transfer a reference image indicated by the motion vector outputted from the decoding unit 102, from the external memory 200 to the buffer 106.
The buffer transfer instructing unit 105 instructs the DMA controller 103 to transfer the motion vector of an already decoded macroblock, to which is referenced when the macroblock is encoded by the direct mode, to the buffer 106.
The buffer 106 is a storage area for temporarily storing data in the decoding circuit 100, and has a capacity of storing at least one motion vector of a macroblock. Specifically, the buffer 106 temporarily stores the motion vector outputted from the DMA controller 103 according to the instruction from the buffer transfer instructing unit 105.
The external memory transfer instructing unit 107 instructs the DMA controller 103 to transfer a motion vector specified each time the decoding unit 102 decodes a macroblock, to the external memory 200.
The inverse frequency transformation processing unit 108 inverse-frequency-transforms the pixel residual value outputted from the decoding unit 102 and outputs it.
The motion compensation processing unit 109 combines the pixel residual value outputted from the inverse frequency transformation processing unit 108 with the reference image transferred according to the instruction from the reference image transfer instructing unit 104, and outputs the combined image as a decoded image.
The intra macroblock processing unit 110, if the macroblock is encoded by a mode that does not require an interframe prediction (hereinafter, referred to as an “intra macroblock”), decodes the macroblock using the pixel residual value of the macroblock outputted from the inverse frequency transformation processing unit 108, and outputs the decoded image.
The deblock filter processing unit 111 performs a deblock filter process on the decoded image outputted from any of the motion compensation processing unit 109 and the intra macroblock processing unit 110, in order to reduce block noise.
The decoded image transfer instructing unit 112 instructs the DMA controller 103 to transfer the decoded image on which the deblock filter process has been performed by the deblock filter processing unit 111, to the external memory 200.
<2. Data Structure>
Here, data decoded by the decoding system 10 will be described.
As shown in FIG. 2, a stream encoded according to MPEG is composed of a plurality of pictures (P1, P2, P3, . . . Pn). Each of the plurality of pictures is a still image composing the stream which is a moving image, and corresponds to one screen.
Also, each of the plurality of pictures is divided into slices each having a width of 16 lines in a horizontal direction (slice #1, slice # 2, . . . slice #n). A slice is a basic unit for encoding a picture.
Each slice is further divided into macroblocks (hereinafter, referred also to as a “MB” for short). A macroblock is a basic unit for decoding including the motion-compensated interframe prediction. For example, in a case of a HDTV (High Definition Television) quality of MPEG4-AVC (Advanced Video Coding), one picture is divided into 8,160 macroblocks.
Here, a motion vector of a macroblock of a B picture will be described.
The motion vector is information showing to which direction a current picture moves and an amount of the movement of the current picture compared to a macroblock in another picture preceding or succeeding the current picture in a display order. If the macroblock is encoded by a mode other than the direct mode, the motion vector is specified when the macroblock is variable-length-decoded.
On the other hand, if the macroblock is encoded by the direct mode, the motion vector of the macroblock is calculated using a motion vector of another macroblock. In the embodiment, a method of calculating a motion vector in a “temporal direct mode” will be described.
As shown in FIG. 3, in order to calculate a motion vector of a macroblock (MB01) to be decoded, one of two reference pictures (hereinafter, referred to as an “anchor picture”) (AP01) for the macroblock to be decoded is referenced. The motion vector of the MB01 is calculated using a motion vector of a macroblock (hereinafter, referred to as an “anchor block”) (AB01) on same orthogonal coordinates as the MB01 in the AP01, according to the following formula.
mvL0=mvCol*tb/td  [Formula 1]
mvL1=mvL0−mvCol  [Formula 2]
Here, mvCol is a value of the motion vector of the AB01, and indicates to which macroblock in the reference picture the AB01 corresponds. tb is a time interval between the other reference picture and the picture of the MB01. td is a time interval between the other reference picture and the AP01. Values of tb and td are informed from the decoding unit 102. From the formulas 1 and 2, mvL0 and mvL1 as the motion vector of the MB01 are calculated. By mvL0 and mvL1, a macroblock MB00 on the AP01 and a macroblock MB02 on the other reference picture are determined as reference images.
<3. Operation>
Next, an operation of a decoding process of the decoding system 10 will be described.
As shown in FIG. 4, in the decoding circuit 100, the stream transfer instructing unit 101 instructs the DMA controller 103 to transfer the stream from the external memory 200 to the decoding unit 102. On receiving the instruction, the DMA controller 103 transfers the stream from the external memory 200 to the decoding unit 102 (step S100).
The decoding unit 102 receiving the stream starts a decoding process of a picture composing the stream per macroblock (step S101). Here, a decoding process of an n-th macroblock is started.
In parallel with the decoding process of the n-th macroblock in step S101, the buffer transfer instructing unit 105 instructs the DMA controller 103 to transfer a motion vector of an anchor block to be referenced if an (n+1)-th macroblock succeeding the n-th macroblock is encoded by the direct mode (hereinafter, referred to as an “anchor block for the (n+1)-th macroblock”), from the external memory 200 to the buffer 106 (step S102).
In the decoding process of the n-th macroblock started in step S101, firstly, the decoding unit 102 judges whether the macroblock is a macroblock requiring the interframe prediction (hereinafter, referred to as an “inter macroblock”) or a macroblock not requiring the interframe prediction (hereinafter, referred to as an “intra macroblock) by referring to a macroblock header (step S103).
As a result of the judgment in step S103, if the macroblock is the inter macroblock (“YES” in step S103), the decoding unit 102 further judges whether an encoding mode of the n-th macroblock is the direct mode (step S104).
As a result of the judgment in step S104, if the encoding mode of the n-th macroblock is the direct mode (“YES” in step S104), the decoding unit 102 specifies a motion vector of the n-th macroblock using a motion vector stored in the buffer 106 (step S105). The motion vector stored in the buffer 106 here is a motion vector of an anchor block that was transferred in parallel with a decoding process of an (n−1)-th macroblock and is to be referenced if the n-th macroblock is encoded by the direct mode (hereinafter, referred to as an “anchor block for the n-th macroblock”).
On the other hand, as a result of the judgment in step S104, if the encoding mode of the n-th macroblock is not the direct mode, the decoding unit 102 specifies the motion vector when variable-length-decoding the n-th macroblock (step S106).
The decoding unit 102 outputs the specified motion vector to a buffer in the external memory transfer instructing unit 107. Then, the external memory transfer instructing unit 107 instructs the DMA controller 103 to transfer the motion vector to the external memory 200 (step S107). Here, the motion vector is transferred so that an address in the external memory 200 to which the motion vector is transferred corresponds to the n-th macroblock.
Then, the reference image transfer instructing unit 104 instructs the DMA controller 103 to transfer a reference image based on the motion vector outputted from the decoding unit 102, from the external memory 200 to a buffer in the motion compensation processing unit 109 (step S108).
During this time, the inverse frequency transformation processing unit 108 inverse-frequency-transforms the pixel residual value outputted from the decoding unit 102 and outputs it (step S109).
The motion compensation processing unit 109 combines the pixel residual value outputted from the inverse frequency transformation processing unit 108 with the reference image transferred via the DMA controller 103 according to the instruction from the reference image transfer instructing unit 104, and outputs the combined image as a decoded image (step S110).
On the other hand, as a result of the judgment in step S103, if the macroblock is the intra macroblock, the decoding unit 102 instructs the DMA controller 103 to transfer information that the macroblock is the intra macroblock, to the external memory 200 (step S111).
The inverse frequency transformation processing unit 108 inverse-frequency-transforms the pixel residual value outputted from the decoding unit 102 and outputs it (step S112).
The intra macroblock processing unit 110 generates a reference image based on an image around the n-th macroblock, adds the reference image to the pixel residual value outputted from the inverse frequency transformation processing unit 108, and outputs the image as a decoded image (step S113).
Then, the deblock filter processing unit 111 performs a deblock filter process on the decoded image outputted in step S110 or step S113 to remove block noise, and outputs the decoded image to a buffer in the decoded image transfer instructing unit 112 (step S114).
The decoded image transfer instructing unit 112 instructs the DMA controller 103 to transfer the decoded image on which the deblock filter process has been performed, to the external memory 2 b 0 (step S115).
In parallel with the above-mentioned steps S103 to S115, the motion vector of the anchor block for the (n+1)-th macroblock is transferred to the buffer 106 via the DMA controller 103, according to the instruction of transferring the motion vector in step S102 (step S116).
When the decoding process of the n-th macroblock in steps S101 to S116, and the transfer of the motion vector of the anchor block for the (n+1)-th macroblock in steps S102 and S116, which is performed in parallel with the decoding process, are completed, a variable “n” is incremented. Then, a decoding process of the (n+1)-th macroblock and transfer of a motion vector of an anchor block for an (n+2)-th macroblock are started (steps S101 and S102).
According to the above-mentioned embodiment, by using the DMA transfer, the decoding process of the n-th macroblock (steps S103 to S115) is performed in parallel with the transfer of the motion vector of the anchor block for the (n+1)-th macroblock to the buffer 106 (steps S102 and S116). With this construction, even if the (n+1)-th macroblock is encoded by the direct mode, when the (n+1)-th macroblock is decoded, the motion vector can be immediately calculated using the motion vector of the anchor block for the (n+1)-th macroblock in the buffer 106.
Also, an effect of the process of the above-mentioned embodiment will be described by comparing to a conventional process. As shown in FIG. 7, in the conventional process, the macroblock type is judged once (step S200), after the macroblock is judged to be encoded by the direct mode, the DMA controller 103 is instructed to transfer the motion vector (step S201). Therefore, even if the decoding process of the macroblock is completed, it is necessary to wait until the transfer of the macroblock from the external memory 200 is completed. As a result, the total time T required for decoding the macroblock becomes longer.
On the other hand, as shown in FIG. 5, in the process of the above-mentioned embodiment, the decoding process of the n-th macroblock (steps S103 to S115) is performed in parallel with the transfer of the motion vector of the anchor block for the (n+1)-th macroblock to the buffer 106 (steps S102 and S116). With this construction, even if the (n+1)-th macroblock is encoded by the direct mode, when the (n+1)-th macroblock is decoded during a time T2, the motion vector can be immediately calculated using the motion vector of the anchor block for the (n+1)-th macroblock in the buffer 106. As a result, the time T2 required for decoding the (n+1)-th macroblock can be shortened. This parallel process is repeated by incrementing the variable “n” such as n-th, (n+1)-th, (n+2)-th . . . (n+x)-th in which the stream is ended. Therefore, any macroblock has the same effect.
As described through the embodiment, in the present invention, when each of macroblocks composing a B picture is encoded by the direct mode, each of the macroblocks can be decoded at a high speed. This can speed up decoding of the B picture.
<Modification>
Up to now, the decoding system 10 of the present invention has been described through the embodiment. However, the present invention is not limited to such embodiment.
In the above-mentioned embodiment, in parallel with the decoding process of the current macroblock, the motion vector of the anchor block for the immediately succeeding macroblock is transferred to the buffer 106. However, a plurality of motion vectors of anchor blocks for a plurality of macroblocks succeeding the current macroblock can be collectively transferred, by making a capacity of the buffer 106 larger.
For example, if a memory suitable for transferring continuous data, such as a SDRAM and the like is used as the external memory 200, transfer efficiency may be reduced because a burst length is not reached by transferring the data per one motion vector.
Therefore, if a memory such as the SDRAM and the like is used, in parallel with the decoding process of the n-th macroblock, the motion vector of the anchor block for the (n+1)-th macroblock and the motion vector of the anchor block for the (n+2)-th macroblock can be collectively transferred at the same time.
By increasing a transferred data amount for one DMA transfer, the number of transfer between the external memory 200 and the buffer 106 is reduced. Therefore, transfer efficiency can be improved because a burst length becomes larger.
Note that how many macroblocks succeeding the current macroblock are transferred depends on a size of the buffer 106. In the above-mentioned embodiment, the size of the buffer 106 can be minimum for retaining the motion vector to be referenced by the macroblock immediately succeeding the current macroblock. However, it is not limited to one macroblock as far as the size of the buffer 106 allows.
Also, when the external memory transfer instructing unit 107 instructs to transfer the decoded motion vector to the external memory 200, a plurality of motion vectors of a plurality of macroblocks may be collectively transferred.
<Supplement>
In the above-mentioned embodiment, the “temporal direct mode” is described as the direct mode. However, a “spatial direct mode” may be used.
In other words, if a macroblock is encoded by the spatial direct mode, a motion vector of an anchor block and a motion vector of a macroblock around the macroblock are used for specifying a motion vector of the macroblock.
As shown in FIG. 6, in order to calculate a motion vector of a macroblock (MB01) to be decoded, another macroblock that has already been decoded in a picture of the MB01 is referenced. Specifically, the motion vector of the MB01 is calculated according to the following formula using each of motion vectors of a macroblock (MB(A)) located on a left side of the MB01, a macroblock (MB(B)) located on an upper side of the MB01, and a macroblock (MB(C)) located on an upper right side of the MB01.
mv=median(mvA,mvB,mvC)  [Formula 3]
Here, mvA is a motion vector of the MB (A). mvB is a motion vector of the MB(B). mvC is a motion vector of the MB(C). From the formula 3, mv as the motion vector of the MB01 is calculated.
Note that if the present invention is applied to the spatial direct mode, in step S102 in the flowchart shown in FIG. 4, the DMA controller 103 may be instructed to transfer each of motion vectors (three motion vectors in total) of macroblocks located on a left side, an upper side, and an upper right side in the picture of the (n+1)-th macroblock to the buffer 106. In this case, a size of the buffer 106 may be fitted to a size for storing the three motion vectors.
INDUSTRIAL APPLICABILITY
The decoding circuit, the decoding device, and the decoding system of the present invention can be applied to a reproducing device for decoding an image encoded according to MPEG, and are useful as a technology for realizing high-speed decoding.

Claims (3)

The invention claimed is:
1. A decoding circuit for decoding a current macroblock, the decoding circuit comprising:
a transferring unit executing a data transfer with an external memory located outside of the decoding circuit, wherein the decoding circuit operates in a plurality of modes, including a direct mode in which the current macroblock to be decoded does not have any motion vectors and a motion vector of the current macroblock is specified using a motion vector of another macroblock that has already been decoded;
a buffer holding a motion vector of a macroblock;
a decoding unit judging whether the current macroblock has been encoded by the direct mode and specifying a motion vector of the current macroblock using the motion vector held in the buffer, when the current macroblock has been encoded by the direct mode;
an external memory transfer instructing unit instructing the transferring unit to transfer the motion vector specified by the decoding unit to the external memory; and
a buffer transfer instructing unit instructing the transferring unit to transfer a motion vector of a reference macroblock from the external memory to the buffer, before the decoding unit judges whether the current macroblock has been encoded by the direct mode, the reference macroblock being referenced when the current macroblock has been encoded by the direct mode.
2. A decoding device for decoding a current macroblock, the decoding device comprising:
a transferring unit executing a data transfer with an external memory located outside of the decoding device, wherein the decoding device operates in a plurality of modes, including a direct mode in which the current macroblock to be decoded does not have any motion vectors and a motion vector of the current macroblock is specified using a motion vector of another macroblock that has already been decoded;
a buffer holding a motion vector of a macroblock;
a decoding unit judging whether the current macroblock has been encoded by the direct mode and specifying a motion vector of the current macroblock using the motion vector held in the buffer, when the current macroblock has been encoded by the direct mode;
an external memory transfer instructing unit instructing the transferring unit to transfer the motion vector specified by the decoding unit to the external memory; and
a buffer transfer instructing unit instructing the transferring unit to transfer a motion vector of a reference macroblock from the external memory to the buffer, before the decoding unit judges whether the current macroblock has been encoded by the direct mode, the reference macroblock being referenced when the current macroblock has been encoded by the direct mode.
3. A decoding system comprising:
a decoding circuit for decoding a current macroblock and operating in a plurality of modes, including a direct mode in which a current macroblock to be decoded does not have any motion vectors and a motion vector of the current macroblock is specified using a motion vector of another macroblock that has already been decoded; and
an external memory located outside of the decoding circuit,
wherein the decoding circuit comprises:
a transferring unit executing a data transfer with the external memory;
a buffer holding a motion vector of a macroblock;
a decoding unit judging whether the current macroblock has been encoded by the direct mode and specifying a motion vector of the current macroblock using the motion vector held in the buffer, when the current macroblock has been encoded by the direct mode;
an external memory transfer instructing unit instructing the transferring unit to transfer the motion vector specified by the decoding unit to the external memory; and
a buffer transfer instructing unit instructing the transferring unit to transfer a motion vector of a reference macroblock from the external memory to the buffer, before the decoding unit judges whether the current macroblock has been encoded by the direct mode, the reference macroblock being referenced when the current macroblock has been encoded by the direct mode.
US11/791,220 2004-11-26 2005-11-15 Decoding circuit, decoding device, and decoding system Active 2030-09-29 US8649439B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004342198 2004-11-26
JP2004-342198 2004-11-26
PCT/JP2005/020952 WO2006057182A1 (en) 2004-11-26 2005-11-15 Decoding circuit, decoding device, and decoding system

Publications (2)

Publication Number Publication Date
US20080008244A1 US20080008244A1 (en) 2008-01-10
US8649439B2 true US8649439B2 (en) 2014-02-11

Family

ID=36497920

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/791,220 Active 2030-09-29 US8649439B2 (en) 2004-11-26 2005-11-15 Decoding circuit, decoding device, and decoding system

Country Status (4)

Country Link
US (1) US8649439B2 (en)
JP (2) JP4106070B2 (en)
CN (2) CN101980540B (en)
WO (1) WO2006057182A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9001893B2 (en) 2009-05-13 2015-04-07 Panasonic Intellectual Property Management Co., Ltd. Image decoding apparatus, integrated circuit, image decoding method, and image decoding system
JP5387520B2 (en) * 2010-06-25 2014-01-15 ソニー株式会社 Information processing apparatus and information processing method
KR20220070072A (en) * 2011-02-09 2022-05-27 엘지전자 주식회사 Method for storing motion information and method for inducing temporal motion vector predictor using same
JP5768510B2 (en) * 2011-06-06 2015-08-26 富士通株式会社 Moving picture coding method and moving picture coding apparatus
JP6094760B2 (en) * 2012-02-07 2017-03-15 パナソニックIpマネジメント株式会社 Image processing apparatus and image processing method

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5631713A (en) * 1994-02-24 1997-05-20 Nec Corporation Video processor with field memory for exclusively storing picture information
WO2000036841A1 (en) 1998-12-15 2000-06-22 Matsushita Electric Industrial Co., Ltd. Method and apparatus for image processing
WO2000043868A1 (en) 1999-01-20 2000-07-27 Hitachi, Ltd. Data processor and device for arithmetic operation
WO2003075580A1 (en) 2002-03-04 2003-09-12 Matsushita Electric Industrial Co., Ltd. Moving picture coding method and moving picture decoding method
JP2003259377A (en) 2002-03-06 2003-09-12 Matsushita Electric Ind Co Ltd Moving picture encoding method, moving picture decoding method, and code string format
JP2004040512A (en) 2002-07-03 2004-02-05 Matsushita Electric Ind Co Ltd Image encoding method and image decoding method
US6850568B1 (en) * 2000-01-12 2005-02-01 Sony Corporation Method and apparatus for decoding mpeg video signals
US20050281334A1 (en) * 2004-05-04 2005-12-22 Qualcomm Incorporated Method and apparatus for weighted prediction in predictive frames
US7756204B2 (en) * 2001-11-06 2010-07-13 Panasonic Corporation Moving picture coding method, and moving picture decoding method
US7839935B2 (en) * 2003-03-03 2010-11-23 Lg Electronics Inc. Method of selecting a reference picture

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
JP2004007563A (en) * 2002-04-19 2004-01-08 Matsushita Electric Ind Co Ltd Method for encoding moving image and method for decoding moving image
KR100491530B1 (en) * 2002-05-03 2005-05-27 엘지전자 주식회사 Method of determining motion vector
CN1194544C (en) * 2003-04-25 2005-03-23 北京工业大学 Video encoding method based on prediction time and space domain conerent movement vectors

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5631713A (en) * 1994-02-24 1997-05-20 Nec Corporation Video processor with field memory for exclusively storing picture information
WO2000036841A1 (en) 1998-12-15 2000-06-22 Matsushita Electric Industrial Co., Ltd. Method and apparatus for image processing
US6791625B1 (en) 1998-12-15 2004-09-14 Matsushita Electric Industrial Co., Ltd. Video processing apparatus for performing address generation and control, and method therefor
WO2000043868A1 (en) 1999-01-20 2000-07-27 Hitachi, Ltd. Data processor and device for arithmetic operation
US6850568B1 (en) * 2000-01-12 2005-02-01 Sony Corporation Method and apparatus for decoding mpeg video signals
US7756204B2 (en) * 2001-11-06 2010-07-13 Panasonic Corporation Moving picture coding method, and moving picture decoding method
US20040086044A1 (en) * 2002-03-04 2004-05-06 Satoshi Kondo Moving picture coding method and moving picture decoding method
WO2003075580A1 (en) 2002-03-04 2003-09-12 Matsushita Electric Industrial Co., Ltd. Moving picture coding method and moving picture decoding method
JP2003259377A (en) 2002-03-06 2003-09-12 Matsushita Electric Ind Co Ltd Moving picture encoding method, moving picture decoding method, and code string format
JP2004040512A (en) 2002-07-03 2004-02-05 Matsushita Electric Ind Co Ltd Image encoding method and image decoding method
US7839935B2 (en) * 2003-03-03 2010-11-23 Lg Electronics Inc. Method of selecting a reference picture
US7916786B2 (en) * 2003-03-03 2011-03-29 Lg Electronics Inc. Method of processing a current field macroblock
US20050281334A1 (en) * 2004-05-04 2005-12-22 Qualcomm Incorporated Method and apparatus for weighted prediction in predictive frames

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"H.264 AVC Textbook", p. 124 and its Partial English Translation.
ITU-T Recommendation H.264, "Advanced video coding for generic audiovisual services", Mar. 2005.

Also Published As

Publication number Publication date
WO2006057182A1 (en) 2006-06-01
JP4625096B2 (en) 2011-02-02
CN101065973B (en) 2011-01-12
US20080008244A1 (en) 2008-01-10
CN101980540A (en) 2011-02-23
CN101065973A (en) 2007-10-31
CN101980540B (en) 2012-04-25
JP4106070B2 (en) 2008-06-25
JP2008141782A (en) 2008-06-19
JPWO2006057182A1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
US9712842B2 (en) Video encoder and operation method thereof
US8428126B2 (en) Image decoding device with parallel processors
US7738564B2 (en) Filter for eliminating discontinuity of block-based encoded image, and method thereof
US9699451B2 (en) Motion estimation compatible with multiple standards
JP5155159B2 (en) Video decoding device
JP4774315B2 (en) Image decoding apparatus and image decoding method
US8649439B2 (en) Decoding circuit, decoding device, and decoding system
US8565315B2 (en) Image decoding device and image decoding method
US8442119B2 (en) Moving image decoding apparatus and processing method thereof
US9386310B2 (en) Image reproducing method, image reproducing device, image reproducing program, imaging system, and reproducing system
JP2012085001A5 (en)
JPH11298903A (en) Digital image decoding device/method and supply medium thereof
US20140105306A1 (en) Image processing apparatus and image processing method
JP5694674B2 (en) Image coding apparatus, image coding / decoding system, image coding method, and image display method
US20120201520A1 (en) Video reproducing apparatus, video reproducing method, and program
JP2005124091A (en) Decoding apparatus and decoding method
US20110051815A1 (en) Method and apparatus for encoding data and method and apparatus for decoding data
JP2823809B2 (en) Image decoding method and image decoding device
US20150010061A1 (en) Video encoding method, device and program
US20070071098A1 (en) Image storage device for motion estimation and method of storing image data
TW201429259A (en) Video data process method and video process apparatus
JP2000134581A (en) Device and method for reproducing moving picture
JP5867050B2 (en) Image processing device
JPH11177992A (en) Image decoding device
WO2013073422A1 (en) Video encoding device

Legal Events

Date Code Title Description
AS Assignment

Owner name: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHIKAMURA, KEISHI;TANAKA, TAKESHI;REEL/FRAME:020424/0600

Effective date: 20070410

AS Assignment

Owner name: PANASONIC CORPORATION, JAPAN

Free format text: CHANGE OF NAME;ASSIGNOR:MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.;REEL/FRAME:021835/0446

Effective date: 20081001

Owner name: PANASONIC CORPORATION,JAPAN

Free format text: CHANGE OF NAME;ASSIGNOR:MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.;REEL/FRAME:021835/0446

Effective date: 20081001

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8