WO2009133671A1 - ビデオ符号化・復号化装置 - Google Patents

ビデオ符号化・復号化装置 Download PDF

Info

Publication number
WO2009133671A1
WO2009133671A1 PCT/JP2009/001850 JP2009001850W WO2009133671A1 WO 2009133671 A1 WO2009133671 A1 WO 2009133671A1 JP 2009001850 W JP2009001850 W JP 2009001850W WO 2009133671 A1 WO2009133671 A1 WO 2009133671A1
Authority
WO
WIPO (PCT)
Prior art keywords
dma
data
pixel data
decoding
interpolation
Prior art date
Application number
PCT/JP2009/001850
Other languages
English (en)
French (fr)
Inventor
ミ マイケル ビ
ティエン ピン チュア
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to CN2009801148713A priority Critical patent/CN102017638A/zh
Priority to US12/937,159 priority patent/US20110032995A1/en
Publication of WO2009133671A1 publication Critical patent/WO2009133671A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to a video encoding / decoding device including a motion compensation device that uses motion compensation in a video decoder.
  • the use of motion compensation in video coders has a number of significant advantages.
  • the television signal must be scanned at a specific speed (eg, 30 or 60 frames / second) based on the afterimage.
  • a specific speed eg, 30 or 60 frames / second
  • this redundancy is reduced and the compression rate of the video signal can be increased.
  • Non-Patent Documents 1 and 2 disclose pixel recursive algorithms.
  • Non-Patent Document 3 describes a block matching algorithm.
  • Patent Document 1 discloses an effective motion compensation method “Efficient methods” of “performing” motion “compensation” based “decoding” and “recording” of “compressed” video “bitstreams”.
  • the invention described in Patent Document 1 increases the efficiency of motion compensation by increasing the use of on-chip memory.
  • the reference window is created so that the part of the reference frame necessary for motion compensation is included in the on-chip memory.
  • the video encoding / decoding device provided with such a conventional motion compensation method has the following problems.
  • An object of the present invention is to provide a video encoding / decoding device capable of maximizing system performance using limited memory resources.
  • a video encoding / decoding device is a video encoding / decoding device including a motion compensation device that uses motion compensation in a video decoder, and is connected to a plurality of video decoder engines and the plurality of video decoder engines.
  • After receiving the DMA ACK it receives a plurality of DMA input data, issues a DMA completion, calculates the interpolated data according to the decoding mode specified by the decoding parameter, and calculates the interpolated data.
  • Output to one of the video decoder engines A motion compensation device, a DMA request from the motion compensation device and a DMA request from the plurality of video decoder engines via the engine DMA bus, prioritizing the DMA request, and a DMA ACK with a predetermined DMA priority.
  • And memory access arbitration means for writing data into the frame buffer Send to the motion compensator and the plurality of video decoder engines according to a list, stream DMA input data and DMA output data, provide DMA input data to the motion compensator, and send data from the frame buffer through the main DMA bus
  • memory access arbitration means for writing data into the frame buffer.
  • the system performance is pre-defined, or the processing throughput of the entire system is optimized in real time, so that the motion compensation device and others System performance can be set automatically to balance performance with other video decoder engines.
  • the size of the on-chip memory for storing the reference pixel data can be set according to the system cost constraint applied to the motion compensation device.
  • the system complexity can be traded off between the DMA controller and the processing logic, System performance can be balanced between the controller and processing logic.
  • FIG. 1 is a block diagram showing a configuration of a video encoding / decoding apparatus according to Embodiment 1 of the present invention.
  • FIG. 1 is a diagram showing a configuration of a video encoding / decoding apparatus according to Embodiment 1 of the present invention.
  • the present embodiment is a video encoding / decoding comprising a frame buffer, a plurality of video decoder engines, a plurality of engine DMA buses connected to the plurality of video decoder engines, and a motion compensation apparatus using motion compensation. This is an example applied to a computer.
  • a video encoding / decoding device 100 includes a motion compensation device 101, a memory access arbitration unit 110, and a plurality (N) of video decoder engines 120-1, 120-2,..., 120-N. And a frame buffer 150.
  • the motion compensation apparatus 101 has input terminals for receiving a decoding parameter 161, an operation processing level Lc (computation level) 162, a maximum DMA burst constraint 163, a block buffer size constraint 164, a DMA ACK 112, a DMA input data 114, and an interpolation completion 181.
  • a DMA completion 115 is issued, the interpolated data is calculated according to the decoding mode specified by the decoding parameter 161, and the interpolated data is converted into a plurality of video decoder engines 120-1, 120-2,. , 120-N.
  • the memory access arbitration means 110 receives the DMA request 111 from the motion compensation device 101 and receives DMA requests from the plurality of video decoder engines 120-1, 120-2,..., 120-N through the engine DMA buses 116-118. , Prioritizes DMA requests and sends a DMA ACK 112 to the motion compensator 101 and the plurality of video decoder engines 120-1, 120-2,..., 120-N according to a predetermined DMA priority list, The DMA output data is streamed, the DMA input data 114 is provided to the motion compensation device 101, the data is read from the frame buffer 150 through the main DMA bus 151, and the data is written to the frame buffer 150.
  • the plurality of video decoder engines 120-1, 120-2,..., 120-N are connected to the memory access arbitration means 110 through engine DMA buses 116-118.
  • the frame buffer 150 is an external system memory shared by a plurality of video decoder engines 120-1, 120-2,..., 120-N, and is connected to the memory access arbitration means 110 through the main DMA bus 151. .
  • the motion compensation apparatus 101 includes a direct memory access unit 160, a variable size block buffer 170, and an interpolation unit 180, and is designed so that performance and memory size can be set flexibly.
  • the direct memory access unit 160 generates a DMA request after receiving the interpolation completion 181 from the interpolation unit 180, receives a DMA ACK 112 from the memory access arbitration unit 110, and then receives a plurality of DMAs according to the maximum DMA burst constraint and the block buffer size constraint.
  • Receiving DMA input data generating block memory addresses for storing the reference pixel data 171 in the variable size block buffer 170 according to the decoding parameter, the processing level Lc, the maximum DMA burst constraint, and the block buffer size constraint;
  • the reference pixel data 171 is output to the variable size block buffer 170, and after receiving a plurality of DMA input data from the memory access arbitration means 110, a DMA completion 115 is generated, and then interpolation is performed. To generate a start 182.
  • variable size block buffer 170 stores reference pixel data 171 acquired from the frame buffer 150 through direct memory access, and provides the buffered pixel data to the interpolation unit 180.
  • the variable size block buffer 170 can be set to various predetermined memory sizes according to system cost and system performance requirements.
  • the interpolation unit 180 calculates the interpolated data according to the decoding mode specified by the decoding parameter, and the interpolated data is converted into one of the plurality of video decoder engines 120-1, 120-2,. Output to one.
  • the interpolation unit 180 has an input terminal for receiving a decoding parameter, interpolation start, and a plurality of buffered pixel data 172, and applies a predetermined interpolation filter to the plurality of buffered pixel data. As a result, a plurality of interpolated data 173 is calculated, and after all the interpolated data 173 are calculated, an interpolation completion 181 is generated.
  • the motion compensation apparatus 101 receives a plurality of DMA input data 114 after receiving the DMA ACK 112, and then issues a DMA completion 115.
  • the motion compensation apparatus 101 calculates the interpolated data 173 according to the decoding mode specified by the decoding parameter 161.
  • the motion compensator 101 outputs the interpolated data 173 to one of the video decoder engines through one of its output terminals.
  • the memory access arbitration unit 110 receives the DMA request 111 from the motion compensation device 101.
  • the memory access arbitration means 110 also receives DMA requests from the plurality of video decoder engines 120-1, 120-2,..., 120-N through the engine DMA buses 116, 117, 118, respectively, and prioritizes the DMA requests.
  • DMA ACK 112 is sent to the motion compensation device 101 and the plurality of video decoder engines 120-1, 120-2,..., 120-N according to a predetermined DMA priority list. Then, the memory access arbitration unit 110 streams the DMA input data and the DMA output data, provides the DMA input data 114 to the motion compensation device 100, reads the data from the frame buffer 150 through the main DMA bus 151, and the frame buffer. Write data to 150.
  • the plurality of video decoder engines 120-1, 120-2,..., 120-N are connected to the memory access arbitration means 110 through engine DMA buses 116, 117, and 118, respectively.
  • the frame buffer 150 is connected to the memory access arbitration unit 110 through the main DMA bus 151.
  • the direct memory access unit 160 generates a DMA request according to the maximum DMA burst constraint 163 and the block buffer size constraint 164, receives a plurality of DMA input data, adjusts the DMA access and interpolation unit 180, and performs a frame buffer 150 through the DMA.
  • An address for storing the reference pixel data 171 obtained from the above in the variable size block buffer 170 is generated.
  • the direct memory access unit 160 generates the DMA request 111 after receiving the interpolation completion 181 from the interpolation unit 180, and issues the generated DMA request 111 to the memory access arbitration unit 110.
  • the direct memory access unit 160 receives the DMA ACK 112 from the memory access arbitration unit 110 and then receives a plurality of DMA input data 114 from the memory access arbitration unit 110 according to the maximum DMA burst constraint 163 and the block buffer size constraint 164.
  • the direct memory access means 160 is a block for storing the reference pixel data 171 in the variable size block buffer 170 in accordance with the decoding parameter 161, the processing level Lc 162, the maximum DMA burst constraint 163, and the block buffer size constraint 164. Generate a memory address.
  • the direct memory access unit 160 outputs the reference pixel data 171 to the variable size block buffer 170.
  • the direct memory access means 160 generates a DMA completion 115 after receiving a plurality of DMA input data 114, and then generates an interpolation start 182.
  • the variable-size block buffer 170 is an on-chip memory for storing reference pixel data, stores reference pixels acquired from the external frame buffer 150 by direct memory access, and interpolates buffered pixel data 172. To provide.
  • the variable size block buffer 170 can be set to various predetermined memory sizes according to system cost and system performance requirements.
  • the interpolation unit 180 calculates a plurality of interpolated data 173 by applying a predetermined interpolation filter to the buffered pixel data 172, calculates all the interpolated data 173, and then performs interpolation completion 181. Generate.
  • the video encoding / decoding device 100 performs DMA after the direct memory access unit 160 of the motion compensation device 101 receives the interpolation completion 181 from the interpolation unit 180.
  • a plurality of DMA input data is received in accordance with the maximum DMA burst constraint and the block buffer size constraint, and the decoding parameter, operation processing level Lc, and maximum DMA burst are received.
  • a block memory address for storing the reference pixel data in the variable size block buffer 170 is generated according to the constraint and the block buffer size constraint.
  • the direct memory access means 160 automatically combines a plurality of small DMA accesses to form a large burst DMA, or automatically divides the large burst DMA into a plurality of small size DMA accesses. Can do. Further, by predefining system performance or optimizing the processing throughput of the entire system in real time, the motion compensation device 101 and a plurality of other video decoder engines 120-1, 120-2,. With -N, the data bus occupation time and the bus occupation time for accessing the frame buffer 150 can be balanced. As a result, the flexible motion compensation device 101 that maximizes the system performance can be realized using limited memory resources without using a large on-chip data memory operating at a high frequency.
  • the video encoding / decoding apparatus 100 uses the motion compensation apparatus 101 for high-resolution video that requires motion compensation. It becomes possible to operate in real time. Further, as described above, since the motion compensation device 101 can reduce the cost of the system memory necessary for motion compensation, the cost performance of the motion compensation system can be increased.
  • FIG. 2 is a diagram showing a detailed configuration of the motion compensation apparatus of the video encoding / decoding apparatus according to Embodiment 2 of the present invention.
  • the motion compensation apparatus 101A of the present embodiment is applied instead of the motion compensation apparatus 101 of FIG.
  • the motion compensation apparatus 101A includes a DMA command generator 200, a buffer address generation unit 210, a settable sequencer 220, an interpolation unit 230, a variable size block buffer 240, and a data alignment unit 250. Consists of components.
  • the DMA command generator 200 has input terminals for receiving a decoding parameter, a DMA ACK, and a DMA burst cycle, generates a DMA request, receives the DMA ACK, counts the number of DMA requests, and the counter counts the DMA burst cycle.
  • the DMA completion is output after the number is reached.
  • the buffer address generating means 210 has an input terminal for receiving the decoding parameter, the DMA input data, and the DMA burst cycle, derives a block buffer address according to the decoding parameter and the DMA burst cycle, and passes the DMA input data through the reference pixel data terminal. Transfer to memory location in variable size block buffer.
  • the configurable sequencer 220 has input terminals for receiving a decoding parameter, an arithmetic processing level Lc, a maximum DMA burst constraint, a block buffer size constraint, and an interpolation completion, and a bit stream characteristic specified by the decoding parameter and a maximum DMA burst
  • the DMA burst cycle is derived according to the system performance limit specified by the constraint 225 and the system resource limit specified by the block buffer size constraint, and is interpolated at a time set dynamically according to the system performance and resource limit.
  • An interpolation start for starting the operation of the means 230 is generated.
  • the interpolation unit 230 calculates the interpolated data according to the decoding mode specified by the decoding parameter, and the interpolated data is converted into one of the plurality of video decoder engines 120-1, 120-2,. Output to one.
  • the interpolation means 230 has an input terminal for receiving a decoding parameter, interpolation start, and a plurality of rearranged pixel data, and by applying a predetermined interpolation filter to the rearranged pixel data. After calculating a plurality of interpolated data and calculating all the interpolated data, an interpolation completion is generated and the interpolated data is output.
  • the variable size block buffer 240 has a reference pixel data terminal for receiving the channelized DMA input data, stores the channelized DMA input data at a predetermined position according to the block buffer address, and buffers it for motion compensation processing. Output the ringed pixel data.
  • the data alignment means 250 has an input terminal for receiving decoding parameters, chroma interleave flags, buffered pixel data, a position in a video frame indicated by a motion vector as part of the decoding parameters, a frame buffer According to the chroma interleave flag indicating the chrominance data format at 150, the buffered pixel data is rearranged and the frame boundary pixels are padded to provide the rearranged pixel data, which is unnecessary by the word boundary rearrangement. If the data is deleted and the chroma interleave flag is set, the interleaved chrominance component is split and streamed according to the designed chroma pixel data format in the frame buffer
  • the DMA command generator 200 generates a DMA request 202 to the memory access arbitration unit 110 (FIG. 1), receives a DMA ACK 203 from the memory access arbitration unit 110 (FIG. 1), counts the number of DMA requests 202, After the counter reaches the number of DMA burst cycles 221, DMA completion 204 is output to the memory access arbitration means 110 (FIG. 1).
  • the buffer address generation unit 210 derives a block buffer address according to the decoding parameter 201 and the DMA burst cycle 221, and receives the DMA input data 212 from the memory access arbitration unit 110 (FIG. 1) as the reference pixel data 241 through the reference pixel data terminal. To the memory location in the variable size block buffer 240.
  • the configurable sequencer 220 generates an interpolation start 223 for starting the operation of the interpolation means 230 at the time when it is dynamically set according to the system performance and resource limitations.
  • the interpolation unit 230 calculates a plurality of interpolated data 243 by applying a predetermined interpolation filter to the rearranged pixel data 252, calculates all the interpolated data 243, and then completes the interpolation 224. And the interpolated data 243 is output.
  • variable size block buffer 240 receives the channelized DMA input data, stores them in an appropriate position according to the block buffer address, and outputs buffered pixel data 242 for motion compensation processing.
  • the data alignment means 250 is buffered according to the position in the video frame indicated by the motion vector as part of the decoding parameter 201 and the chroma interleave flag 251 indicating the chrominance data format in the frame buffer 150 (FIG. 1).
  • the rearranged pixel data 242 is rearranged.
  • the data alignment unit 250 provides rearranged pixel data 252 by padding frame boundary pixels, and deletes unnecessary data by word boundary rearrangement. Then, when the chroma interleave flag is set, the data alignment unit 250 divides the two interleaved chrominance components and streams them according to the designed chroma pixel data format in the frame buffer 150.
  • the motion compensation device 101A is specified by the bit stream characteristic specified by the decoding parameter, the system performance limit specified by the maximum DMA burst constraint, and the block buffer size constraint.
  • a configurable sequencer 220 is provided that generates an interpolation start that guides the DMA burst cycle in accordance with system resource limits and starts operation of the interpolator 230 when dynamically set according to system performance and resource limits. Therefore, the motion compensator 101A can adaptively assign the number and size of each burst access to the data memory by dynamically monitoring the data bus traffic. Compensator 10 It is possible to achieve an optimized data streaming between the inner and outer of limited memory of A.
  • system performance can be pre-defined based on system performance constraints applied to motion compensation device 101A, and the size of on-chip memory for storing reference pixel data can be applied to motion compensation device. Can be set according to resource constraints.
  • variable compensation block buffer 240 that can be set to various predetermined memory sizes according to system cost and system performance requirements.
  • the buffered pixel data 242 can be subjected to data alignment such as rearrangement of pixel data, deletion of unnecessary data, and streaming according to the chroma pixel data format.
  • FIG. 3 is a diagram showing a detailed configuration of the motion compensation apparatus of the video encoding / decoding apparatus according to Embodiment 3 of the present invention.
  • the motion compensation apparatus 101B of the present embodiment is applied instead of the motion compensation apparatus 101 of FIG.
  • the motion compensation apparatus 101B includes a DMA command generator 300, a buffer address generation unit 310, a configurable sequencer 320, an interpolation unit 330, a variable size block buffer 340, a padding unit 350, and a word alignment ( word-aligning) means 360 and chroma interleaving means 370.
  • the DMA command generator 300 has input terminals for receiving a decoding parameter, a DMA ACK, and a DMA burst cycle, generates a DMA request, receives the DMA ACK, counts the number of DMA requests, and the counter counts the DMA burst cycle. The DMA completion is output after the number is reached.
  • the buffer address generation means 310 has an input terminal for receiving the decoding parameter, the DMA input data, and the DMA burst cycle, derives a block buffer address according to the decoding parameter and the DMA burst cycle, and transfers the DMA input data to the reference pixel data input terminal. To the padding means 350.
  • the configurable sequencer 320 has an input terminal for receiving a decoding parameter, an operation processing level Lc, a maximum bus occupation time, a block buffer size constraint, and interpolation completion, and a bit stream characteristic specified by the decoding parameter and a maximum bus
  • the DMA burst cycle is derived according to the system performance limit specified by the occupancy time and the system resource limit specified by the block buffer size constraint, and is interpolated at the time set dynamically according to the system performance and resource limit An interpolation start for starting the operation of the means 330 is generated.
  • the interpolating unit 330 calculates the interpolated data according to the decoding mode specified by the decoding parameter, and the interpolated data is converted into one of a plurality of video decoder engines 120-1, 120-2,. Output to one.
  • the interpolation means 330 has an input terminal for receiving decoding parameters, interpolation start, and a plurality of rearranged pixel data, and by applying a predetermined interpolation filter to the buffered pixel data. After calculating a plurality of interpolated data and calculating all the interpolated data, an interpolation completion is generated and the interpolated data is output.
  • the variable size block buffer 340 has an input terminal for receiving the reference pixel data and the block buffer address from the buffer address generation unit 310, and the rearranged pixel data is appropriately displayed according to the block buffer address generated by the buffer address generation unit.
  • the buffered pixel data is output to the interpolation means 330 for calculation processing of motion compensation.
  • the padding means 350 has a decoding parameter and an input terminal for receiving the buffered pixel data, replicates the frame boundary pixel value for the reference pixel data located outside the video frame boundary, Generating data, whether the reference pixel data is outside the video frame boundary, the frame height and width parameters specified by the decoding parameters, the motion vector, and the current macroblock and / or block Judge according to the position.
  • the word alignment unit 360 has a decoding parameter and an input terminal for receiving the padded pixel data from the padding unit 350, and deletes unnecessary data when the first valid pixel data is not aligned on a word boundary. Generating aligned pixel data and determining whether the padded pixel data is aligned on a word boundary according to the sub-pixel position indicated by the motion vector in the decoding parameter.
  • the chroma interleaving means 370 has an input terminal for receiving decoding parameters and aligned pixel data from the word alignment means 360, and if the chroma interleaving flag is set, divides the interleaved chrominance component to generate a frame Stream according to the designed chroma pixel data format in the buffer to generate the rearranged pixel data.
  • the DMA command generator 300 generates a DMA request 302 to the memory access arbitration unit 110 (FIG. 1), receives a DMA ACK 303 from the memory access arbitration unit 110 (FIG. 1), counts the number of DMA requests, After the counter reaches the number of DMA burst cycles 321, DMA completion 304 is output to the memory access arbitration means 110 (FIG. 1).
  • the buffer address generation unit 310 derives a block buffer address according to the decoding parameter 301 and the DMA burst cycle 321, and the DMA input data 312 from the memory access arbitration unit 110 (FIG. 1) is changed to a variable size block through its reference pixel data terminal 341. Transfer to memory location in buffer 340.
  • the configurable sequencer 320 follows the bitstream characteristics specified by the decoding parameter 301, the system performance limit specified by the maximum bus occupancy time 325, and the system resource limit specified by the block buffer size constraint 326. A DMA burst cycle 321 is derived. The configurable sequencer 320 generates an interpolation start 323 that starts the operation of the interpolation means 330 when dynamically set according to system performance and resource limitations.
  • the interpolation unit 330 calculates a plurality of interpolated data 343 by applying a predetermined interpolation filter to the rearranged pixel data 352, and generates an interpolation completion 324 after calculating all the interpolated data.
  • the interpolated data 343 is output.
  • variable size block buffer 340 receives the channelized DMA input data, stores them at an appropriate position according to the block buffer address, and outputs buffered pixel data 342 for motion compensation processing.
  • the padding means 350 duplicates the frame boundary pixel value with respect to the buffered pixel data 342 located outside the video frame boundary, and generates padded pixel data 353.
  • the padding means 350 determines whether the buffered pixel data is outside the video frame boundary, the frame height and width parameters specified by the decoding parameter 301, the motion vector, the current macroblock position or Determine according to block position or both.
  • the word aligning means 360 deletes unnecessary data when the first valid pixel data is not aligned on the word boundary, and generates aligned pixel data 354.
  • the word alignment unit 360 determines whether the padded pixel data 353 is aligned on a word boundary according to the subpixel position indicated by the motion vector in the decoding parameter.
  • Chroma interleaving means 370 splits the two interleaved chrominance components when the chroma interleaving flag is set, streams it according to the designed chroma pixel data format in frame buffer 150 (FIG. 1), and rearranges it. Pixel data 352 is generated.
  • the motion compensation apparatus 101B includes the padding means 350, the word alignment means 360, and the chroma interleaving means 370, and the variable size block buffer 340 includes the buffered pixel data 342. Is supplied to the padding means 350.
  • the motion compensation device 101B can set padding processing, word alignment processing, and chrominance component interleaving processing after storing the reference pixel data in the variable-size block buffer 340, and the system can be operated between the DMA controller and the arithmetic processing logic. You can trade off complexity.
  • the motion compensator 101B can balance the system performance between the DMA controller and the arithmetic processing logic by flexibly setting the execution of padding, word alignment, and chrominance component deinterleaving.
  • padding processing word alignment processing, and chrominance component interleaving processing are set. At least one of these processing is performed. It may be set.
  • Embodiment 4 In the third embodiment, after the reference pixel data is stored in the variable size block buffer, padding processing, word alignment processing, and chrominance component interleaving processing are performed. Each of the above processes may be performed before the reference pixel data is stored in the variable size block buffer.
  • the fourth embodiment is an example in which the reference pixel data is performed before being stored in the variable size block buffer.
  • FIG. 4 is a diagram showing a detailed configuration of the motion compensation apparatus of the video encoding / decoding apparatus according to Embodiment 4 of the present invention.
  • the motion compensation apparatus 101C of the present embodiment is applied instead of the motion compensation apparatus 101 of FIG.
  • the motion compensation apparatus 101C includes a DMA command generator 400, a buffer address generation unit 410, a settable sequencer 420, an interpolation unit 430, a variable size block buffer 440, a padding unit 450, and a word alignment unit.
  • 460 and chroma interleaving means 470 are composed of eight components.
  • the DMA command generator 400 has input terminals for receiving a decoding parameter, a DMA ACK, and a DMA burst cycle, generates a DMA request, receives the DMA ACK, counts the number of DMA requests, and the counter counts the DMA burst cycle.
  • the DMA completion is output after the number is reached.
  • the buffer address generator 410 has a decoding parameter, DMA input data, and a DMA burst cycle, derives a block buffer address according to the decoding parameter and the DMA burst cycle, and transfers the DMA input data to the variable size block buffer through a reference pixel data terminal. Transfer to a memory location in
  • the configurable sequencer 420 has input terminals for receiving a decoding parameter, an operation processing level Lc, a maximum bus occupation time, a block buffer size constraint, and an interpolation completion, and a bit stream characteristic specified by the decoding parameter and a maximum bus
  • An interpolation start for starting the operation of the interpolation unit 430 is generated.
  • the interpolating means 430 calculates the interpolated data in accordance with the decoding mode specified by the decoding parameter, and the interpolated data is converted into one of a plurality of video decoder engines 120-1, 120-2,. Output to one.
  • the interpolation means 430 has an input terminal for receiving a decoding parameter, an interpolation start, and a plurality of buffered pixel data, and by applying a predetermined interpolation filter to the buffered pixel data. After calculating a plurality of interpolated data and calculating all the interpolated data, an interpolation completion is generated and the interpolated data is output.
  • the variable size block buffer 440 has a pixel data terminal that receives the rearranged pixel data 441, stores the rearranged pixel data 441 in an appropriate position according to the block buffer address, and performs buffer processing for motion compensation processing. Output the ringed pixel data.
  • the padding means 450 has decoding parameters and an input terminal for receiving buffered pixel data, and replicates the frame boundary pixel value for the buffered pixel data located outside the video frame boundary; Generate padded pixel data, determine whether the buffered pixel data is outside the video frame boundary, the frame height and width parameters specified by the decoding parameters, the motion vector, and the current macro Judgment according to block or block position or both.
  • the word aligning means 460 has a decoding parameter and an input terminal for receiving padded pixel data from the padding means 450, and deletes unnecessary data when the first valid pixel data is not aligned on a word boundary. Generating aligned pixel data and determining whether the padded pixel data is aligned on a word boundary according to the sub-pixel position indicated by the motion vector in the decoding parameter.
  • Chroma interleaving means 470 has an input terminal for receiving decoding parameters and aligned pixel data from the word alignment means, and if the chroma interleaving flag is set, divides the interleaved chrominance component to generate a frame buffer. Streamed in accordance with the designed chroma pixel data format in to generate rearranged pixel data.
  • the DMA command generator 400 generates a DMA request 402 to the memory access arbitration unit 110 (FIG. 1), receives a DMA ACK 403 from the memory access arbitration unit 110 (FIG. 1), counts the number of DMA requests, After the counter reaches the number of DMA burst cycles 421, the DMA completion 404 is output to the memory access arbitration means 110 (FIG. 1).
  • the buffer address generation unit 410 derives a block buffer address according to the decoding parameter 401 and the DMA burst cycle 421, and the DMA input data 412 from the memory access arbitration unit 110 (FIG. 1) is padded as padded pixel data 452. Are transferred through the reference pixel data input terminal.
  • the configurable sequencer 420 may perform DMA according to the bitstream characteristics specified by the decoding parameters, the system performance limit specified by the maximum bus occupancy time 425, and the system resource limit specified by the block buffer size constraint 426.
  • the burst cycle 421 is led.
  • the configurable sequencer 420 generates an interpolation start 423 that starts the operation of the interpolation means 430 when dynamically set according to system performance and resource limitations.
  • the interpolation unit 430 calculates a plurality of interpolated data 443 by applying a predetermined interpolation filter to the buffered pixel data 442, and generates an interpolation completion 424 after calculating all the interpolated data.
  • the interpolated data 443 is output.
  • variable size block buffer 440 stores the rearranged pixel data 441 in an appropriate position according to the block buffer address generated by the buffer address generation unit 410, and buffered pixel data for motion compensation calculation processing. 442 is output to the interpolation means 430.
  • the padding means 450 determines whether the buffered pixel data 452 is outside the video frame boundary, the frame height and width parameters specified by the decoding parameters, the motion vector, and the current macroblock or block. Or, according to both positions.
  • the word alignment unit 460 determines whether the padded pixel data 453 is aligned on a word boundary according to the subpixel position indicated by the motion vector in the decoding parameter.
  • Chroma interleaving means 470 splits the two interleaved chrominance components if the chroma interleaving flag is set, streams it according to the designed chroma pixel data format in frame buffer 150 (FIG. 1), and re-arranges it. Pixel data 441 is generated.
  • FIG. 5 is a flowchart showing the operation of the DMA command generator 400 of the motion compensation apparatus 101C.
  • S indicates each step of the flow.
  • step S2 the DMA command generator 400 generates a maximum DMA burst cycle Nmax and assigns Na to the actual number of DMA commands.
  • step S3 the DMA command generator 400 issues a DMA request 402 to the memory access arbitration means 110 (FIG. 1).
  • step S4 the DMA command generator 400 waits for a DMA ACK 403 from the memory access arbitration means 110 (FIG. 1).
  • step S5 the DMA command generator 400 determines whether or not the DMA ACK 403 is received. If the DMA ACK 403 is received, the process proceeds to step S6. If the DMA ACK 403 is not received, the process returns to step S4.
  • step S7 the DMA command generator 400 determines whether or not Nd is equal to Nmax. If Nd is equal to Nmax, the process proceeds to step S8, and if Nd is not equal to Nmax, the process proceeds to step S10.
  • step S10 the DMA command generator 400 determines whether Nd is equal to Na.
  • step S11 If Nd is equal to Na, the DMA command generator 400 processes the data in step S11 and proceeds to step S12. If Nd is not equal to Na, the process returns to step S6.
  • step S12 the DMA command generator 400 determines whether all DMA bursts have been processed. If processing has been performed for all DMA bursts, this flow is terminated. If processing has not been performed for all DMA bursts, the process returns to step S2 and the above processing is repeated until processing for all DMA bursts is completed. .
  • FIG. 6 is a flowchart showing the operation of the data processing step of FIG. This flow is a detailed flow of steps S8 and S11 of FIG.
  • the interpolation means 430 waits for an interpolation start flag in step S21.
  • step S22 the interpolation means 430 determines whether or not an interpolation start flag has been received. If the interpolation start flag has not been received, the process returns to step S21 to wait for the interpolation start flag.
  • the interpolation unit 430 determines in step S23 whether the data in the variable size block buffer 440 is sufficient for the calculation processing level Lc.
  • the interpolation means 430 calculates pixel interpolation using a predetermined interpolation filter in step S24. If there is not enough data for the calculation processing level Lc in the variable size block buffer 440, the process returns to step S8 or step S11 in FIG.
  • the motion compensation apparatus 101C includes the padding means 450, the word alignment means 460, and the chroma interleaving means 470.
  • the variable size block buffer 440 is rearranged by the chroma interleaving means 470.
  • the input pixel data 441 is input, and the buffered pixel data 442 is output to the interpolation unit 430.
  • the motion compensation device 101C can set padding processing, word alignment processing, and chrominance component interleaving processing before storing the reference pixel data in the variable size block buffer 440, and the system between the DMA controller and the arithmetic processing logic. The trade-off can be traded off.
  • the motion compensation apparatus 101C can balance the system performance between the DMA controller and the arithmetic processing logic by flexibly setting the padding, word alignment, and chrominance component deinterleaving execution.
  • FIG. 7 is a diagram showing a configuration of a video encoding / decoding apparatus according to Embodiment 5 of the present invention.
  • the same components as those in FIG. 1 are denoted by the same reference numerals, and description of overlapping portions is omitted.
  • a video encoding / decoding device 500 includes a motion compensation device 501, memory access arbitration means 510, N video decoder engines 120-1, 120-2,. 150.
  • the motion compensation device 501 includes a direct memory access unit 560, a variable size block buffer 570, an interpolation unit 580, and a selector 590, and is designed so that performance and memory size can be set flexibly.
  • the motion compensation device 501 outputs the result of motion compensation to another video decoder engine through the interpolation output 592 terminal, or outputs it to the frame buffer 150 through the DMA output data port connected to the memory access arbitration unit 510. Can be set to
  • the direct memory access unit 560 generates a DMA request after receiving the interpolation completion, receives a DMA ACK, receives a plurality of DMA input data according to the maximum DMA burst constraint and block buffer size constraint, and outputs reference pixel data. Generate a DMA completion after receiving a plurality of DMA input data, then generate an interpolation start, receive buffered interpolation data, and output them by following a predetermined direct memory access protocol An address for sending the reference pixel data to the variable size block buffer and for obtaining the buffered interpolation data from the variable size block buffer 570 is sent to the memory access arbitration means 510 through the data terminal. Generated according to the chromatography data and processing level Lc and maximum DMA burst constraints and block buffer size constraints.
  • the variable size block buffer 570 has an input terminal for receiving the reference pixel data and the selected interpolation data 591, stores the reference pixel data obtained from the frame buffer 150 through direct memory access, and is buffered pixel data. Is provided to the interpolation means 580, the selected interpolation data is stored, and the buffered interpolation data is provided to the direct memory access means 560.
  • Selector 590 has an input terminal for receiving the interpolated data, is controlled by the decoding parameters, and outputs the interpolated data to the motion compensator output terminal to provide an interpolated output to one of the video decoder engines. Or output the interpolated data to the variable size block buffer 570 to provide the selected interpolated data.
  • the motion compensation device 501 issues a DMA request 511 according to the decoding parameter 561, the operation processing level LC562, the maximum DMA burst constraint 563, and the block buffer size constraint 564.
  • the motion compensator 501 receives a plurality of DMA input data 514, and then issues a DMA completion 515.
  • the motion compensator 501 calculates the interpolated data according to the decoding mode specified by the decoding parameter, and the interpolated data is sent to the video decoder engines 120-1, 120-2, 120-2 through its interpolation output 592 terminal. ..., 120-N, or the interpolated data is output to the memory access arbitration means 510 using DMA through the DMA output data 513 port.
  • the memory access arbitration unit 510 receives the DMA request 511 from the motion compensation device.
  • the memory access arbitration means 510 also receives DMA requests from the plurality of video decoder engines 120-1, 120-2,..., 120-N through the engine DMA buses 516, 517, and 518, respectively, and prioritizes the DMA requests.
  • DMA ACK 512 is sent to the motion compensator 501 and the plurality of video decoder engines 120-1, 120-2,..., 120-N according to a predetermined DMA priority list.
  • the memory access arbitration unit 510 streams the DMA input data and the DMA output data, provides the DMA input data to the motion compensation device 501, receives the DMA output data 513 from the motion compensation device 501, and passes through the main DMA bus 151. Data is read from the frame buffer 150 and data is written to the frame buffer.
  • the plurality of video decoder engines 120-1, 120-2,..., 120-N are connected to the memory access arbitration means 510 through engine DMA buses 516, 517, and 518, respectively.
  • the frame buffer 150 is connected to the memory access arbitration unit 510 through the main DMA bus 151.
  • the direct memory access unit 560 After receiving the DMA ACK 512, the direct memory access unit 560 receives a plurality of DMA input data 514 according to the maximum DMA burst constraint 563 and the block buffer size constraint 564, and outputs reference pixel data.
  • the direct memory access means 560 generates a DMA completion 515 after receiving a plurality of DMA input data 514, and then generates an interpolation start 582.
  • the direct memory access means 560 receives the buffered interpolation data 574 and sends them to the memory access arbitration means 510 through its DMA output data 513 terminal by following a predetermined direct memory access protocol.
  • the direct memory access unit 560 generates a block buffer address for storing reference pixel data according to the decoding parameter 561, the operation processing level Lc 562, the maximum DMA burst constraint 563, and the block buffer size constraint 564, and The ringed interpolation data 574 is acquired from the variable size block buffer 570.
  • variable size block buffer 570 stores the reference pixel 571 acquired from the external frame buffer 150 through direct memory access, and provides the buffered pixel data 572 to the interpolation unit 580.
  • the variable size block buffer 570 stores the selected interpolation data 591 and provides the buffered interpolation data 574 to the direct memory access means 560.
  • the interpolation unit 580 calculates and outputs a plurality of interpolated data by applying a predetermined interpolation filter to the buffered pixel data 572, and after all the interpolated data 583 is calculated, the interpolation is completed. 581 is generated.
  • Selector 590 is controlled by decoding parameter 561 and outputs or is selected by interpolated data 583 to the output terminal of motion compensator 501 to provide interpolated output 592 to one of the video decoder engines.
  • the interpolated data 583 is output to the variable size block buffer 570.
  • the motion compensation device 501 selects whether to output the interpolated data 583 to the output terminal of the motion compensation device 501 or to the variable size block buffer 570. Since 590 is provided, the following effects can be obtained.
  • the computation of motion compensation device 501 for further processing after motion compensation For other series of video codecs (e.g. MPEG4 video codec) after motion compensation and no subsequent processing in the decoding loop after motion compensation. Selection such as buffering in a block buffer in the motion compensation device 501 so that the data is output to the buffer 150 is possible.
  • video codecs e.g., H.264 video codec
  • MPEG4 video codec e.g. MPEG4 video codec
  • FIG. 8 is a diagram showing a configuration of a video encoding / decoding apparatus according to Embodiment 6 of the present invention.
  • the same components as those in FIG. 7 are denoted by the same reference numerals, and description of overlapping portions is omitted.
  • a video encoding / decoding device 600 includes a motion compensation device 501, a memory access arbitration unit 610, a system performance control unit 620, N video decoder engines 120-1, 120-2,. -N and a frame buffer 150.
  • the motion compensator 501 outputs the result of motion compensation to another video decoder engine through the interpolation output 592 terminal, or outputs it to the frame buffer 150 through the DMA output data port connected to the memory access arbitration means 610. Can be set to
  • the memory access arbitration means 610 receives a DMA request from the motion compensation device 501 and receives DMA requests from the plurality of video decoder engines 120-1, 120-2,..., 120-N through the engine DMA buses 116 to 118, Prioritizes DMA requests and sends DMA ACK to motion compensator 501 and multiple video decoder engines 120-1, 120-2,..., 120-N according to a predetermined DMA priority list for DMA input data and DMA output Stream data, provide DMA input data to motion compensator 501, receive DMA output data from motion compensator 501, read data from frame buffer 150 and write data to frame buffer 150 through main DMA bus 151 , Motion supplement Device 501 and monitors the memory access status of DMA requests from the engine DMA bus, for generating a DMA bus status.
  • the system performance control means 620 has an input terminal for receiving the DMA bus status from the memory access arbitration means 610, and details of DMA requests from the motion compensator 501 and the engine DMA bus connected to the memory access arbitration means 610. Based on the DMA bus status including the usage status, the processing level Lc and the maximum DMA burst constraint are dynamically changed.
  • the motion compensation device 501 issues a DMA request 511 according to the decoding parameter 561, the operation processing level Lc 562, the maximum DMA burst constraint 563, and the block buffer size constraint 564.
  • the motion compensator 501 receives a plurality of DMA input data 514, and then issues a DMA completion 515.
  • the motion compensator 501 calculates the interpolated data according to the decoding mode specified by the decoding parameter, and the interpolated data is sent to the video decoder engines 120-1, 120-2, 120-2 through its interpolation output 592 terminal. .., 120 -N, or the interpolated data is output to the memory access arbitration means 610 using DMA through the DMA output data 513 port.
  • the memory access arbitration unit 610 receives the DMA request 511 from the motion compensation device 501.
  • the memory access arbitration means 610 also receives DMA requests from the plurality of video decoder engines 120-1, 120-2,..., 120-N through the engine DMA buses 116 to 118, prioritizes the DMA requests, and DMAs.
  • ACK 512 is sent to the motion compensation device 501 and the plurality of video decoder engines 120-1, 120-2,..., 120-N according to a predetermined DMA priority list. Then, the memory access arbitration unit 610 streams the DMA input data and the DMA output data, provides the DMA input data to the motion compensation device 501, receives the DMA output data 513 from the motion compensation device 501, and passes through the main DMA bus 151.
  • Data is read from the frame buffer 150 and data is written to the frame buffer 150. Thereafter, the memory access arbitration unit 610 monitors the memory access status of the DMA request 511 from the motion compensation device 501 and the engine DMA bus, and generates the DMA bus status 611.
  • the system performance control means 620 calculates based on the DMA bus status 611 including the detailed usage status of the DMA request from the motion compensation device 501 and the engine DMA buses 116 to 118 connected to the memory access arbitration means 610.
  • the processing level Lc 561 and the maximum DMA burst constraint 563 are dynamically derived.
  • the plurality of video decoder engines 120-1, 120-2,..., 120-N are connected to the memory access arbitration means 610 through engine DMA buses 116 to 118, respectively.
  • the frame buffer 150 is connected to the memory access arbitration unit 510 through the main DMA bus 151.
  • the direct memory access unit 560 After receiving the DMA ACK 512, the direct memory access unit 560 receives a plurality of DMA input data 514 according to the maximum DMA burst constraint 563 and the block buffer size constraint 564, and outputs reference pixel data.
  • the direct memory access means 560 generates a DMA completion 515 after receiving a plurality of DMA input data 514, and then generates an interpolation start 582.
  • the direct memory access means 560 receives the buffered interpolation data 574 and sends them to the memory access arbitration means 610 through its own DMA output data 513 terminal by following a predetermined direct memory access protocol.
  • the direct memory access unit 560 stores a block buffer address for storing reference pixel data and for obtaining buffered interpolation data 574 from the variable size block buffer 570, a decoding parameter, an operation processing level Lc562, Generated according to the maximum DMA burst constraint 563 and the block buffer size constraint 564.
  • variable size block buffer 570 stores the reference pixel data 571 acquired from the external frame buffer 150 through direct memory access, and provides the buffered pixel data 572 to the interpolation unit 580.
  • the variable size block buffer 570 stores the selected interpolation data and provides the buffered interpolation data 574 to the direct memory access means 560.
  • the interpolation unit 580 calculates and outputs a plurality of interpolated data by applying a predetermined interpolation filter to the buffered pixel data 572, calculates all the interpolated data 583, and then performs interpolation. Completion 581 is generated.
  • Selector 590 is controlled by the decoding parameters and outputs interpolated data 583 to the output terminal of motion compensator 501 to provide an interpolated output 592 to one of the video decoder engines, or is selected.
  • Interpolated data 583 is output to variable size block buffer 570 to provide interpolated data 591.
  • the system performance control unit 620 includes detailed usage statuses of DMA requests from the motion compensation device 501 and the engine DMA bus. Based on the DMA bus status, it dynamically derives the processing level Lc and the maximum DMA burst constraint, so that the system performance is predefined or specified system performance constraint applied to the motion compensator, or the DMA bus Based on the dynamic situation of the traffic, multiple small DMA requests can be combined, or a large DMA burst access can be divided into multiple small DMA requests.
  • the system performance can be automatically set, and the processing level Lc can be pre-defined according to the complexity of the processing logic or can be derived dynamically according to the traffic situation of the DMA bus.
  • the size of the on-chip memory for storing the reference pixel data can be set according to the system resource constraint applied to the motion compensation device 501.
  • the name video encoding / decoding apparatus is used.
  • the apparatus may be a decoding apparatus, a digital video decoding system, or the like. .
  • configuration examples such as a motion compensation device, a video decoder engine, a buffer type, the number of buffers, and a connection method constituting the video encoding / decoding device are not limited to the above-described embodiments.
  • the video encoding / decoding apparatus is suitable for an apparatus that performs high-throughput video encoding / decoding. Further, the present invention is applicable to an electronic system in which video encoding / decoding and a plurality of components in the electronic system share the use of an external memory and perform video encoding / decoding. For example, real-time video decoding can be achieved in advanced video standards (H.264 / AVC, SMPTE VC1, China AVS, etc.) that require frequent access to external memory. Also, a comprehensive motion compensator can be provided for electronic device accelerators that is integrated into various video encoders and video decoders by specifying predetermined system cost limits and system performance requirements. Furthermore, it is applicable to a motion compensation device for use in digital video encoders and decoders.
  • Video decoder engine 150 Frame buffer 160, 560 Direct memory access means 170, 240, 340, 440, 570 Variable size block buffer 180, 580 Interpolation means 200, 300, 400 DMA command generator 210, 310, 410 Buffer address generation means 220, 320, 420 Settable sequencer 230, 330, 430 Interpolating means 250 Data aligning means 350 Padding means 360, 460 Word aligning means 370, 470 Chroma interleaving means 590 Selector 620 System -Time performance control means

Abstract

 限られたメモリリソースを用いてシステムパフォーマンスを最大にすることができるビデオ符号化・復号化装置を提供すること。ビデオ符号化・復号化装置(100)は、動き補償装置(101)のダイレクトメモリアクセス手段(160)が、補間手段(180)から補間完了を受け取った後にDMA要求を生成し、メモリアクセス調停手段(110)からDMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファ(170)に格納するためのブロックメモリアドレスを生成する。

Description

ビデオ符号化・復号化装置
 本発明は、ビデオデコーダにおいて動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置に関する。
 最近、マルチメディアに関連する情報のデジタル化が加速しており、それに伴って、より高画質のビデオ情報の需要が高まっている。具体的な例として、放送媒体及びレーザ記憶媒体(laser storage media)における、従来の720×480ピクセルのSD(Standard Definition)から1920×1080ピクセルのHD(High Definition)への移行が挙げられる。高画質のビデオ情報を扱うために、システムの複雑さが増し、また復号化の処理動作が増大する。したがって、従来のパフォーマンス能力を上回る一方でコストを低いレベルに維持できる効果的なシステムアーキテクチャが求められている。
 ビデオコーダーにおいて動き補償を使用することは、いくつもの大きな利点がある。テレビ信号は、残像に基づき特定の速度(例えば、30又は60フレーム/秒)で走査しなければならない。HDTVなどの多くの用途においては、フレーム間に大量の冗長性が存在する。ビデオコーダーにおいて動き補償を使用することにより、この冗長性が減少し、ビデオ信号の圧縮率を高めることができる。
 現在のフレームのピクセルブロックと、フレームのメモリに格納されている前のフレームのピクセルブロックとの間の動き推定方法には、さまざまなアルゴリズムが使用可能である。例えば、非特許文献1,2には、ピクセル再帰的アルゴリズムが開示されている。また、非特許文献3には、ブロック照合アルゴリズムが記載されている。
 これらのアルゴリズムのいずれにおいても、以前に復号化されたフレームのピクセルをフレームバッファから取り出すことが要求される。高解像度のビデオ信号をリアルタイムで符号化するためには、これらのフレームメモリに高速でアクセスしなければならない。その一方で、特定の用途、特に携帯端末用途においては、システムコスト及び電力消費量を低く維持するため、デジタルハイビジョンテレビなどの高性能の用途と比較して比較的低いシステムクロックレートによってデバイスを駆動しなければならない。
 動き補償において使用するためのバッファリングメカニズムであって、ビデオデコーダが過度に複雑にならず、パフォーマンスのボトルネックが生じないバッファリングメカニズムのニーズが存在している。
 特許文献1には、効果的な動き補償方法「Efficient methods of performing motion compensation based decoding and recording of compressed video bitstreams」が開示されている。特許文献1記載の発明は、オンチップメモリの使用を増やすことによって動き補償の効率を高めている。動き補償に必要な参照フレームの部分がオンチップメモリに含まれるように参照ウィンドウを作成するものである。
米国特許第7,218,842号明細書
"Motion Compensation Television Coding: Part I", BSTT, Vol. 58, pp. 631-670, March, 1979 K. A. Probhu et al., "Pel Recursive Motion Compensated Color Codecs", Proc ICC 82, p. 2G. 8.1-8.5, Philadelphia, Pa., June 1982. A block matching algorithm is disclosed in J. R. Jain et al., "Displacement Measurement and Its Application in Interframe Image Coding", IEEE Trans. on Comm., Vol. COM-29, p. 1799-1808, December 1981.
 しかしながら、このような従来の動き補償方法を備えるビデオ符号化・復号化装置にあっては、以下のような問題があった。
 すなわち、動き補償では、以前に復号化されたフレームのピクセルをフレームバッファから取り出すことが要求される。高解像度のビデオ信号をリアルタイムで符号化するためには、これらのフレームメモリに高速でアクセスしなければならない。その一方で、特定の用途、特に携帯端末用途においては、システムコスト及び電力消費量を低く維持するため、デジタルハイビジョンテレビなどの高性能の用途と比較して比較的低いシステムクロックレートによってデバイスを駆動しなければならない。
 また、特許文献1記載の動き補償方法では、動き補償に必要な参照フレームの部分をオンチップメモリに含まれるように構成することで、動き補償の効率を高めることができるものの、参照フレームの部分を格納するための大きなメモリ空間が要求される欠点がある。
 本発明は、限られたメモリリソースを用いてシステムパフォーマンスを最大にすることができるビデオ符号化・復号化装置を提供することを目的とする。
 本発明のビデオ符号化・復号化装置は、ビデオデコーダにおいて動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置であって、複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンDMAバスと、フレームバッファと、前記フレームバッファに接続されているメインDMAバスと、復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、及びブロックバッファサイズ制約に従って、DMA要求を発行し、DMA ACKを受け取った後に複数個のDMA入力データを受け取り、DMA完了を発行し、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを前記複数のビデオデコーダエンジンの1つに出力する動き補償装置と、前記動き補償装置からDMA要求を受け取り、かつ前記複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込むメモリアクセス調停手段と、を備える構成を採る。
 本発明によれば、パフォーマンス及びメモリサイズをフレキシブルに設定できる動き補償装置を備えることにより、システムパフォーマンスを事前定義する、又は、システム全体の処理スループットをリアルタイムで最適化して、動き補償装置とそれ以外のビデオデコーダエンジンとの間でパフォーマンスのバランスをとるためにシステムパフォーマンスを自動的に設定することができる。また、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置に適用されるシステムコスト制約に従って設定できることである。さらに、パディング、ワード整列、クロミナンス成分のデインターリーブのうちの少なくとも1つの実行をフレキシブルに設定することにより、DMAコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができ、DMAコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。その結果、高い周波数で動作する大きなオンチップデータメモリを使用することなく、限られたメモリリソースを用いて、システムパフォーマンスを最大にするフレキシブルな動き補償装置及びビデオ符号化・復号化装置を実現することができる。
本発明の実施の形態1に係るビデオ符号化・復号化装置の構成を示すブロック図 本発明の実施の形態2に係るビデオ符号化・復号化装置の補償装置の詳細な構成を示す図 本発明の実施の形態3に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図 本発明の実施の形態4に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図 上記実施の形態4に係るビデオ符号化・復号化装置の動き補償装置のDMAコマンド生成器の動作を示すフロー図 上記実施の形態4に係るビデオ符号化・復号化装置の動き補償装置のDMAコマンド生成器の動作を示すフロー図 本発明の実施の形態5に係るビデオ符号化・復号化装置の構成を示すブロック図 本発明の実施の形態6に係るビデオ符号化・復号化装置の構成を示すブロック図
 以下、本発明の実施の形態について、図面を参照して詳細に説明する。
 (実施の形態1)
 図1は、本発明の実施の形態1に係るビデオ符号化・復号化装置の構成を示す図である。本実施の形態は、フレームバッファと、複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンDMAバスと、動き補償を用いる動き補償装置とを備えるビデオ符号化・復号化装置に適用した例である。
 図1において、ビデオ符号化・復号化装置100は、動き補償装置101と、メモリアクセス調停手段110と、複数個(N個)のビデオデコーダエンジン120-1,120-2,…,120-Nと、フレームバッファ150とを備えて構成される。
 動き補償装置101は、復号化パラメータ161、演算処理レベルLc(computation level)162、最大DMAバースト制約163、ブロックバッファサイズ制約164、DMA ACK112、DMA入力データ114、及び補間完了181を受け取る入力端子を有し、復号化パラメータ161、演算処理レベルLc162、最大DMAバースト制約163、及びブロックバッファサイズ制約164に従って、DMA要求111を発行し、DMA ACK112を受け取った後に複数個のDMA入力データ114を受け取り、次いで、DMA完了115を発行し、復号化パラメータ161によって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120-1,120-2,…,120-Nの1つに出力する。
 メモリアクセス調停手段110は、動き補償装置101からDMA要求111を受け取り、かつ複数個のビデオデコーダエンジン120-1,120-2,…,120-NからDMA要求をエンジンDMAバス116~118を通じて受け取り、DMA要求を優先順位付けし、DMA ACK112を所定のDMA優先度リストに従って動き補償装置101及び複数個のビデオデコーダエンジン120-1,120-2,…,120-Nに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データ114を動き補償装置101に提供し、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込む。
 複数個のビデオデコーダエンジン120-1,120-2,…,120-Nは、エンジンDMAバス116~118を通じてメモリアクセス調停手段110に接続されている。
 フレームバッファ150は、複数個のビデオデコーダエンジン120-1,120-2,…,120-Nにより共有される外部のシステムメモリであり、メインDMAバス151を通じてメモリアクセス調停手段110に接続されている。
 動き補償装置101は、ダイレクトメモリアクセス手段160、可変サイズブロックバッファ170、及び補間手段180を備え、パフォーマンス及びメモリサイズをフレキシブルに設定できるように設計されている。
 ダイレクトメモリアクセス手段160は、補間手段180から補間完了181を受け取った後にDMA要求を生成し、メモリアクセス調停手段110からDMA ACK112を受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータ171を可変サイズブロックバッファ170に格納するためのブロックメモリアドレスを生成するとともに、参照ピクセルデータ171を可変サイズブロックバッファ170に出力し、メモリアクセス調停手段110から複数個のDMA入力データを受け取った後、DMA完了115を生成し、次いで、補間開始182を生成する。
 可変サイズブロックバッファ170は、フレームバッファ150からダイレクトメモリアクセスを通じて取得される参照ピクセルデータ171を格納し、バッファリングされたピクセルデータを補間手段180に提供する。可変サイズブロックバッファ170は、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定可能である。
 補間手段180は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120-1,120-2,…,120-Nの1つに出力する。具体的には、補間手段180は、復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータ172を受け取る入力端子を有し、複数のバッファリングされたピクセルデータに所定の補間フィルタを適用することによって複数個の補間されたデータ173を計算し、すべての補間されたデータ173を計算した後、補間完了181を生成する。
 以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
 動き補償装置101は、DMA ACK112を受け取った後、複数個のDMA入力データ114を受け取り、次いで、DMA完了115を発行する。動き補償装置101は、復号化パラメータ161によって指定される復号化モードに従って、補間されたデータ173を計算する。動き補償装置101は、補間されたデータ173を自身の出力端子の1つを通じてビデオデコーダエンジンの1つに出力する。
 メモリアクセス調停手段110は、動き補償装置101からDMA要求111を受け取る。メモリアクセス調停手段110はまた、複数個のビデオデコーダエンジン120-1,120-2,…,120-NからそれぞれエンジンDMAバス116,117,118を通じてDMA要求を受け取り、DMA要求を優先順位付けし、DMA ACK112を、所定のDMA優先度リストに従って動き補償装置101及び複数個のビデオデコーダエンジン120-1,120-2,…,120-Nに送る。そして、メモリアクセス調停手段110は、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データ114を動き補償装置100に提供し、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込む。
 複数個のビデオデコーダエンジン120-1,120-2,…,120-Nは、それぞれエンジンDMAバス116,117,118を通じてメモリアクセス調停手段110に接続されている。フレームバッファ150は、メインDMAバス151を通じてメモリアクセス調停手段110に接続されている。
 次に、動き補償装置101の動作について説明する。
 ダイレクトメモリアクセス手段160は、最大DMAバースト制約163及びブロックバッファサイズ制約164に従って、DMA要求を生成し、複数個のDMA入力データを受け取り、DMAアクセス及び補間手段180を調整し、DMAによってフレームバッファ150から取得した参照ピクセルデータ171を可変サイズブロックバッファ170に格納するためのアドレスを生成する。
 より詳細には、ダイレクトメモリアクセス手段160は、補間手段180から補間完了181を受け取った後にDMA要求111を生成し、生成したDMA要求111をメモリアクセス調停手段110に発行する。ダイレクトメモリアクセス手段160は、メモリアクセス調停手段110からDMA ACK112を受け取った後、最大DMAバースト制約163とブロックバッファサイズ制約164とに従って、メモリアクセス調停手段110から複数個のDMA入力データ114を受け取る。ダイレクトメモリアクセス手段160は、復号化パラメータ161と、演算処理レベルLc162と、最大DMAバースト制約163と、ブロックバッファサイズ制約164とに従って、参照ピクセルデータ171を可変サイズブロックバッファ170に格納するためのブロックメモリアドレスを生成する。ダイレクトメモリアクセス手段160は、可変サイズブロックバッファ170に参照ピクセルデータ171を出力する。ダイレクトメモリアクセス手段160は、複数個のDMA入力データ114を受け取った後、DMA完了115を生成し、次いで、補間開始182を生成する。
 可変サイズブロックバッファ170は、参照ピクセルデータを格納するためのオンチップメモリであり、ダイレクトメモリアクセスによって外部のフレームバッファ150から取得した参照ピクセルを格納し、バッファリングされたピクセルデータ172を補間手段180に提供する。可変サイズブロックバッファ170は、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定することができる。
 補間手段180は、バッファリングされたピクセルデータ172に所定の補間フィルタを適用することによって複数個の補間されたデータ173を計算し、すべての補間されたデータ173を計算した後、補間完了181を生成する。
 以上詳細に説明したように、本実施の形態によれば、ビデオ符号化・復号化装置100は、動き補償装置101のダイレクトメモリアクセス手段160が、補間手段180から補間完了181を受け取った後にDMA要求111を生成し、メモリアクセス調停手段110からDMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファ170に格納するためのブロックメモリアドレスを生成する。
 これにより、ダイレクトメモリアクセス手段160は、複数個の小さなDMAアクセスを自動的に組み合わせて大きなバーストDMAを形成する、又は、大きなバーストDMAを複数個の小さなサイズのDMAアクセスに自動的に分割することができる。また、システムパフォーマンスを事前定義する、又は、システム全体の処理スループットをリアルタイムで最適化することにより、動き補償装置101とそれ以外の複数個のビデオデコーダエンジン120-1,120-2,…,120-Nとの間で、データバスの占有時間及びフレームバッファ150にアクセスするためのバス占有時間のバランスをとることができる。その結果、高い周波数で動作する大きなオンチップデータメモリを使用することなく、限られたメモリリソースを用いて、システムパフォーマンスを最大にするフレキシブルな動き補償装置101を実現することができる。
 このように、ビデオの復号化において高いパフォーマンスの動き補償装置101を実現できるので、ビデオ符号化・復号化装置100は、動き補償が必要な高解像度のビデオ用として、動き補償装置101を使用することでリアルタイムで動作することが可能になる。また、上述したように、動き補償装置101は、動き補償に必要なシステムメモリのコストを小さくすることができるので、動き補償システムのコストパフォーマンスについても高めることができる。
 (実施の形態2)
 実施の形態2は、動き補償装置の詳細な実現形態を説明する。
 図2は、本発明の実施の形態2に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置101Aは、図1の動き補償装置101に代えて適用される。
 図2において、動き補償装置101Aは、DMAコマンド生成器200と、バッファアドレス生成手段210と、設定可能シーケンサ220と、補間手段230と、可変サイズブロックバッファ240と、データ整列手段250とからなる6個のコンポーネントにより構成される。
 DMAコマンド生成器200は、復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力する。
 バッファアドレス生成手段210は、復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送する。
 設定可能シーケンサ220は、復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約225によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段230の動作を開始させる補間開始を生成する。
 補間手段230は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120-1,120-2,…,120-Nの1つに出力する。具体的には、補間手段230は、復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
 可変サイズブロックバッファ240は、チャネル化されたDMA入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたDMA入力データを、ブロックバッファアドレスに従って所定位置に格納し、動き補償処理のためにバッファリングされたピクセルデータを出力する。
 データ整列手段250は、復号化パラメータ、クロマインターリーブフラグ、バッファリングされたピクセルデータを受け取る入力端子を有し、復号化パラメータの一部としての動きベクトルによって示されるビデオフレーム内の位置と、フレームバッファ150におけるクロミナンスデータ形式を示すクロマインターリーブフラグとに従って、バッファリングされたピクセルデータを再配置し、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータを提供し、ワード境界再配置によって不要なデータを削除し、クロマインターリーブフラグが設定されている場合、インターリーブされたクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化する。
 以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
 DMAコマンド生成器200は、メモリアクセス調停手段110(図1)に対してDMA要求202を生成し、メモリアクセス調停手段110(図1)からDMA ACK203を受け取り、DMA要求202の数をカウントし、カウンタがDMAバーストサイクル221の数に達した後にメモリアクセス調停手段110(図1)にDMA完了204を出力する。
 バッファアドレス生成手段210は、復号化パラメータ201とDMAバーストサイクル221とに従ってブロックバッファアドレスを導き、メモリアクセス調停手段110(図1)からのDMA入力データ212を、参照ピクセルデータ端子を通じて参照ピクセルデータ241として可変サイズブロックバッファ240内のメモリ位置に転送する。
 設定可能シーケンサ220は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段230の動作を開始させる補間開始223を生成する。
 補間手段230は、再配置されたピクセルデータ252に所定の補間フィルタを適用することによって、複数個の補間されたデータ243を計算し、すべての補間されたデータ243を計算した後、補間完了224を生成し、補間されたデータ243を出力する。
 可変サイズブロックバッファ240は、チャネル化されたDMA入力データを受け取り、それらをブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータ242を出力する。
 データ整列手段250は、復号化パラメータ201の一部としての動きベクトルによって示されるビデオフレーム内の位置と、フレームバッファ150(図1)におけるクロミナンスデータ形式を示すクロマインターリーブフラグ251とに従って、バッファリングされたピクセルデータ242を再配置する。データ整列手段250は、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータ252を提供し、ワード境界再配置によって不要なデータを削除する。そして、データ整列手段250は、クロマインターリーブフラグが設定されている場合、2つのインターリーブされたクロミナンス成分を分割して、フレームバッファ150における設計上のクロマピクセルデータ形式に従ってストリーム化する。
 このように、本実施の形態によれば、動き補償装置101Aは、復号化パラメータによって指定されるビットストリーム特性と最大DMAバースト制約によって指定されるシステムパフォーマンスの制限とブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段230の動作を開始させる補間開始を生成する設定可能シーケンサ220を備えているので、動き補償装置101Aは、データバスのトラフィックを動的に監視することによって、データメモリへの各バーストアクセスの数及びサイズを適応的に割り当てることができ、これにより、演算処理手段と、動き補償装置101Aの内側及び外側の限られたメモリとの間での最適化されたデータストリーミングを達成することができる。
 また、システムパフォーマンスを、動き補償装置101Aに適用されるシステムパフォーマンス制約に基づいて事前定義することができ、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置に適用されるシステムリソース制約に従って設定することができる。
 また、本実施の形態では、動き補償装置101Aは、データ整列手段250を備えているので、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定することのできる可変サイズブロックバッファ240からのバッファリングされたピクセルデータ242に対して、ピクセルデータの再配置し、不要なデータの削除、クロマピクセルデータ形式に従ったストリーム化などのデータ整列を施すことができる。
 (実施の形態3)
 実施の形態3は、動き補償装置の詳細な実現形態を説明する。
 図3は、本発明の実施の形態3に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置101Bは、図1の動き補償装置101に代えて適用される。
 図3において、動き補償装置101Bは、DMAコマンド生成器300と、バッファアドレス生成手段310と、設定可能シーケンサ320と、補間手段330と、可変サイズブロックバッファ340と、パディング手段350と、ワード整列(word-aligning)手段360と、クロマインターリーブ手段370とからなる8個のコンポーネントにより構成される。
 DMAコマンド生成器300は、復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力する。
 バッファアドレス生成手段310は、復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ入力端子を通じてパディング手段350に転送する。
 設定可能シーケンサ320は、復号化パラメータ、演算処理レベルLc、最大バス占有時間、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段330の動作を開始させる補間開始を生成する。
 補間手段330は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120-1,120-2,…,120-Nの1つに出力する。具体的には、補間手段330は、復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
 可変サイズブロックバッファ340は、参照ピクセルデータと、ブロックバッファアドレスをバッファアドレス生成手段310から受け取る入力端子を有し、再配置されたピクセルデータを、バッファアドレス生成手段によって生成されたブロックバッファアドレスに従って適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータを補間手段330に出力する。
 パディング手段350は、復号化パラメータと、バッファリングされたピクセルデータを受け取る入力端子を有し、ビデオフレーム境界の外側に位置する参照ピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、参照ピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
 ワード整列手段360は、復号化パラメータと、パディングされたピクセルデータをパディング手段350から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
 クロマインターリーブ手段370は、復号化パラメータと、整列したピクセルデータをワード整列手段360から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成する。
 以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
 DMAコマンド生成器300は、メモリアクセス調停手段110(図1)に対してDMA要求302を生成し、メモリアクセス調停手段110(図1)からDMA ACK303を受け取り、DMA要求の数をカウントし、このカウンタがDMAバーストサイクル321の数に達した後にメモリアクセス調停手段110(図1)にDMA完了304を出力する。
 バッファアドレス生成手段310は、復号化パラメータ301及びDMAバーストサイクル321に従ってブロックバッファアドレスを導き、メモリアクセス調停手段110(図1)からのDMA入力データ312を自身の参照ピクセルデータ端子341を通じて可変サイズブロックバッファ340内のメモリ位置に転送する。
 設定可能シーケンサ320は、復号化パラメータ301によって指定されるビットストリーム特性と、最大バス占有時間325によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約326によって指定されるシステムリソースの制限とに従って、DMAバーストサイクル321を導く。設定可能シーケンサ320は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段330の動作を開始させる補間開始323を生成する。
 補間手段330は、再配置されたピクセルデータ352に所定の補間フィルタを適用することによって、複数個の補間されたデータ343を計算し、すべての補間されたデータを計算した後に補間完了324を生成し、補間されたデータ343を出力する。
 可変サイズブロックバッファ340は、チャネル化されたDMA入力データを受け取り、それらをブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータ342を出力する。
 パディング手段350は、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータ342に対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータ353を生成する。パディング手段350は、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータ301によって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックポジションもしくはブロックポジション又はその両方とに従って判定する。
 ワード整列手段360は、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータ354を生成する。ワード整列手段360は、パディングされたピクセルデータ353がワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
 クロマインターリーブ手段370は、クロマインターリーブフラグが設定されている場合、2つのインターリーブされているクロミナンス成分を分割し、フレームバッファ150(図1)における設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータ352を生成する。
 このように、本実施の形態によれば、動き補償装置101Bは、パディング手段350と、ワード整列手段360、及びクロマインターリーブ手段370を備え、可変サイズブロックバッファ340は、バッファリングされたピクセルデータ342をパディング手段350に供給する。動き補償装置101Bは、参照ピクセルデータを可変サイズブロックバッファ340に格納した後に、パディング処理、ワード整列処理、クロミナンス成分インターリーブ処理を設定することができ、DMAコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができる。さらに、動き補償装置101Bは、パディング、ワード整列、及びクロミナンス成分のデインターリーブの実行をフレキシブルに設定することにより、DMAコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。
 なお、本実施の形態では、参照ピクセルデータを可変サイズブロックバッファ340に格納した後に、パディング処理、ワード整列処理、及びクロミナンス成分インターリーブ処理を設定しているが、これら処理のうちの少なくとも1つを設定するものでもよい。
 (実施の形態4)
 実施の形態3は、参照ピクセルデータを可変サイズブロックバッファに格納した後に、パディング処理、ワード整列処理、及びクロミナンス成分インターリーブ処理を行っている。上記各処理は、参照ピクセルデータを可変サイズブロックバッファに格納する前に行ってもよい。実施の形態4は、参照ピクセルデータを可変サイズブロックバッファに格納する前に行う例である。
 図4は、本発明の実施の形態4に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置101Cは、図1の動き補償装置101に代えて適用される。
 図4において、動き補償装置101Cは、DMAコマンド生成器400と、バッファアドレス生成手段410と、設定可能シーケンサ420と、補間手段430と、可変サイズブロックバッファ440と、パディング手段450と、ワード整列手段460と、クロマインターリーブ手段470とからなる8個のコンポーネントにより構成される。
 DMAコマンド生成器400は、復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力する。
 バッファアドレス生成手段410は、復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送する。
 設定可能シーケンサ420は、復号化パラメータ、演算処理レベルLc、最大バス占有時間、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段430の動作を開始させる補間開始を生成する。
 補間手段430は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120-1,120-2,…,120-Nの1つに出力する。具体的には、補間手段430は、復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
 可変サイズブロックバッファ440は、再配置されたピクセルデータ441を受け取るピクセルデータ端子を有し、再配置されたピクセルデータ441を、ブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータを出力する。
 パディング手段450は、復号化パラメータと、バッファリングされたピクセルデータを受け取る入力端子とを有し、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
 ワード整列手段460は、復号化パラメータと、パディングされたピクセルデータをパディング手段450から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
 クロマインターリーブ手段470は、復号化パラメータと、整列したピクセルデータをワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成する。
 以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
 DMAコマンド生成器400は、メモリアクセス調停手段110(図1)に対してDMA要求402を生成し、メモリアクセス調停手段110(図1)からDMA ACK403を受け取り、DMA要求の数をカウントし、このカウンタがDMAバーストサイクル421の数に達した後にメモリアクセス調停手段110(図1)にDMA完了404を出力する。
 バッファアドレス生成手段410は、復号化パラメータ401及びDMAバーストサイクル421に従ってブロックバッファアドレスを導き、メモリアクセス調停手段110(図1)からのDMA入力データ412をバッファリングされたピクセルデータ452としてパディング手段450に参照ピクセルデータ入力端子を通じて転送する。
 設定可能シーケンサ420は、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間425によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約426によって指定されるシステムリソースの制限とに従って、DMAバーストサイクル421を導く。設定可能シーケンサ420は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段430の動作を開始させる補間開始423を生成する。
 補間手段430は、バッファリングされたピクセルデータ442に所定の補間フィルタを適用することによって、複数個の補間されたデータ443を計算し、すべての補間されたデータを計算した後に補間完了424を生成し、これらの補間されたデータ443を出力する。
 可変サイズブロックバッファ440は、バッファアドレス生成手段410によって生成されるブロックバッファアドレスに従って、再配置されたピクセルデータ441を適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータ442を補間手段430に出力する。
 パディング手段450は、バッファリングされたピクセルデータ452がビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
 ワード整列手段460は、パディングされたピクセルデータ453がワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
 クロマインターリーブ手段470は、クロマインターリーブフラグが設定されている場合、2つのインターリーブされているクロミナンス成分を分割し、フレームバッファ150(図1)における設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータ441を生成する。
 図5は、上記動き補償装置101CのDMAコマンド生成器400の動作を示すフローチャートである。図中、Sはフローの各ステップを示す。
 まず、ステップS1でDMAコマンド生成器400はDMAバーストサイクルNd=0に設定する。
 次いで、ステップS2でDMAコマンド生成器400は最大DMAバーストサイクルNmaxを生成し、DMAコマンドの実際の数にNaを割り当てる。
 ステップS3では、DMAコマンド生成器400はメモリアクセス調停手段110(図1)に対してDMA要求402を発行する。
 ステップS4では、DMAコマンド生成器400はメモリアクセス調停手段110(図1)からのDMA ACK403を待つ。
 ステップS5では、DMAコマンド生成器400はDMA ACK403を受け取ったか否かを判別し、DMA ACK403を受け取った場合はステップS6に進み、DMA ACK403を受け取っていない場合は上記ステップS4に戻る。
 ステップS6では、DMAコマンド生成器400はDMAコマンドをメモリアクセス調停手段110(図1)に送り、Nd=Nd+1に設定する。
 ステップS7では、DMAコマンド生成器400はNdがNmaxに等しいか否かを判別し、NdがNmaxに等しい場合はステップS8に進み、NdがNmaxに等しくない場合はステップS10に進む。
 ステップS8では、DMAコマンド生成器400はデータを処理し、ステップS9でNa=Na-Nmaxに設定して上記ステップS3に戻る。このデータ処理の詳細については、図6により後述する。
 ステップS10では、DMAコマンド生成器400はNdがNaに等しいか否かを判別する。
 NdがNaに等しい場合は、ステップS11でDMAコマンド生成器400はデータを処理してステップS12に進む。NdがNaに等しくない場合は、上記ステップS6に戻る。
 ステップS12では、DMAコマンド生成器400はすべてのDMAバーストについて処理が行われたかを判別する。すべてのDMAバーストについて処理が行われた場合は、本フローを終了し、すべてのDMAバーストについて処理が行われていなければ上記ステップS2に戻ってすべてのDMAバーストについて処理が終わるまで上記処理を繰り返す。
 図6は、図5のデータ処理ステップの動作を示すフローチャートである。本フローは、図5のステップS8及びステップS11の詳細フローである。
 図5のステップS8又はステップS11でNdが入力されると、ステップS21で補間手段430は補間開始フラグを待つ。
 ステップS22では、補間手段430は補間開始フラグを受け取ったか否かを判別する。補間開始フラグを受け取っていない場合は、上記ステップS21に戻って補間開始フラグを待つ。
 補間開始フラグを受け取った場合は、ステップS23で補間手段430は可変サイズブロックバッファ440内のデータが演算処理レベルLcに対して十分か否かを判別する。
 可変サイズブロックバッファ440内に演算処理レベルLcに対する十分なデータが存在している場合は、ステップS24で補間手段430は所定の補間フィルタを使用してピクセル補間を計算する。可変サイズブロックバッファ440内に演算処理レベルLcに対する十分なデータが存在していない場合は、図5のステップS8又はステップS11に戻る。
 ステップS25では、補間手段430は補間完了フラグを生成し、Nd=0に設定して図5のステップS8又はステップS11に戻る。
 このように、本実施の形態によれば、動き補償装置101Cは、パディング手段450と、ワード整列手段460、及びクロマインターリーブ手段470を備え、可変サイズブロックバッファ440は、クロマインターリーブ手段470により再配列されたピクセルデータ441を入力し、バッファリングされたピクセルデータ442を補間手段430に出力する。動き補償装置101Cは、参照ピクセルデータを可変サイズブロックバッファ440に格納する前に、パディング処理、ワード整列処理、クロミナンス成分インターリーブ処理を設定することができ、DMAコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができる。さらに、動き補償装置101Cは、パディング、ワード整列、及びクロミナンス成分のデインターリーブの実行をフレキシブルに設定することにより、DMAコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。
 (実施の形態5)
 図7は、本発明の実施の形態5に係るビデオ符号化・復号化装置の構成を示す図である。図1と同一構成部分には同一番号を付して重複箇所の説明を省略する。
 図7において、ビデオ符号化・復号化装置500は、動き補償装置501と、メモリアクセス調停手段510と、N個のビデオデコーダエンジン120-1,120-2,…,120-Nと、フレームバッファ150とを備えて構成される。
 動き補償装置501は、ダイレクトメモリアクセス手段560、可変サイズブロックバッファ570、補間手段580、及び選択器590を備え、パフォーマンス及びメモリサイズをフレキシブルに設定できるように設計されている。
 動き補償装置501は、動き補償の結果を、補間出力592端子を通じて別のビデオデコーダエンジンに出力する、又は、メモリアクセス調停手段510に接続されているDMA出力データポートを通じてフレームバッファ150に出力するように設定することができる。
 ダイレクトメモリアクセス手段560は、補間完了を受け取った後にDMA要求を生成し、DMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、参照ピクセルデータを出力し、複数個のDMA入力データを受け取った後、DMA完了を生成し、次いで、補間開始を生成し、バッファリングされた補間データを受け取り、それらを、所定のダイレクトメモリアクセスプロトコルに従うことによってDMA出力データ端子を通じてメモリアクセス調停手段510に送り、参照ピクセルデータを可変サイズブロックバッファに格納するためと、バッファリングされた補間データを可変サイズブロックバッファ570から取得するためのアドレスを、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って生成する。
 可変サイズブロックバッファ570は、参照ピクセルデータ、及び選択された補間データ591を受け取る入力端子を有し、フレームバッファ150からダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを補間手段580に提供し、選択された補間データを格納し、バッファリングされた補間データをダイレクトメモリアクセス手段560に提供する。
 選択器590は、補間されたデータを受け取る入力端子を有し、復号化パラメータによって制御され、ビデオデコーダエンジンのうちの1つに補間出力を提供するため補間されたデータを動き補償装置の出力端子に出力する、又は、選択された補間データを提供するため補間されたデータを可変サイズブロックバッファ570に出力する。
 以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
 動き補償装置501は、復号化パラメータ561と、演算処理レベルLC562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って、DMA要求511を発行する。動き補償装置501は、DMA ACK512を受け取った後、複数個のDMA入力データ514を受け取り、次いで、DMA完了515を発行する。動き補償装置501は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、自身の補間出力592端子を通じてビデオデコーダエンジン120-1,120-2,…,120-Nのうちの1つに出力する、又は、補間されたデータを、DMA出力データ513ポートを通じてDMAを使用してメモリアクセス調停手段510に出力する。
 メモリアクセス調停手段510は、動き補償装置からDMA要求511を受け取る。メモリアクセス調停手段510はまた、複数個のビデオデコーダエンジン120-1,120-2,…,120-NからそれぞれエンジンDMAバス516,517,518を通じてDMA要求を受け取り、DMA要求を優先順位付けし、DMA ACK512を、所定のDMA優先度リストに従って動き補償装置501及び複数個のビデオデコーダエンジン120-1,120-2,…,120-Nに送る。そして、メモリアクセス調停手段510は、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを動き補償装置501に提供し、DMA出力データ513を動き補償装置501から受け取り、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファにデータを書き込む。
 複数個のビデオデコーダエンジン120-1,120-2,…,120-Nは、それぞれエンジンDMAバス516,517,518を通じてメモリアクセス調停手段510に接続されている。フレームバッファ150は、メインDMAバス151を通じてメモリアクセス調停手段510に接続されている。
 ダイレクトメモリアクセス手段560は、DMA ACK512を受け取った後、最大DMAバースト制約563及びブロックバッファサイズ制約564に従って、複数個のDMA入力データ514を受け取り、参照ピクセルデータを出力する。ダイレクトメモリアクセス手段560は、複数個のDMA入力データ514を受け取った後、DMA完了515を生成し、次いで、補間開始582を生成する。ダイレクトメモリアクセス手段560は、バッファリングされた補間データ574を受け取り、所定のダイレクトメモリアクセスプロトコルに従うことによって、それらを自身のDMA出力データ513端子を通じてメモリアクセス調停手段510に送る。ダイレクトメモリアクセス手段560は、復号化パラメータ561と、演算処理レベルLc562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って、参照ピクセルデータを格納するためのブロックバッファアドレスを生成し、バッファリングされた補間データ574を可変サイズブロックバッファ570から取得する。
 可変サイズブロックバッファ570は、外部のフレームバッファ150からダイレクトメモリアクセスを通じて取得した参照ピクセル571を格納し、バッファリングされたピクセルデータ572を補間手段580に提供する。可変サイズブロックバッファ570は、選択された補間データ591を格納し、バッファリングされた補間データ574をダイレクトメモリアクセス手段560に提供する。
 補間手段580は、バッファリングされたピクセルデータ572に所定の補間フィルタを適用することによって複数個の補間されたデータを計算して出力し、すべての補間されたデータ583を計算した後、補間完了581を生成する。
 選択器590は、復号化パラメータ561によって制御され、ビデオデコーダエンジンのうちの1つに補間出力592を提供するため補間されたデータ583を動き補償装置501の出力端子に出力する、又は、選択された補間データ591を提供するため補間されたデータ583を可変サイズブロックバッファ570に出力する。
 このように、本実施の形態によれば、動き補償装置501は、補間されたデータ583を動き補償装置501の出力端子に出力する、又は可変サイズブロックバッファ570に出力するかを選択する選択器590を備えているので、以下の効果を得ることができる。
 例えば、動き補償の後に次の処理が要求される一連のビデオコーデック(例えば、H.264ビデオコーデック)用のパイプライン構成において、動き補償の後のさらなる処理のため、動き補償装置501の演算処理の結果を別のビデオデコーダエンジンに送る、又は、動き補償の後、復号化ループに次の処理が存在しない別の一連のビデオコーデック(例えば、MPEG4ビデオコーデック)の場合、DMAアクセスを通じて外部のフレームバッファ150に出力されるように動き補償装置501の中のブロックバッファにバッファリングしておくなどの選択が可能になる。
 (実施の形態6)
 図8は、本発明の実施の形態6に係るビデオ符号化・復号化装置の構成を示す図である。図7と同一構成部分には同一番号を付して重複箇所の説明を省略する。
 図8において、ビデオ符号化・復号化装置600は、動き補償装置501と、メモリアクセス調停手段610と、システムパフォーマンス制御手段620、N個のビデオデコーダエンジン120-1,120-2,…,120-Nと、フレームバッファ150とを備えて構成される。
 動き補償装置501は、動き補償の結果を、補間出力592端子を通じて別のビデオデコーダエンジンに出力する、又は、メモリアクセス調停手段610に接続されているDMA出力データポートを通じてフレームバッファ150に出力するように設定することができる。
 メモリアクセス調停手段610は、動き補償装置501からDMA要求を受け取り、かつ複数のビデオデコーダエンジン120-1,120-2,…,120-NからDMA要求を、エンジンDMAバス116~118を通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って動き補償装置501及び複数のビデオデコーダエンジン120-1,120-2,…,120-Nに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを動き補償装置501に提供し、DMA出力データを動き補償装置501から受け取り、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込み、動き補償装置501及びエンジンDMAバスからのDMA要求のメモリアクセスステータスを監視し、DMAバスステータスを生成する。
 システムパフォーマンス制御手段620は、メモリアクセス調停手段610からのDMAバスステータスを受け取る入力端子を有し、メモリアクセス調停手段610に接続されている動き補償装置501及びエンジンDMAバスからのDMA要求の詳細な使用状況を含んでいるDMAバスステータスに基づいて、演算処理レベルLc及び最大DMAバースト制約を動的に変える。
 以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
 動き補償装置501は、復号化パラメータ561と、演算処理レベルLc562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って、DMA要求511を発行する。動き補償装置501は、DMA ACK512を受け取った後、複数個のDMA入力データ514を受け取り、次いで、DMA完了515を発行する。動き補償装置501は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、自身の補間出力592端子を通じてビデオデコーダエンジン120-1,120-2,…,120-Nのうちの1つに出力する、又は、補間されたデータを、DMA出力データ513ポートを通じてDMAを使用してメモリアクセス調停手段610に出力する。
 メモリアクセス調停手段610は、動き補償装置501からDMA要求511を受け取る。メモリアクセス調停手段610はまた、複数個のビデオデコーダエンジン120-1,120-2,…,120-NからそれぞれエンジンDMAバス116~118を通じてDMA要求を受け取り、DMA要求を優先順位付けし、DMA ACK512を、所定のDMA優先度リストに従って動き補償装置501及び複数個のビデオデコーダエンジン120-1,120-2,…,120-Nに送る。そして、メモリアクセス調停手段610は、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを動き補償装置501に提供し、DMA出力データ513を動き補償装置501から受け取り、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込む。その後、メモリアクセス調停手段610は、動き補償装置501及びエンジンDMAバスからのDMA要求511のメモリアクセスステータスを監視し、DMAバスステータス611を生成する。
 システムパフォーマンス制御手段620は、メモリアクセス調停手段610に接続されている動き補償装置501及びエンジンDMAバス116~118からのDMA要求の詳細な使用状況を含んでいるDMAバスステータス611に基づいて、演算処理レベルLc561及び最大DMAバースト制約563を動的に導く。
 複数個のビデオデコーダエンジン120-1,120-2,…,120-Nは、それぞれエンジンDMAバス116~118を通じてメモリアクセス調停手段610に接続されている。フレームバッファ150は、メインDMAバス151を通じてメモリアクセス調停手段510に接続されている。
 ダイレクトメモリアクセス手段560は、DMA ACK512を受け取った後、最大DMAバースト制約563及びブロックバッファサイズ制約564に従って、複数個のDMA入力データ514を受け取り、参照ピクセルデータを出力する。ダイレクトメモリアクセス手段560は、複数個のDMA入力データ514を受け取った後、DMA完了515を生成し、次いで、補間開始582を生成する。ダイレクトメモリアクセス手段560は、バッファリングされた補間データ574を受け取り、所定のダイレクトメモリアクセスプロトコルに従うことによって、それらを自身のDMA出力データ513端子を通じてメモリアクセス調停手段610に送る。ダイレクトメモリアクセス手段560は、参照ピクセルデータを格納するためと、バッファリングされた補間データ574を可変サイズブロックバッファ570から取得するためのブロックバッファアドレスを、復号化パラメータと、演算処理レベルLc562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って生成する。
 可変サイズブロックバッファ570は、外部のフレームバッファ150からダイレクトメモリアクセスを通じて取得した参照ピクセルデータ571を格納し、バッファリングされたピクセルデータ572を補間手段580に提供する。可変サイズブロックバッファ570は、選択された補間データを格納し、バッファリングされた補間データ574をダイレクトメモリアクセス手段560に提供する。
 補間手段580は、バッファリングされたピクセルデータ572に所定の補間フィルタを適用することによって、複数個の補間されたデータを計算して出力し、すべての補間されたデータ583を計算した後、補間完了581を生成する。
 選択器590は、復号化パラメータによって制御され、ビデオデコーダエンジンのうちの1つに補間出力592を提供するため補間されたデータ583を動き補償装置501の出力端子に出力する、又は、選択された補間データ591を提供するため補間されたデータ583を可変サイズブロックバッファ570に出力する。
 このように、本実施の形態によれば、ビデオ符号化・復号化装置600は、システムパフォーマンス制御手段620が、動き補償装置501及びエンジンDMAバスからのDMA要求の詳細な使用状況を含んでいるDMAバスステータスに基づいて、演算処理レベルLc及び最大DMAバースト制約を動的に導くので、システムパフォーマンスを事前定義する、又は、動き補償装置に適用される指定されるシステムパフォーマンス制約、あるいはDMAバスのトラフィックの動的な状況に基づいて、小さなサイズの複数個のDMA要求を組み合わせる、あるいは大きなDMAバーストアクセスを小さなサイズの複数個のDMA要求に分割することができる。これにより、システムパフォーマンスを自動的に設定することができ、演算処理レベルLcを、演算処理ロジックの複雑さに従って事前定義する、又は、DMAバスのトラフィックの状況に従って動的に導くことができる。その結果、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置501に適用されるシステムリソース制約に従って設定することができる。DMA要求のサイズ及び演算処理レベルLcを動的に設定することによって、システムは、システム全体の処理スループットをリアルタイムで最適化して、動き補償装置501とそれ以外のビデオデコーダエンジンとの間でパフォーマンスのバランスをとることができる。
 以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
 また、本実施の形態では、ビデオ符号化・復号化装置という名称を用いたが、これは説明の便宜上であり、復号化装置、デジタルビデオ復号化システム等であってもよいことは勿論である。
 さらに、上記ビデオ符号化・復号化装置を構成する動き補償装置、ビデオデコーダエンジン、バッファの種類、その数及び接続方法などの構成例などは前述した各実施の形態に限られない。
 2008年4月30日出願の特願2008-119267の日本出願に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
 本発明に係るビデオ符号化・復号化装置は、高いスループットのビデオ符号化・復号化を実行する装置に好適である。また、ビデオ符号化・復号化と、電子システム内の複数のコンポーネントとが外部メモリの使用を共有し、ビデオ符号化・復号化を実行する電子システムに適用可能である。例えば、外部メモリへの頻繁なアクセスを必要とする高度なビデオ規格(H.264/AVC、SMPTE VC1、China AVSなど)においてリアルタイムでのビデオ復号化を達成することができる。また、電子デバイスのアクセラレータ用として、システムコストの所定の制限とシステムパフォーマンスの要件とを指定することによってさまざまなビデオエンコーダ及びビデオデコーダに統合される包括的な動き補償装置を提供することができる。さらに、デジタルビデオエンコーダ及びデコーダにおいて使用するための動き補償装置に適用可能である。
 100,500,600 ビデオ符号化・復号化装置
 101,101A,101B,101C,501 動き補償装置
 110,510,610 メモリアクセス調停手段
 120-1,120-2,…,120-N ビデオデコーダエンジン
 150 フレームバッファ
 160,560 ダイレクトメモリアクセス手段
 170,240,340,440,570 可変サイズブロックバッファ
 180,580 補間手段
 200,300,400 DMAコマンド生成器
 210,310,410 バッファアドレス生成手段
 220,320,420 設定可能シーケンサ
 230,330,430 補間手段
 250 データ整列手段
 350 パディング手段
 360,460 ワード整列手段
 370,470 クロマインターリーブ手段
 590 選択器
 620 システムパフォーマンス制御手段
 

Claims (8)

  1.  動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置であって、
     複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンDMAバスと、
     フレームバッファと、前記フレームバッファに接続されているメインDMAバスと、
     復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、及びブロックバッファサイズ制約に従って、DMA要求を発行し、DMA ACKを受け取った後に複数個のDMA入力データを受け取り、DMA完了を発行し、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを前記複数のビデオデコーダエンジンの1つに出力する動き補償装置と、
     前記動き補償装置からDMA要求を受け取り、かつ前記複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込むメモリアクセス調停手段と、
     を備えるビデオ符号化・復号化装置。
  2.  前記動き補償装置は、
     補間手段から補間完了を受け取った後にDMA要求を生成し、前記メモリアクセス調停手段からDMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファに格納するためのブロックメモリアドレスを生成するとともに、参照ピクセルデータを可変サイズブロックバッファに出力し、前記メモリアクセス調停手段から複数個のDMA入力データを受け取った後、DMA完了を生成し、補間開始を生成するダイレクトメモリアクセス手段と、
     復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、複数のバッファリングされたピクセルデータに所定の補間フィルタを適用することによって複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成する補間手段と、
     前記フレームバッファからダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを前記補間手段に提供する可変サイズブロックバッファと、
     を備えるビデオ符号化・復号化装置。
  3.  前記動き補償装置は、
     復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力するDMAコマンド生成器と、
     復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送するバッファアドレス生成手段と、
     チャネル化されたDMA入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたDMA入力データを、ブロックバッファアドレスに従って所定位置に格納し、動き補償処理のためにバッファリングされたピクセルデータを出力する可変サイズブロックバッファと、
     復号化パラメータ、クロマインターリーブフラグ、バッファリングされたピクセルデータを受け取る入力端子を有し、復号化パラメータの一部としての動きベクトルによって示されるビデオフレーム内の位置と、前記フレームバッファにおけるクロミナンスデータ形式を示すクロマインターリーブフラグとに従って、バッファリングされたピクセルデータを再配置し、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータを提供し、ワード境界再配置によって不要なデータを削除し、クロマインターリーブフラグが設定されている場合、インターリーブされたクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化するデータ整列手段と、
     復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
     復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
     を備える請求項1記載のビデオ符号化・復号化装置。
  4.  前記動き補償装置は、
     復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力するDMAコマンド生成器と、
     復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ入力端子を通じてパディング手段に転送するバッファアドレス生成手段と、
     再配置されたピクセルデータと、ブロックバッファアドレスをバッファアドレス生成手段から受け取る入力端子を有し、再配置されたピクセルデータを、バッファアドレス生成手段によって生成されたブロックバッファアドレスに従って適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータを補間手段に出力する可変サイズブロックバッファと、
     復号化パラメータと、参照ピクセルデータを前記バッファアドレス生成手段から受け取る入力端子を有し、ビデオフレーム境界の外側に位置する参照ピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、前記参照ピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定するパディング手段と、
     復号化パラメータと、パディングされたピクセルデータを前記パディング手段から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定するワード整列手段と、
     復号化パラメータと、整列したピクセルデータを前記ワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成するクロマインターリーブ手段と、
     復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
     復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
     を備える請求項1記載のビデオ符号化・復号化装置。
  5.  前記動き補償装置は、
     復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力するDMAコマンド生成器と、
     復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送するバッファアドレス生成手段と、
     チャネル化されたDMA入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたDMA入力データを、ブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータを出力する可変サイズブロックバッファと、
     復号化パラメータと、バッファリングされたピクセルデータを前記可変サイズブロックバッファから受け取る入力端子とを有し、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定するパディング手段と、
     復号化パラメータと、パディングされたピクセルデータを前記パディング手段から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定するワード整列手段と、
     復号化パラメータと、整列したピクセルデータを前記ワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成するクロマインターリーブ手段と、
     復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
     復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
     を備える請求項1記載のビデオ符号化・復号化装置。
  6.  前記動き補償装置は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、補間出力端子を通じて前記ビデオデコーダエンジンの1つに出力する、又は、DMA出力データポートを通じてDMAを使用して前記メモリアクセス調停手段に出力し、
     前記メモリアクセス調停手段は、前記動き補償装置からDMA要求を受け取り、かつ前記複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、DMA出力データを前記動き補償装置から受け取り、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込む請求項1記載のビデオ符号化・復号化装置。
  7.  前記ダイレクトメモリアクセス手段は、補間完了を受け取った後にDMA要求を生成し、DMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、参照ピクセルデータを出力し、複数個のDMA入力データを受け取った後、DMA完了を生成し、補間開始を生成し、バッファリングされた補間データを受け取り、それらを、所定のダイレクトメモリアクセスプロトコルに従うことによってDMA出力データ端子を通じて前記メモリアクセス調停手段に送り、参照ピクセルデータを可変サイズブロックバッファに格納するためと、バッファリングされた補間データを可変サイズブロックバッファから取得するためのアドレスを、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って生成し、
     さらに、復号化パラメータ、及び補間されたデータを受け取る入力端子を有し、復号化パラメータによって制御され、前記ビデオデコーダエンジンのうちの1つに補間出力を提供するため補間されたデータを前記動き補償装置の出力端子に出力する、又は、選択された補間データを提供するため補間されたデータを可変サイズブロックバッファに出力する選択器と、
     参照ピクセルデータ、及び選択されたデータを受け取る入力端子を有し、前記フレームバッファからダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを前記補間手段に提供し、選択された補間データを格納し、バッファリングされた補間データを前記ダイレクトメモリアクセス手段に提供する可変サイズブロックバッファと、
     を備える請求項1記載のビデオ符号化・復号化装置。
  8.  前記メモリアクセス調停手段は、前記動き補償装置からDMA要求を受け取り、かつ複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、DMA出力データを前記動き補償装置から受け取り、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込み、前記動き補償装置及び前記エンジンDMAバスからのDMA要求のメモリアクセスステータスを監視し、DMAバスステータスを生成し、
     さらに、前記メモリアクセス調停手段からのDMAバスステータス、及び復号化パラメータを受け取る入力端子を有し、前記メモリアクセス調停手段に接続されている前記動き補償装置及び前記エンジンDMAバスからのDMA要求の詳細な使用状況を含んでいるDMAバスステータスに基づいて、演算処理レベルLc及び最大DMAバースト制約を動的に変えるシステムパフォーマンス制御手段
     を備える請求項1記載のビデオ符号化・復号化装置。
     
PCT/JP2009/001850 2008-04-30 2009-04-22 ビデオ符号化・復号化装置 WO2009133671A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2009801148713A CN102017638A (zh) 2008-04-30 2009-04-22 视频编码/解码装置
US12/937,159 US20110032995A1 (en) 2008-04-30 2009-04-22 Video encoding and decoding device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008119267A JP2009272724A (ja) 2008-04-30 2008-04-30 ビデオ符号化・復号化装置
JP2008-119267 2008-04-30

Publications (1)

Publication Number Publication Date
WO2009133671A1 true WO2009133671A1 (ja) 2009-11-05

Family

ID=41254896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/001850 WO2009133671A1 (ja) 2008-04-30 2009-04-22 ビデオ符号化・復号化装置

Country Status (4)

Country Link
US (1) US20110032995A1 (ja)
JP (1) JP2009272724A (ja)
CN (1) CN102017638A (ja)
WO (1) WO2009133671A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924914B2 (en) * 2005-09-20 2011-04-12 Intel Corporation Dynamically configuring a video decoder cache for motion compensation
US9232233B2 (en) * 2011-07-01 2016-01-05 Apple Inc. Adaptive configuration of reference frame buffer based on camera and background motion
US8732352B1 (en) 2013-01-25 2014-05-20 Apple Inc. Dynamic allocation of buffers for direct memory access
CN104618717B (zh) * 2013-11-05 2018-01-16 瑞昱半导体股份有限公司 行与块的整合转换方法及其计算机可读取存储介质
US9367491B2 (en) * 2013-12-31 2016-06-14 Global Unichip, Corp. Method and apparatus for on-the-fly learning traffic control scheme
WO2016173032A1 (zh) * 2015-04-30 2016-11-03 华为技术有限公司 通信方法和装置
US9883194B2 (en) * 2015-06-15 2018-01-30 Microsoft Technology Licensing, Llc Multiple bit rate video decoding
CN105959622B (zh) * 2016-04-28 2019-05-28 浪潮(北京)电子信息产业有限公司 一种应用于多路视频采播系统的缓存仲裁方法及系统
CN117615153A (zh) * 2017-08-29 2024-02-27 株式会社Kt 视频解码和编码方法及用于存储压缩视频数据的装置
MX2021008963A (es) 2019-02-02 2021-08-24 Beijing Bytedance Network Tech Co Ltd Manejo de bufer para copia intra-bloque en codificacion de video.
CN113366846A (zh) * 2019-02-02 2021-09-07 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区更新
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
EP3915252A4 (en) 2019-03-04 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. IMPLEMENTATION OF ASPECTS IN AN INTRA BLOCK COPY IN VIDEO ENCODING
CA3132485A1 (en) * 2019-03-12 2020-09-17 Tencent America LLC Method and apparatus for video encoding or decoding
JP2022539468A (ja) 2019-07-06 2022-09-09 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための仮想予測バッファ
CN114175633B (zh) 2019-07-10 2023-12-29 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的样点标识
KR20220030957A (ko) 2019-07-11 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 비트스트림 적합 제약
WO2021132158A1 (ja) * 2019-12-23 2021-07-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US11622106B2 (en) * 2021-05-17 2023-04-04 Meta Platforms, Inc. Supporting multiple partition sizes using a unified pixel input data interface for fetching reference pixels in video encoders

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10133997A (ja) * 1996-11-01 1998-05-22 Fuji Xerox Co Ltd Dma制御装置
JP2007158550A (ja) * 2005-12-01 2007-06-21 Matsushita Electric Ind Co Ltd 画像処理装置及び画像処理方法
JP2007258882A (ja) * 2006-03-22 2007-10-04 Matsushita Electric Ind Co Ltd 画像復号装置
JP2007274383A (ja) * 2006-03-31 2007-10-18 Oki Electric Ind Co Ltd 画像処理用データ転送回路
JP2007304908A (ja) * 2006-05-12 2007-11-22 Sharp Corp データ転送処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920352A (en) * 1994-10-28 1999-07-06 Matsushita Electric Industrial Co., Ltd. Image memory storage system and method for a block oriented image processing system
GB9704027D0 (en) * 1997-02-26 1997-04-16 Discovision Ass Memory manager for mpeg decoder
US6215822B1 (en) * 1997-12-30 2001-04-10 Sony Corporation Motion compensated digital video decoding and buffer memory addressing therefor
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
US7218842B1 (en) * 2001-07-25 2007-05-15 Cisco Technology, Inc. Efficient methods of performing motion compensation based decoding and recoding of compressed video bitstreams
US7253818B2 (en) * 2001-08-07 2007-08-07 Ati Technologies, Inc. System for testing multiple devices on a single system and method thereof
US7590473B2 (en) * 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10133997A (ja) * 1996-11-01 1998-05-22 Fuji Xerox Co Ltd Dma制御装置
JP2007158550A (ja) * 2005-12-01 2007-06-21 Matsushita Electric Ind Co Ltd 画像処理装置及び画像処理方法
JP2007258882A (ja) * 2006-03-22 2007-10-04 Matsushita Electric Ind Co Ltd 画像復号装置
JP2007274383A (ja) * 2006-03-31 2007-10-18 Oki Electric Ind Co Ltd 画像処理用データ転送回路
JP2007304908A (ja) * 2006-05-12 2007-11-22 Sharp Corp データ転送処理装置

Also Published As

Publication number Publication date
US20110032995A1 (en) 2011-02-10
CN102017638A (zh) 2011-04-13
JP2009272724A (ja) 2009-11-19

Similar Documents

Publication Publication Date Title
WO2009133671A1 (ja) ビデオ符号化・復号化装置
US7773676B2 (en) Video decoding system with external memory rearranging on a field or frames basis
US7403564B2 (en) System and method for multiple channel video transcoding
US8442107B2 (en) Memory mapping apparatus and method for video decoder/encoder
KR100376607B1 (ko) 통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체
JP4909779B2 (ja) 画像データ転送方法、画像処理装置、及び撮像システム
JP2022522682A (ja) 出力レイヤセットをサブピクチャでシグナリングするための方法、コンピュータシステム、およびコンピュータプログラム
US8165219B2 (en) Memory word array organization and prediction combination for memory access
KR20000057466A (ko) 엠펙 호환 가능한 디코더 내의 선택 압축 네트워크
JPH10145739A (ja) メモリを共用するビデオ及び/又はオーディオ脱圧縮及び/又は圧縮装置
KR100298397B1 (ko) 비디오디코딩시스템
WO2014079303A1 (zh) 一种视频多画面合成方法、装置和系统
US20070014367A1 (en) Extensible architecture for multi-standard variable length decoding
JP2009267837A (ja) 復号化装置
CN105472442A (zh) 一种用于超高清帧率上变换的片外缓存压缩系统
US8238434B2 (en) Apparatus and method for processing wavelet information
US10356439B2 (en) Flexible frame referencing for display transport
US7675972B1 (en) System and method for multiple channel video transcoding
US20030123555A1 (en) Video decoding system and memory interface apparatus
US6144323A (en) Method and apparatus for decoding video data
JP2013543664A (ja) 広色域動画を取り込むための方法およびシステム
JP3078990B2 (ja) 低遅延モード画像復号方法
KR0180167B1 (ko) 영상부호화를 위한 프레임 재배열 장치
KR100504507B1 (ko) 비디오 디코딩 시스템
KR20230022061A (ko) 디코딩 장치 및 그의 동작 방법

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980114871.3

Country of ref document: CN

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

Ref document number: 09738608

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12937159

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09738608

Country of ref document: EP

Kind code of ref document: A1