WO2006129518A1 - メモリアクセス方法 - Google Patents

メモリアクセス方法 Download PDF

Info

Publication number
WO2006129518A1
WO2006129518A1 PCT/JP2006/310196 JP2006310196W WO2006129518A1 WO 2006129518 A1 WO2006129518 A1 WO 2006129518A1 JP 2006310196 W JP2006310196 W JP 2006310196W WO 2006129518 A1 WO2006129518 A1 WO 2006129518A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
bank
image data
access method
Prior art date
Application number
PCT/JP2006/310196
Other languages
English (en)
French (fr)
Inventor
Akira Okamoto
Original Assignee
Megachips Corporation
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 Megachips Corporation filed Critical Megachips Corporation
Priority to US11/916,127 priority Critical patent/US7979622B2/en
Priority to JP2006519711A priority patent/JP5147102B2/ja
Publication of WO2006129518A1 publication Critical patent/WO2006129518A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/423Methods 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 characterised by memory arrangements
    • 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
    • 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

Definitions

  • the present invention relates to a memory access method, and more particularly to a memory access method used in a transcoder processing device.
  • FIG. 20 is a block diagram showing a configuration of a conventional transcoder processing device disclosed in Patent Document 1 below.
  • decoder 201 includes functional means for decoding encoded image data and extracting the first motion vector in units of small blocks.
  • the conversion processing unit 203 reduces the first motion vector to calculate the third motion vector, the third motion vector included in the small block to be recoded, and the surrounding third motion vector.
  • the function means that uses the smallest norm sum of the second motion vector as the second motion vector, the function means that uses the minimum value as the evaluation value, and the higher the accuracy of the motion vector represented by the evaluation value, the narrower
  • a functional unit that determines a search range for each small block and determines a priority according to an evaluation value or a re-search range.
  • the re-search processing unit 204 re-searches in the re-search range corresponding to the priorities in the order of the priorities, and obtains a motion vector nore at the time of re-encoding.
  • Patent Document 1 Japanese Patent Laid-Open No. 2002-344971 (abstract)
  • DDR Double (Double)
  • a memory such as a (Data Rate) memory
  • Data Rate Data Rate
  • the present invention was made in order to solve an enormous problem.
  • a memory access method that can improve performance by eliminating idle time between accesses for memory that requires a predetermined number of clock cycles or more between previous and next access. The purpose is to obtain.
  • the memory access method according to the first invention has a plurality of banks including the first and second banks, and when accessing the same bank continuously, a predetermined number of clocks are accessed between the previous and subsequent accesses.
  • a memory access method for a memory that is required to have an interval equal to or greater than a clock cycle, and the two-dimensional image data to be written to the memory includes a plurality of data for each amount of data that can be transferred by one burst transfer.
  • the two-dimensional image data write operation to the memory is divided into groups, and (a) included in the plurality of data groups within the predetermined number of clock cycles so that writing to the same bank is not continued.
  • the memory access method according to the second invention is the memory access method according to the first invention.
  • each of the first and second data groups is the two-dimensional data stored in the memory.
  • the image data is divided into a plurality of rows and is arranged, the first data group is arranged in an odd row, and the second data group is arranged in an even row.
  • the memory access method according to the third invention has a plurality of banks including the first and second banks, and when accessing the same bank continuously, a predetermined number of clocks are accessed between the previous and subsequent accesses.
  • This is a memory access method for memory that is required to have an interval equal to or greater than the clock cycle, and the 2D image data stored in the memory is stored for each amount of data that can be transferred by one burst transfer.
  • the two-dimensional image data is read out from the memory after being divided into a plurality of data groups, and the read operation of the two-dimensional image data from the memory is performed as follows: (a ) A step of reading out the first bank power of the first data group included in the plurality of data groups; and (b) second data continuous to the first data group.
  • the memory access method according to the fourth invention is the memory access method according to the first or third invention, particularly for extracting the motion vector of the block of interest in the two-dimensional image data.
  • a plurality of data groups included in a reference block expected to be a block move destination and a plurality of data groups included in a plurality of blocks defined adjacent to the reference block are consecutive from the memory. It is characterized by being read out automatically.
  • the memory access method according to the fifth invention is the memory access method according to the first or third invention, particularly for the first bank during the access to the first bank.
  • the second bank is more effective than the access to the first bank in response to the other access request. Access to is given priority.
  • the memory access method according to the sixth invention is the memory access method according to the first or third invention, in particular, each of n (n: the number of the plurality of banks) corresponding to different banks.
  • the two-dimensional image data is configured so that a data set constituted by data groups continuing in the row direction is repeatedly arranged in each row of the two-dimensional image data stored in the memory. A data group to be recorded is written in the memory.
  • the first and second data groups are continuously connected by switching the first and second banks when writing the two-dimensional image data into the memory. Can be written. As a result, it is possible to avoid or reduce the idle time that occurs between previous and subsequent accesses, and to improve performance.
  • the memory access method of the second invention by reading the first data group from the memory, it is possible to read only odd-numbered rows of data in the two-dimensional image data.
  • the second data group By reading out the second data group from, it is possible to read out only an even number of rows of 2D image data. As a result, it is possible to easily read interlaced images.
  • the first and second data groups are linked by switching the first and second banks when reading the two-dimensional image data from the memory. It can be read continuously. As a result, it is possible to avoid or reduce the idle time that occurs between previous and subsequent accesses, and to improve performance.
  • the memory access method of the fourth invention when a memory capable of high-speed data transfer by burst transfer is used, a large number of data groups included in a large number of blocks can be operated in one operation. By transferring data continuously, the efficiency of data transfer can be improved compared to a method in which a small number of data groups are transferred multiple times.
  • the memory access method of the fifth aspect of the present invention it is possible to effectively use the free time generated between the preceding and succeeding access to the first bank, and the first bank in response to another access request. Compared with the case where the second bank is accessed after the access to the network is completed, the overall processing time can be reduced.
  • each of the n pieces of data corresponding to different banks Groups are read in order.
  • idle time between previous and subsequent accesses can be avoided or reduced, and performance can be improved.
  • FIG. 1 is a block diagram showing a configuration of a transcoder processing device according to an embodiment of the present invention.
  • FIG. 2 is a schematic diagram for explaining a first motion vector extraction process in a motion search unit.
  • FIG. 3 is a schematic diagram for explaining a first motion vector extraction process in a motion search unit.
  • FIG. 4 is a schematic diagram for explaining a first motion vector extraction process in a motion search unit.
  • FIG. 5 is a schematic diagram for explaining a second motion vector extraction process in a motion search unit.
  • FIG. 6 is a timing chart for explaining the read characteristics of DDR2.
  • FIG. 7 is a timing chart for explaining the write characteristics of DDR2.
  • FIG. 8 is a timing chart for explaining the sequence of writing decoded data to the memory.
  • FIG. 9 is a diagram for sequentially explaining a method of mapping decoded data to a memory.
  • FIG. 10 is a diagram for sequentially explaining a method of mapping decoded data to a memory.
  • FIG. 11 is a diagram for sequentially explaining a method of mapping decoded data to a memory.
  • FIG. 12 is a diagram for sequentially explaining a method of mapping decoded data to a memory.
  • FIG. 13 is a diagram for sequentially explaining a method of mapping decoded data to a memory.
  • FIG. 14 is a diagram for sequentially explaining a method of mapping decoded data to a memory.
  • FIG. 15 is a diagram for sequentially explaining a method of mapping decoded data to a memory.
  • FIG. 16 is a diagram showing two-dimensional image data stored in a memory.
  • FIG. 17 is a timing chart for explaining a data read sequence from the memory.
  • FIG. 18 is a diagram showing a modification of the arrangement of 2D image data stored in a memory.
  • FIG. 19 is a timing chart for explaining the processing when a free time occurs between previous and subsequent accesses.
  • FIG. 20 is a block diagram showing a configuration of a conventional transcoder processing device.
  • FIG. 1 is a block diagram showing a configuration of a transcoder processing device according to an embodiment of the present invention.
  • code data is encoded in MPEG2 format and re-encoded into code data in H.264 format.
  • the transcoder processing device includes a memory decoder 2, a motion search unit 3, and an encoder 4.
  • Memory 1 has multiple banks, and when accessing the same bank continuously, This memory is required to have an interval of a predetermined number of clock cycles (hereinafter abbreviated as “cycle”) between previous and subsequent accesses.
  • the bit stream of the encoded data D1 encoded in the MPEG2 format is written in the buffer area 5.
  • the code data D1 is, for example, 8-bit YUV420 format image data.
  • the amount of data per pixel is 12 bits.
  • the transcoder processing device according to the present embodiment is not limited to the 8-bit YUV420 format, and can process image data in any other format.
  • the decoder 2 decodes the bit stream of the code key data D1 read from the nother area 5, and outputs the decoded data D2.
  • the decoded data D2 is written into the memory 1, and thereby the 2D image data is stored in the memory 1.
  • the writing sequence of the 2D image data stored in the memory 1 and the decoded data D2 to the memory 1 will be described in detail later.
  • the decoder 2 extracts information on the motion vector included in the code key data D1, and inputs it to the motion search unit 3 as data D3.
  • the motion search unit 3 Based on the data D3, the motion search unit 3 reads data D4 related to the reference block from the two-dimensional image data stored in the memory 1. Then, the motion vector of the block of interest is obtained by the block matching method and input to encoder 4 as data D5. The processing in the motion search unit 3 will be described in detail later.
  • the encoder 4 creates encoded data D6 re-encoded in the H.264 format based on the data D5, and writes the bit stream of the encoded data D6 into the buffer area 6.
  • the bit stream of the sign key data D6 is read from the notfer area 6.
  • bit stream of the code key data D1 may be directly input to the decoder 2 without going through the nother area 5, and the bit stream of the code key data D6 is passed through the buffer area 6. It may be output directly without any error.
  • the motion search unit 3 determines the position of the block of interest BLO (16 pixels each in vertical and horizontal directions) in the 2D image data of the nth frame and the data D3 related to the motion vector VO input from the decoder 2. Based on the above, the block BL1 (16 pixels each in vertical and horizontal directions) that is expected to be the movement destination of the block of interest BLO is determined in the 2D image data of the n ⁇ l frame.
  • the motion search unit 3 defines a reference block BL2 (18 pixels in each direction) that is 1 pixel larger and smaller in size in the vertical and horizontal directions than the block BL1 around the block BL1.
  • the data D4 of the portion corresponding to the reference block BL2 is read from the two-dimensional image data of the (n ⁇ 1) th frame stored in the memory 1. The sequence for reading data D4 from memory 1 will be described in detail later.
  • motion search unit 3 determines the similarity at each position while sequentially moving the target block BLO in the reference block BL2, and the target block BLO in the reference block BL2. Find the location most similar to.
  • a method for determining the similarity a known block matching method is used, the difference between the pixel values of each pixel in the block of interest BLO and each pixel in the reference block BL2 is obtained, and the similarity is determined by the sum of the absolute values of the differences. judge.
  • the similarity is the highest at the location of the target block BLO shown in FIG. 3 (the upper left corner of the reference block BL2).
  • the motion search unit 3 uses the reference block BL3 in the upper left corner of the reference block BL2 as a center, and the reference block BL3 (size 1 pixel larger than the target block BLO in the vertical and horizontal directions). Specify 18 pixels each in vertical and horizontal directions. Then, the data D4 of the portion corresponding to the reference block BL3 is read out from the n ⁇ 1th frame of 2D image data stored in the memory 1. Then, in the same manner as described above, the block matching method is used to find the location most similar to the target block BLO in the reference block BL3. In FIG. 4, the portion most similar to the target block BLO in the reference block BL3 is extracted as a block BL4 (16 pixels in each direction).
  • motion search unit 3 converts block BL4 into four small blocks BL4a to 4d. (Each 8 pixels each in vertical and horizontal directions), then, centering on the small block BL4a, the vertical block and horizontal direction of the small block BL4a are each 1 pixel larger ⁇ -size reference block BL5 (10 pixels in vertical and horizontal directions) Is specified. Then, the data D4 of the portion corresponding to the reference block BL5 is read out from the n 1st frame of 2D image data stored in the memory 1. Then, the optimal motion vector for the small block BL4a is obtained by performing similarity determination by the block matching method as described above. The same processing is performed for the small blocks BL4b to BL4d, and the optimum motion vector for the small blocks BL4b to BL4d is obtained.
  • FIG. 5 is a schematic diagram for explaining the second motion vector extraction process in the motion search unit 3.
  • the motion search unit 3 In the 2D image data, the block BL1 that is expected to be the destination of the target block BLO is determined.
  • the motion search unit 3 defines blocks BLla to BLlh (all 16 pixels vertically and horizontally) adjacent to the block BL1 in the vertical and horizontal directions and in the diagonal direction.
  • an area RA of 48 pixels in both vertical and horizontal directions centering on the block BL1 is defined.
  • the size of the area RA is not limited to 48 pixels vertically and horizontally, and can be set to any size by changing the size of the blocks BLla to BLlh.
  • the motion search unit 3 continuously reads out the data D4 of the portion corresponding to the region RA from the two-dimensional image data of the (n-1) th frame stored in the memory 1. . Then, by sequentially moving the block of interest BLO in the region RA and determining the similarity by the block matching method at each position, the most similar portion of the block of interest BLO in the region RA is searched. Next, similarly to the processing shown in FIG. 4, the block most similar to the target block BLO in the region RA is divided into four small blocks, and the optimum motion vector for each small block is obtained.
  • Figure 6 is a timing chart for explaining the read characteristics of DDR2.
  • the data D4 and D4 forces to be read in this order are both in the 0th van.
  • Reading starts from the rising edge of clock C12. As a result, considering that the burst length is 8, reading of data D4 is completed and reading of force data D4 is completed.
  • FIG. 7 is a timing chart for explaining the write characteristics of DDR2.
  • the data D2 and D2 to be written in this order are both written to the 0th bank 70.
  • the subsequent data D2 is written at clock C15
  • the read sequence is defined as follows.
  • FIG. 8 is a timing chart for explaining a write sequence of the decoded data D2 to the memory 1.
  • the data D2, D2, D2, D2, D2, D2, D2,. The data is written in the 0th node 70, the 1st bank 71, the 2nd bank 72, the 3rd bank 73, the 0th node 70,. Because it is a continuous access to different banks, between data D2 and data D2
  • the transcoder processing device even when DDDR 2 is used as memory 1, the empty space that is generated when decoding data D 2 is written from decoder 2 to memory 1. Since time can be avoided or reduced, performance can be improved.
  • FIGS. 9 to 15 are diagrams for sequentially explaining the mapping method of the decoded data D 2 to the memory 1.
  • a total of six macroblocks MB11 to MB13, MB21 to MB23 (each 16 pixels in length and width) of 2 rows ⁇ 3 columns are representatively shown.
  • 256 bits of data can be transferred in a single burst transfer, and the amount of data per pixel is 12 bits, so a maximum of 21 pixels of data can be transferred in a single burst transfer.
  • the transcoder processing device is assumed to transfer data for 20 pixels in one burst transfer.
  • the macro block MB11 is divided into two in 10 pixel units and arranged in the first row, first to tenth columns and the third row, first to first: L0 columns of the macroblock MB11.
  • the number given in each pixel means the number of the bank where the pixel data is written.
  • the data D2 for 20 pixels written to the first bank 71 is
  • FIG. 1 By repeating the same processing as data D2 for data D2 to D2, FIG.
  • the arrangement of the macroblock MB11 from the 1st to 16th rows and the 11th to 16th columns is completed. That is, the writing of data to the macroblock MB11 is completed.
  • FIG. 16 is a diagram showing the 2D image data stored in the memory 1, and corresponds to the 2D image data shown in FIG.
  • the reference block BL2 is defined at the location indicated by the alternate long and short dash line in FIG.
  • the readout operation when the motion search unit 3 performs the first motion vector extraction process (see FIGS. 2 to 4) will be described.
  • the second motion vector extraction process (see FIG. 5) Even when performing the above, the basic operation is the same.
  • the memory block MB 12 is arranged in the ninth row, the fifth to the 14th column, and the eleventh row, the fifth to the 14th column. 20 pixels of data D4 1S Read from the 0th bank 70. Next, the memory
  • Reading is performed in the order of D4. After that, switch the column to display data D4 to D4.
  • FIG. 17 is a timing chart for explaining a read sequence of data D4 from the memory 1.
  • the data D4, D4, D4, D4, D4,... Force to be read in this order are the 0th bank 70 and the 1st bank, respectively.
  • D4 is the force data read from bank 0 70
  • the burst length of data D4 to D4 is
  • transcoder processing device even when DDDR2 is used as memory 1, empty space generated when motion search unit 3 reads data D4 from memory 1 Since time can be avoided or reduced, performance can be improved.
  • data D4, D4, D4,..., D4 may be read in this order.
  • the interlaced reference block BL2 Since the data is automatically read out, the interlaced reference block BL2 is easy. Can get to.
  • the transcoder processing apparatus Since it is located outside the illumination block BL2, it is originally data that does not need to be read. However, since the transcoder processing apparatus according to the present embodiment assumes burst transfer with a data group of 20 pixels as one unit, these unnecessary data are also read out from the memory 1 to perform motion search. Forwarded to part 3.
  • FIG. 18 is a diagram showing a modification of the arrangement of the two-dimensional image data stored in the memory 1.
  • odd-numbered rows correspond to the 0th bank 70 and the second bank 72
  • even-numbered rows correspond to the first bank 71 and the third bank 73. It was.
  • the correspondence between the odd / even rows and the bank numbers is opposite to the two-dimensional image data shown in FIG. ing. According to the example shown in FIG.
  • data corresponding to all banks from the 0th bank 70 to the 3rd bank 73 is included in the data set for 40 columns continuous in one row! /. Since the number of macroblocks is actually large, the data set for 1 row x 40 columns (that is, the data set including data corresponding to all banks) is the first of the 2D image data. It will be arranged repeatedly in one line. In the above, the same applies to all the lines after the second line of force explained by taking the first line of 2D image data as an example.
  • the 2D image data shown in FIG. 18 is read out by raster scanning, for example, when the first row of 2D image data is scanned in the left edge force right direction, the 0th bank 70, the second bank 72, First bank 71, third bank 73, ... are accessed in this order. In other words, four banks are accessed in order and read. Therefore, as in the example shown in FIG. 17, there is no idle time between previous and subsequent accesses when performing a raster scan. Therefore, the 2D image data shown in FIG. 18 is used when the 2D image data stored in the memory 1 is raster-scanned and displayed on a display (not shown). Especially effective.
  • FIG. 19 is a timing chart for explaining the processing when a free time occurs between previous and subsequent accesses.
  • write data D2W go to bank 0 70
  • Data D4R is read from the clock because it starts from the rising edge of the power clock CO.
  • the data D4R is read from the 0th bank 70.
  • the transcoder processing device has a function of reading the two-dimensional image data stored in the memory 1 and displaying the image on a display (not shown). Real-time processing is required for reading 2D image data to display an image, so this process (reading 2D image data for display) has the highest priority when idle time occurs. To run. In other words, the priority of reading processing of 2D image data for display is the first.
  • Data D4 (see Figure 5) has a large amount of data.
  • the motion search unit 3 in order for the motion search unit 3 to proceed quickly, it is necessary to quickly transfer the data D4 from the memory 1 to the motion search unit 3. Therefore, when free time occurs, the data D4 reading process is executed prior to the above-described 2D image data reading process for display. In other words, the priority of reading processing of data D4 is set to second.
  • encoded data D1 is data encoded in the MPEG2 format. Therefore, the data volume is small. In addition, the number of times of switching between read access and write access to the memory 1 needs to be suppressed as much as possible. Therefore, when free time occurs, the process of reading the encoded data D1 from the buffer area 5 is executed prior to the process of reading the data D4. In other words, the priority of read processing of encoded data D1 is set to No. 3.
  • the code data D6 is data encoded in the H.264 format, so the data amount is small.
  • the number of switching between read access and write access to memory 1 must be minimized. Therefore, when free time occurs, the process of reading the encoded data D6 from the buffer area 6 is executed prior to the process of reading the encoded data D1. In other words, the priority of read processing of encoded data D6 is set to No. 4.
  • the decoded data D2 written from the decoder 2 to the memory 1 is a large amount of data because the encoded data D1 is decoded. Therefore, when free time occurs, the process of writing the decoded data D2 to the memory 1 is executed prior to the process of reading the encoded data D6. In other words, the priority of the decryption data D2 writing process is 5th.
  • the encoded data D1 is data encoded in the MPEG2 format
  • the amount of data is small. Therefore, when free time occurs, the process of writing the encoded data D1 into the nother area 5 is executed prior to the process of writing the data D2. In other words, the priority of the writing process of the code key data D1 is set to No. 6.
  • the code data D6 is data encoded in the H.264 format, so the data amount is small. Therefore, when free time occurs, the process of writing the encoded data D6 to the buffer area 6 is executed with priority over the process of writing the encoded data D1. In other words, the priority of the encoded data D6 writing process is 7.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Input (AREA)

Abstract

 同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求されるメモリを対象として、アクセス間の空き時間を解消してパフォーマンスを向上し得る、メモリアクセス方法を得る。  データ(D21,D22,D23,D24)が、それぞれ第0バンク(70)、第1バンク(71)、第2バンク(72)、第3バンク(73)に書き込まれる。異なるバンクへの連続アクセスであるため、互いに連続するデータ間には空き時間は発生しない。また、データ(D21~D24)のバースト長がいずれも8であるため、データ(D21)の書き込みが開始されてからデータ(D25)の書き込みが開始されるまでの間には、15サイクル以上の16サイクルの間隔が空いている。従って、データ(D21)の書き込みが終了してからデータ(D25)の書き込みが開始されるまでの間にも空き時間は発生しない。

Description

明 細 書
メモリアクセス方法
技術分野
[0001] 本発明は、メモリアクセス方法に関し、特に、トランスコーダ処理装置に用いられるメ モリへのアクセス方法に関する。
背景技術
[0002] 画像符号ィ匕データを異なるビットレートに再符号ィ匕する従来のトランスコーダ処理 装置が、下記特許文献 1に開示されている。図 20は、下記特許文献 1に示された従 来のトランスコーダ処理装置の構成を示すブロック図である。図 20を参照して、復号 器 201は、画像符号化データを復号し、その小ブロック単位の第 1の動きベクトルを 抽出する機能手段を備える。変換処理部 203は、第 1の動きベクトルを縮小して第 3 の動きベクトルを算出する機能手段と、再符号化対象の小ブロックに含まれる第 3の 動きベクトルと周囲の第 3の動きベクトルとのノルムの和が最小のものを第 2の動きべ タトルとする機能手段と、その最小値を評価値とする機能手段と、該評価値が表す動 きベクトルの精度が高いほど狭くした再探索範囲を小ブロック毎に決定し、評価値又 は再探索範囲に応じて優先度を決定する機能手段とを備える。再探索処理部 204 は、該優先度の順に該優先度に対応した再探索範囲で再探索し再符号ィ匕時の動き ベクトノレを求める。
[0003] 特許文献 1 :特開 2002— 344971号公報(要約書)
発明の開示
発明が解決しょうとする課題
[0004] し力しながら、上記特許文献 1に示された従来のトランスコーダ処理装置によると、 復号器 201から出力された復号画像データを格納しておくためのメモリとして、例え ば DDR (Double Data Rate)メモリのような、同一バンクへ連続してアクセスする際に は前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求され るメモリが採用された場合の対策がとられて 、な 、と 、う問題がある。
[0005] 本発明は力かる問題を解決するために成されたものであり、同一バンクへ連続して アクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空け ることが要求されるメモリを対象として、アクセス間の空き時間を解消してパフオーマン スを向上し得る、メモリアクセス方法を得ることを目的とする。
課題を解決するための手段
[0006] 第 1の発明に係るメモリアクセス方法は、第 1及び第 2のバンクを含む複数のバンク を有し、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロ ックサイクル以上の間隔を空けることが要求されるメモリを対象とした、メモリアクセス 方法であって、前記メモリへ書き込むべき 2次元画像データは、一度のバースト転送 によって転送可能なデータ量ごとに複数のデータ群に分割され、前記メモリへの前記 2次元画像データの書き込み動作は、同一バンクへの書き込みが連続しないよう、前 記所定数のクロックサイクル内において、(a)前記複数のデータ群に含まれる第 1の データ群を、前記第 1のバンクに書き込むステップと、 (b)前記第 1のデータ群に連続 する第 2のデータ群を、前記第 2のバンクに書き込むステップとを有することを特徴と する。
[0007] 第 2の発明に係るメモリアクセス方法は、第 1の発明に係るメモリアクセス方法にお いて特に、前記第 1及び第 2のデータ群はそれぞれ、前記メモリ内に格納された前記 2次元画像データ内においては複数行に分割されて配置され、前記第 1のデータ群 は奇数行に配置され、前記第 2のデータ群は偶数行に配置されることを特徴とする。
[0008] 第 3の発明に係るメモリアクセス方法は、第 1及び第 2のバンクを含む複数のバンク を有し、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロ ックサイクル以上の間隔を空けることが要求されるメモリを対象とした、メモリアクセス 方法であって、前記メモリ内に格納されている 2次元画像データは、一度のバースト 転送によって転送可能なデータ量ごとに複数のデータ群に分割されて前記メモリから 読み出され、前記メモリからの前記 2次元画像データの読み出し動作は、同一バンク 力もの読み出しが連続しないよう、前記所定数のクロックサイクル内において、(a)前 記複数のデータ群に含まれる第 1のデータ群を、前記第 1のバンク力 読み出すステ ップと、(b)前記第 1のデータ群に連続する第 2のデータ群を、前記第 2のバンクから 読み出すステップとを有することを特徴とする。 [0009] 第 4の発明に係るメモリアクセス方法は、第 1又は第 3の発明に係るメモリアクセス方 法において特に、前記 2次元画像データ内の着目ブロックの動きベクトルを抽出する ために、前記着目ブロックの移動先と予想される参照ブロック内に含まれる複数のデ ータ群と、前記参照ブロックに隣接して規定される複数のブロック内に含まれる複数 のデータ群とが、前記メモリから連続的に読み出されることを特徴とする。
[0010] 第 5の発明に係るメモリアクセス方法は、第 1又は第 3の発明に係るメモリアクセス方 法において特に、前記第 1のバンクにアクセスしている途中に、前記第 1のバンクに 対する他のアクセス要求が発生した場合において、前記第 2のバンクに対するァクセ ス要求も発生しているときには、前記他のアクセス要求に応じた前記第 1のバンクへ のアクセスよりも、前記第 2のバンクへのアクセスが優先されることを特徴とする。
[0011] 第 6の発明に係るメモリアクセス方法は、第 1又は第 3の発明に係るメモリアクセス方 法において特に、いずれも異なるバンクに対応する n個(n:前記複数のバンクの個数 )のデータ群が行方向に連続することによって構成されるデータ集合が、前記メモリ 内に格納された前記 2次元画像データの各行内にぉ 、て繰り返し配置されるように、 前記 2次元画像データを構成するデータ群が前記メモリに書き込まれることを特徴と する。
発明の効果
[0012] 第 1の発明に係るメモリアクセス方法によれば、メモリへ 2次元画像データを書き込 む際に第 1及び第 2のバンクを切り換えることにより、第 1及び第 2のデータ群を連続 して書き込むことができる。その結果、前後のアクセス間に生じる空き時間を回避又 は低減でき、パフォーマンスの向上を図ることができる。
[0013] 第 2の発明に係るメモリアクセス方法によれば、メモリから第 1のデータ群を読み出 すことによって、 2次元画像データのうちの奇数行のデータのみを読み出すことがで き、メモリから第 2のデータ群を読み出すことによって、 2次元画像データのうちの偶 数行のデータのみを読み出すことができる。その結果、インタレース方式の画像を容 易に読み出すことが可能となる。
[0014] 第 3の発明に係るメモリアクセス方法によれば、メモリから 2次元画像データを読み 出す際に第 1及び第 2のバンクを切り換えることにより、第 1及び第 2のデータ群を連 続して読み出すことができる。その結果、前後のアクセス間に生じる空き時間を回避 又は低減でき、パフォーマンスの向上を図ることができる。
[0015] 第 4の発明に係るメモリアクセス方法によれば、バースト転送によって高速なデータ 転送が可能なメモリを使用した場合に、多数のブロック内に含まれる多数のデータ群 を 1回の動作で連続的に転送することにより、少数のデータ群を複数回に分けて転送 する方法と比較すると、データ転送の効率を高めることができる。
[0016] 第 5の発明に係るメモリアクセス方法によれば、第 1のバンクに対する前後のァクセ ス間に生じる空き時間を有効に利用することができ、他のアクセス要求に応じた第 1 のバンクへのアクセスが完了した後に第 2のバンクへアクセスする場合と比較すると、 全体として処理時間の短縮ィ匕を図ることができる。
[0017] 第 6の発明に係るメモリアクセス方法によれば、メモリ内に格納されている 2次元画 像データを行方向へのスキャンによって読み出す場合、いずれも異なるバンクに対 応する n個のデータ群が順番に読み出される。その結果、行方向へのスキャンを行う 場合にも、前後のアクセス間に生じる空き時間を回避又は低減でき、パフォーマンス の向上を図ることができる。
[0018] この発明の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによ つて、より明白となる。
図面の簡単な説明
[0019] [図 1]本発明の実施の形態に係るトランスコーダ処理装置の構成を示すブロック図で ある。
[図 2]動き探索部における第 1の動きベクトル抽出処理を説明するための模式図であ る。
[図 3]動き探索部における第 1の動きベクトル抽出処理を説明するための模式図であ る。
[図 4]動き探索部における第 1の動きベクトル抽出処理を説明するための模式図であ る。
[図 5]動き探索部における第 2の動きベクトル抽出処理を説明するための模式図であ る。 [図 6]DDR2の読み出し特性を説明するためのタイミングチャートである。
[図 7]DDR2の書き込み特性を説明するためのタイミングチャートである。
[図 8]メモリへの復号データの書き込みシーケンスを説明するためのタイミングチヤ一 トである。
[図 9]メモリへの復号データのマッピング方法を順に説明するための図である。
[図 10]メモリへの復号データのマッピング方法を順に説明するための図である。
[図 11]メモリへの復号データのマッピング方法を順に説明するための図である。
[図 12]メモリへの復号データのマッピング方法を順に説明するための図である。
[図 13]メモリへの復号データのマッピング方法を順に説明するための図である。
[図 14]メモリへの復号データのマッピング方法を順に説明するための図である。
[図 15]メモリへの復号データのマッピング方法を順に説明するための図である。
[図 16]メモリ内に格納されて 、る 2次元画像データを示す図である。
[図 17]メモリからのデータの読み出しシーケンスを説明するためのタイミングチャート である。
[図 18]メモリ内に格納されている 2次元画像データの配置の変形例を示す図である。
[図 19]前後のアクセス間に空き時間が発生した場合の処理を説明するためのタイミン グチャートである。
[図 20]従来のトランスコーダ処理装置の構成を示すブロック図である。
発明を実施するための最良の形態
[0020] 以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異な る図面において同一の符号を付した要素は、同一又は相当する要素を示すものとす る。
[0021] 図 1は、本発明の実施の形態に係るトランスコーダ処理装置の構成を示すブロック 図である。本実施の形態に係るトランスコーダ処理装置では、一例として、 MPEG2 フォーマットで符号ィ匕された符号ィ匕データ力 H. 264フォーマットの符号ィ匕データに 再符号化されるものとする。
[0022] トランスコーダ処理装置は、メモリ 復号器 2、動き探索部 3、及び符号器 4を備え ている。メモリ 1は、複数のバンクを有し、同一バンクへ連続してアクセスする際には 前後のアクセス間に所定数のクロックサイクル (以下「サイクル」と略す)以上の間隔を 空けることが要求されるメモリである。本実施の形態に係るトランスコーダ処理装置で は、メモリ 1として、バス幅が 32ビットであり、バースト長が 8であり、 4個のバンク(第 0 ノ ンク 70、第 1バンク 71、第 2バンク 72、及び第 3バンク 73)を有する DDR2を想定し ている。バス幅が 32ビットで、バースト長が 8であるため、一度のバースト転送で 256 ( = 32 X 8)ビットのデータを転送することが可能である。また、メモリ 1の記憶領域の一 部は、ノ ッファ領域 5, 6として割り当てられている。
[0023] MPEG2フォーマットで符号化された符号化データ D1のビットストリームは、バッフ ァ領域 5に書き込まれる。本実施の形態に係るトランスコーダ処理装置では、符号ィ匕 データ D1は、一例として、 8ビットの YUV420形式の画像データであるものとする。 8 ビットの YUV420形式の場合は、 1ピクセルあたりのデータ量は 12ビットとなる。なお 、本実施の形態に係るトランスコーダ処理装置は、 8ビットの YUV420形式に限らず 、他の任意の形式の画像データを処理することが可能である。
[0024] 復号器 2は、ノ ッファ領域 5から読み出した符号ィ匕データ D1のビットストリームを復 号して、復号データ D2を出力する。復号データ D2はメモリ 1に書き込まれ、これによ り、メモリ 1内に 2次元画像データが格納される。メモリ 1内に格納された 2次元画像デ ータ、及びメモリ 1への復号データ D2の書き込みシーケンスについては、後に詳述 する。また、復号器 2は、符号ィ匕データ D1内に含まれている動きベクトルに関する情 報を抽出して、データ D3として動き探索部 3に入力する。
[0025] 動き探索部 3は、データ D3に基づき、メモリ 1内に格納されている 2次元画像データ の中から、参照ブロックに関するデータ D4を読み出す。そして、ブロックマッチング法 によって着目ブロックの動きベクトルを求め、データ D5として符号器 4に入力する。動 き探索部 3における処理については、後に詳述する。
[0026] 符号器 4は、データ D5に基づいて、 H. 264フォーマットで再符号化された符号ィ匕 データ D6を作成し、符号化データ D6のビットストリームをバッファ領域 6に書き込む。 符号ィ匕データ D6のビットストリームは、ノ ッファ領域 6から読み出される。
[0027] なお、符号ィ匕データ D1のビットストリームは、ノ ッファ領域 5を介さずに復号器 2に 直接入力されてもよいし、符号ィ匕データ D6のビットストリームは、バッファ領域 6を介 さずに直接出力されてもょ ヽ。
[0028] <動き探索部 3における第 1の処理 >
図 2〜4は、動き探索部 3における第 1の動きベクトル抽出処理を説明するための模 式図である。図 2を参照して、動き探索部 3は、第 nフレームの 2次元画像データ内に おける着目ブロック BLO (縦横各 16ピクセル)の位置と、復号器 2から入力された動き ベクトル VOに関するデータ D3とに基づいて、第 n—lフレームの 2次元画像データ 内において着目ブロック BLOの移動先と予想されるブロック BL1 (縦横各 16ピクセル )を割り出す。次に、動き探索部 3は、ブロック BL1を中心として、ブロック BL1よりも縦 方向及び横方向にそれぞれ士 1ピクセル大き 、サイズの参照ブロック BL2 (縦横各 1 8ピクセル)を規定する。そして、メモリ 1内に格納されている第 n—1フレームの 2次元 画像データの中から、参照ブロック BL2に対応する部分のデータ D4を読み出す。メ モリ 1からのデータ D4の読み出しシーケンスについては、後に詳述する。
[0029] 図 3を参照して、次に、動き探索部 3は、参照ブロック BL2内で着目ブロック BLOを 順次移動させながら、各位置において類似度を判定し、参照ブロック BL2内で着目 ブロック BLOに最も類似している箇所を求める。類似度の判定手法としては、周知の ブロックマッチング法を用い、着目ブロック BLO内の各ピクセルと参照ブロック BL2内 の各ピクセルとの画素値の差分を求め、差分の絶対値の総和によって類似度を判定 する。ここでは、図 3に示した着目ブロック BLOの箇所 (参照ブロック BL2の左上隅) で、類似度が最も高力つたものとする。
[0030] 次に、動き探索部 3は、参照ブロック BL2の左上隅の着目ブロック BLOを中心として 、その着目ブロック BLOよりも縦方向及び横方向にそれぞれ士 1ピクセル大きいサイ ズの参照ブロック BL3 (縦横各 18ピクセル)を規定する。そして、メモリ 1内に格納され ている第 n—1フレームの 2次元画像データの中から、参照ブロック BL3に対応する 部分のデータ D4を読み出す。そして、上記と同様に、ブロックマッチング法によって 、参照ブロック BL3内で着目ブロック BLOに最も類似している箇所を求める。図 4に は、参照ブロック BL3内で着目ブロック BLOに最も類似している箇所を、ブロック BL4 (縦横各 16ピクセル)として抜き出して示している。
[0031] 図 4を参照して、次に、動き探索部 3は、ブロック BL4を 4個の小ブロック BL4a〜4d (いずれも縦横各 8ピクセル)に区切り、その後、小ブロック BL4aを中心として、小ブ ロック BL4aよりも縦方向及び横方向にそれぞれ士 1ピクセル大き ヽサイズの参照ブ ロック BL5 (縦横各 10ピクセル)を規定する。そして、メモリ 1内に格納されている第 n 1フレームの 2次元画像データの中から、参照ブロック BL5に対応する部分のデー タ D4を読み出す。そして、上記と同様にブロックマッチング法によって類似判定を行 うことにより、小ブロック BL4aに関する最適動きベクトルを求める。小ブロック BL4b〜 BL4dについても同様の処理を行い、小ブロック BL4b〜: BL4dに関する最適動きべ タトルをそれぞれ求める。
[0032] <動き探索部 3における第 2の処理 >
図 5は、動き探索部 3における第 2の動きベクトル抽出処理を説明するための模式 図である。まず、動き探索部 3は、第 nフレームの 2次元画像データ内における着目ブ ロック BLOの位置と、復号器 2から入力された動きベクトル VOに関するデータ D3とに 基づいて、第 n— 1フレームの 2次元画像データ内において着目ブロック BLOの移動 先と予想されるブロック BL1を割り出す。次に、動き探索部 3は、上下左右方向及び 斜め方向でブロック BL1に隣接するブロック BLla〜BLlh (いずれも縦横各 16ピク セル)を規定する。これにより、ブロック BL1を中心とした、縦横各 48ピクセルの領域 RAが規定される。但し、領域 RAのサイズは縦横各 48ピクセルに限らず、ブロック BL la〜BLlhのサイズを変更することにより、任意のサイズに設定することが可能である
[0033] 次に、動き探索部 3は、メモリ 1内に格納されている第 n—1フレームの 2次元画像デ ータの中から、領域 RAに対応する部分のデータ D4を連続的に読み出す。そして、 領域 RA内で着目ブロック BLOを順次移動させながら、各位置においてブロックマツ チング法によって類似度を判定することにより、領域 RA内で着目ブロック BLO〖こ最も 類似している箇所を探索する。次に、図 4に示した処理と同様に、領域 RA内で着目 ブロック BLOに最も類似しているブロックを 4個の小ブロックに区切り、各小ブロックに 関する最適動きベクトルをそれぞれ求める。
[0034] < DDR2の読み出し特性及び書き込み特性 >
以下、図 1に示したメモリ 1として使用される DDR2の読み出し特性及び書き込み特 性について説明する。図 6は、 DDR2の読み出し特性を説明するためのタイミングチ ヤートである。図 6では、この順に読み出すべきデータ D4 , D4力 いずれも第 0バン
1 2
ク 70に書き込まれている場合を想定している。 DDR2では、例えば 12サイクルで同 一バンク力ものデータの読み出しが可能である。つまり、図 6に示した例では、データ D4の読み出しがクロック COの立ち上がりから開始されているため、続くデータ D4の
1 2 読み出しは、クロック C12の立ち上がりから開始されることとなる。その結果、バースト 長が 8であることを考慮すると、データ D4の読み出しが終了して力 データ D4の読
1 2 み出しが開始されるまでの間に、例えば 8サイクルの空き時間が発生してしまう。
[0035] 図 7は、 DDR2の書き込み特性を説明するためのタイミングチャートである。図 7で は、この順に書き込むべきデータ D2 , D2を、いずれも第 0バンク 70に書き込む場
1 2
合を想定している。 DDR2では、例えば 15サイクルで同一バンクへのデータの書き 込みが可能である。つまり、図 7に示した例では、データ D2の書き込みがクロック CO
1
の立ち上がりから開始されているため、続くデータ D2の書き込みは、クロック C15の
2
立ち上がりから開始されることとなる。その結果、バースト長が 8であることを考慮する と、データ D2の書き込みが終了して力 データ D2の書き込みが開始されるまでの
1 2
間に、例えば 11サイクルの空き時間が発生してしまう。
[0036] また、図 6, 7には示していないが、 DDR2では、同一バンクに対する読み出しァク セス及び書き込みアクセスをこの順に連続させる場合には、例えば 7サイクルの空き 時間が発生してしまい、同一バンクに対する書き込みアクセス及び読み出しアクセス をこの順に連続させる場合には、例えば 12サイクルの空き時間が発生してしまう。
[0037] そこで、本実施の形態に係るトランスコーダ処理装置では、前後のアクセス間に空 き時間が発生しないように、メモリ 1への復号データ D2の書き込みシーケンス、及びメ モリ 1からのデータ D4の読み出しシーケンスを、以下のように規定する。
[0038] <メモリ 1への書き込みシーケンス >
まず、復号器 2からメモリ 1への復号データ D2の書き込みシーケンスについて説明 する。図 8は、メモリ 1への復号データ D2の書き込みシーケンスを説明するためのタイ ミングチャートである。図 1, 8を参照して、本実施の形態に係るトランスコーダ処理装 置では、この順に書き込むべきデータ D2 , D2 , D2 , D2 , D2 , · · ·力 それぞれ 第 0ノ ンク 70、第 1バンク 71、第 2バンク 72、第 3バンク 73、第 0ノ ンク 70、 · · ·に書き 込まれる。異なるバンクへの連続アクセスであるため、データ D2とデータ D2との間
1 2
、データ D2とデータ D2との間、データ D2とデータ D2との間、及びデータ D2とデ
2 3 3 4 4 ータ D2との間には、いずれも空き時間は発生しない。また、データ D2 , D2はいず
5 1 5 れも第 0バンク 70へ書き込まれる力 データ D2 〜D2のバースト長がいずれも 8であ
1 4
るため、データ D2の書き込みが開始されて力 データ D2の書き込みが開始される
1 5
までの間には、 15サイクル以上の 16サイクルの間隔が空いている。従って、データ D 2の書き込みが終了して力もデータ D2の書き込みが開始されるまでの間にも、空き
1 5
時間は発生しない。
[0039] このように本実施の形態に係るトランスコーダ処理装置によれば、メモリ 1として DD R2を用いた場合であっても、復号器 2からメモリ 1へ復号データ D2を書き込む際に 生じる空き時間を回避又は低減できるため、パフォーマンスの向上を図ることができ る。
[0040] 図 9〜15は、メモリ 1への復号データ D2のマッピング方法を順に説明するための図 である。ここでは図面の簡略化のため、 2行 X 3列の合計 6個のマクロブロック MB11 〜MB13, MB21〜MB23 (いずれも縦横各 16ピクセル)を代表的に示している。な お、一度のバースト転送で 256ビットのデータを転送可能であり、 1ピクセルあたりの データ量は 12ビットであるため、一度のバースト転送で最大 21ピクセル分のデータを 転送可能である。しかし、偶数個のピクセルのほうが扱いが容易であるため、本実施 の形態に係るトランスコーダ処理装置では、一度のバースト転送で 20ピクセル分の データが転送されるものとする。
[0041] 図 9を参照して、まず、第 0バンク 70に書き込まれる 20ピクセル分のデータ D2力
1
10ピクセル単位で 2つに分割されて、マクロブロック MB11の第 1行第 1〜10列と第 3 行第 1〜: L0列とに、それぞれ配置される。なお、各ピクセル内に付した数字は、その ピクセルのデータが書き込まれるバンクの番号を意味する。
[0042] 図 10を参照して、次に、第 1バンク 71に書き込まれる 20ピクセル分のデータ D2が
2
、同様に 10ピクセル単位で 2つに分割されて、マクロブロック MB11の第 2行第 1〜1 0列と第 4行第 1〜10列とに配置される。 [0043] バンクを切り換えながら下方向に向力つて書き込みが進行し、データ D2 , D2と同
1 2 様の処理がデータ D2〜D2についても繰り返されることにより、図 11に示すように、
3 8
マクロブロック MB 11の第 1〜 16行第 1〜 10列までの配置が完了する。
[0044] 図 12を参照して、第 2バンク 72に書き込まれる 20ピクセル分のデータ D2力 同様
9 に 10ピクセル単位で 2つに分割されて、マクロブロック MB11の第 1行第 11〜16列と 第 3行第 11〜16列とに、それぞれ配置される。なお、マクロブロック MB12〖こマスク 処理を施すことによって、 X印を付した部分のデータ D2がマクロブロック MB12に
9
書き込まれることが防止される。
[0045] データ D2と同様の処理をデータ D2 〜D2 についても繰り返すことにより、図 13
9 10 16
に示すように、マクロブロック MB11の第 1〜16行第 11〜16列までの配置が完了す る。つまり、マクロブロック MB11へのデータの書き込みが完了する。
[0046] 図 14を参照して、次に、データ D2〜D2 と同様の処理をデータ D2 〜D2 につ
9 16 17 24 いても繰り返すことにより、図 14に示すように、マクロブロック MB12の第 1〜16行第 1〜4列までの配置が完了する。なお、マクロブロック MB11にマスク処理を施すこと によって、 X印を付した部分のデータ D2 〜D2 がマクロブロック MB11に書き込ま
17 24
れることが防止される。
[0047] その後は、上記と同様の処理が繰り返されることにより、マクロブロック MB12, MB 13, MB21, MB22, MB23の順で書き込みが進行し、図 15に示した 2次元画像デ ータが得られる。
[0048] くメモリ 1からの読み出しシーケンス〉
次に、動き探索部 3によるメモリ 1からのデータ D4の読み出しシーケンスについて説 明する。図 16は、メモリ 1内に格納されている 2次元画像データを示す図であり、図 1 5に示した 2次元画像データに対応する。以下、図 16中に一点鎖線で示した箇所に 参照ブロック BL2が規定されたものと仮定する。また、以下では、動き探索部 3が第 1 の動きベクトル抽出処理(図 2〜4参照)を行う場合の読み出し動作について説明す るが、第 2の動きべ外ル抽出処理 (図 5参照)を行う場合であっても、基本的な動作 の内容は同様である。
[0049] まず、メモリブロック MB 12の第 9行第 5〜 14列及び第 11行第 5〜 14列に配置され ている 20ピクセル分のデータ D4 1S 第 0バンク 70から読み出される。次に、メモリブ
1
ロック MB12の第 10行第 5〜14列及び第 12行第 5〜14列に配置されている 20ピク セル分のデータ D4 1S 第 1バンク 71から読み出される。同様に、バンクを切り換えな
2
力 下方向に向力つて読み出しが進行することにより、データ D4 , D4 , D4 , · · · ,
3 4 5
D4 の順に読み出しが行われる。その後、列を切り換えて、データ D4 〜D4 がこ
10 11 20 の順に読み出され、さらに列を切り換えて、データ D4 〜D4 力この順に読み出され
21 30
る。
[0050] 図 17は、メモリ 1からのデータ D4の読み出しシーケンスを説明するためのタイミング チャートである。本実施の形態に係るトランスコーダ処理装置では、この順に読み出 されるべきデータ D4 , D4 , D4 , D4 , D4 , · · ·力 それぞれ第 0バンク 70、第 1バ
1 2 3 4 5
ンク 71、第 2バンク 72、第 3バンク 73、第 0バンク 70、 · · ·に書き込まれている。従つ て、読み出しの際には異なるバンクへの連続アクセスとなるため、データ D4とデータ
1
D4との間、データ D4とデータ D4との間、データ D4とデータ D4との間、及びデ
2 2 3 3 4
ータ D4とデータ D4との間には、いずれも空き時間は発生しない。また、データ D4
4 5 1
, D4はいずれも第 0バンク 70から読み出される力 データ D4〜D4のバースト長が
5 1 4 いずれも 8であるため、データ D4の読み出しが開始されて力 データ D4の読み出
1 5 しが開始されるまでの間には、 12サイクル以上の 16サイクルの間隔が空いている。 従って、データ D4の読み出しが終了して力 データ D4の読み出しが開始されるま
1 5
での間にも、空き時間は発生しない。
[0051] このように本実施の形態に係るトランスコーダ処理装置によれば、メモリ 1として DD R2を用いた場合であっても、動き探索部 3がメモリ 1からデータ D4を読み出す際に 生じる空き時間を回避又は低減できるため、パフォーマンスの向上を図ることができ る。
[0052] なお、図 16を参照して、インタレース方式の参照ブロック BL2が必要な場合には、 データ D4 , D4 , D4 , · · · , D4 の順に読み出しを行えばよい。例えばデータ D4
1 3 5 29 1 は、 10ピクセル単位で 2つに分割され、 10ピクセル分のデータが 2次元画像データ の奇数行に配置されている。従って、データ D4を読み出すことによって奇数 2行分
1
のデータが自動的に読み出されるため、インタレース方式の参照ブロック BL2を容易 に得ることができる。
[0053] また、データ D4〜D4 のうち図 16において砂地のハッチングを付した部分は、参
1 30
照ブロック BL2の外に配置されているため、本来ならば読み出しが不要なデータであ る。しかし、本実施の形態に係るトランスコーダ処理装置は、 20ピクセル分のデータ 群を一単位としたバースト転送を想定して 、るため、これらの不要なデータもメモリ 1 力 読み出されて動き探索部 3に転送される。
[0054] 参照ブロック BL2のデータを読み出す場合と同様に、図 3に示した参照ブロック BL 3のデータをメモリ 1から読み出す場合にも、動き探索部 3への不要なデータの転送 が行われる。従って、図 2〜4に示した方法によると、メモリ 1から動き探索部 3へ転送 されるデータの全転送量のうち、不要なデータの転送量が占める割合が大きくなる。
[0055] 一方、図 5に示した方法によると、互いに隣接するブロック BL1, BLla〜BLlh同 士の境界では不要なデータは発生せず、領域 RAの外周部分でしか不要なデータ は発生しない。そのため、メモリ 1から動き探索部 3へ転送されるデータの全転送量の うち、不要なデータの転送量が占める割合は、図 2〜4に示した方法よりも少なくなる
[0056] また、 DDR2ではバースト転送によって高速なデータ転送が可能であるため、少量 のデータを複数回に分けて転送する図 2〜4に示した方法よりも、多量のデータを 1 回で転送する図 5に示した方法のほうがデータ転送の効率が高い。
[0057] < 2次元画像データの配置の変形例 >
図 18は、メモリ 1内に格納されている 2次元画像データの配置の変形例を示す図で ある。図 15に示した例では、 2次元画像データ内の全領域において、奇数行が第 0 バンク 70及び第 2バンク 72に対応し、偶数行が第 1バンク 71及び第 3バンク 73に対 応していた。これに対し、図 18に示した 2次元画像データでは、全列中の半分の列 において、行の奇偶とバンク番号との対応関係が、図 15に示した 2次元画像データと は逆になつている。図 18に示した例によると、メモリブロック MB12, MB22の第 5〜1 6列、及びメモリブロック MB13, MB23の第 1〜8列においては、図 15に示した例と は逆に、奇数行が第 1バンク 71及び第 3バンク 73に対応し、偶数行が第 0バンク 70 及び第 2バンク 72に対応して 、る。 [0058] その結果、図 18に示した 2次元画像データの例えば第 1行を参照すると、左端のピ クセルを含む最初の 10列分が第 0バンク 70に対応し、次の 10列分が第 2バンク 72 に対応し、さらに次の 10列分が第 1バンク 71に対応し、さらに次の 10列分が第 3バン ク 73に対応している。つまり、 1行内で連続する 40列分のデータ集合の中に、第 0バ ンク 70から第 3バンク 73までの全てのバンクに対応するデータが含まれて!/、る。そし て、実際にはマクロブロックの個数は多数であるため、この 1行 X 40列分のデータ集 合(つまり、全てのバンクに対応するデータを含むデータ集合)が、 2次元画像データ の第 1行内において繰り返し配置されることになる。以上では 2次元画像データの第 1行を例にとり説明した力 第 2行以降の全ての行についても同様である。
[0059] 図 18に示した 2次元画像データをラスタスキャンによって読み出す場合、例えば 2 次元画像データの第 1行を左端力 右方向に走査する場合には、第 0バンク 70、第 2バンク 72、第 1バンク 71、第 3バンク 73、 · · ·の順にアクセスされる。つまり、 4個の バンクが順番にアクセスされて読み出しが行われる。そのため、図 17に示した例と同 様に、ラスタスキャンを行う場合にも前後のアクセス間に空き時間は発生しない。従つ て、図 18に示した 2次元画像データは、メモリ 1内に格納されている 2次元画像デー タをラスタスキャンしてディスプレイ(図示しな 、)に表示する等の用途がある場合に、 特に有効となる。
[0060] <空き時間が生じた場合の割り込み処理 >
図 19は、前後のアクセス間に空き時間が発生した場合の処理を説明するためのタ イミングチャートである。ここでは、データ D2Wの書き込みのために第 0バンク 70へ
0
アクセスしている途中に、第 0バンク 70からデータ D4Rを読み出すためのアクセス要
0
求が発生した場合を想定している。上記の通り、 DDR2では、同一バンクに対する書 き込みアクセス及び読み出しアクセスをこの順に連続させる場合には、 12サイクルの 空き時間が発生してしまう。つまり、図 19に示した例では、データ D2Wの書き込み
0
力クロック COの立ち上がりから開始されているため、データ D4Rの読み出しは、クロ
0
ック C16の立ち上がりから開始されることとなる。
[0061] このような場合にお 、て、データ D4Rを読み出すための第 0バンク 70へのアクセス
0
要求のほかに、他のバンクへのアクセス要求も発生している場合には、当該他のバン クへのアクセス要求を優先して処理する。例えば、データ D2Wの書き込みのために
1
第 1バンク 71へのアクセス要求が発生している場合には、図 19に示したように、第 0 バンク 70へのデータ D2Wの書き込みが終了した後、第 1バンク 71へのデータ D2W
0
の書き込みを行い、その後に、第 0バンク 70からのデータ D4Rの読み出しを行う。
1 0
[0062] これにより、空き時間を有効に利用することができ、データ D4Rを読み出した後に
0
データ D2Wを書き込む場合と比較すると、全体として処理時間の短縮化を図ること
1
ができる。
[0063] 以上では、同一バンクに対する書き込みアクセス及び読み出しアクセスをこの順に 連続させる場合の空き時間の有効利用について説明したが、同一バンクに対する複 数の書き込みアクセスを連続させる場合、同一バンクに対する複数の読み出しァクセ スを連続させる場合、又は、同一バンクに対する読み出しアクセス及び書き込みァク セスをこの順に連続させる場合にっ 、ても、上記と同様に他のバンクへのアクセス要 求を優先して処理することによって、空き時間を有効利用することが可能である。
[0064] 以下、空き時間が発生した場合に優先して実行する処理内容及び優先順位につ いて説明する。
[0065] 本実施の形態に係るトランスコーダ処理装置は、メモリ 1内に格納されている 2次元 画像データを読み出して、ディスプレイ(図示しない)に画像を表示する機能を有して いる。画像を表示するために 2次元画像データを読み出す処理にはリアルタイム性が 要求されるため、空き時間が発生した場合には、この処理 (表示のための 2次元画像 データの読み出し処理)を最優先に実行する。つまり、表示のための 2次元画像デー タの読み出し処理の優先順位を 1番とする。
[0066] 動き探索部 3がメモリ 1から読み出す参照ブロック BL2, BL3 (図 3参照)や領域 RA
(図 5参照)のデータ D4は、データ量が多い。また、動き探索部 3が速やかに処理を 進めるためには、メモリ 1から動き探索部 3へデータ D4を素早く転送する必要がある。 そこで、空き時間が発生した場合には、データ D4の読み出し処理を、上記表示のた めの 2次元画像データの読み出し処理に次いで優先して実行する。つまり、データ D 4の読み出し処理の優先順位を 2番とする。
[0067] 図 1を参照して、符号化データ D1は MPEG2フォーマットで符号化されたデータで あるため、データ量は少ない。また、メモリ 1に対する読み出しアクセスと書き込みァク セスとの切り換え回数は、なるべく抑える必要がある。そこで、空き時間が発生した場 合には、バッファ領域 5からの符号化データ D1の読み出し処理を、上記データ D4の 読み出し処理に次いで優先して実行する。つまり、符号化データ D1の読み出し処理 の優先順位を 3番とする。
[0068] 同様に、符号ィ匕データ D6は H. 264フォーマットで符号ィ匕されたデータであるため 、データ量は少ない。また、メモリ 1に対する読み出しアクセスと書き込みアクセスとの 切り換え回数は、なるべく抑える必要がある。そこで、空き時間が発生した場合には、 バッファ領域 6からの符号化データ D6の読み出し処理を、上記符号化データ D1の 読み出し処理に次いで優先して実行する。つまり、符号化データ D6の読み出し処理 の優先順位を 4番とする。
[0069] 復号器 2からメモリ 1に書き込まれる復号データ D2は、符号化データ D1が復号され たものであるため、データ量が多い。そこで、空き時間が発生した場合には、メモリ 1 への復号データ D2の書き込み処理を、上記符号化データ D6の読み出し処理に次 いで優先して実行する。つまり、復号データ D2の書き込み処理の優先順位を 5番と する。
[0070] 上記の通り、符号化データ D1は MPEG2フォーマットで符号化されたデータである ため、データ量は少ない。そこで、空き時間が発生した場合には、ノ ッファ領域 5への 符号化データ D1の書き込み処理を、上記データ D2の書き込み処理に次 、で優先 して実行する。つまり、符号ィ匕データ D1の書き込み処理の優先順位を 6番とする。
[0071] 同様に、符号ィ匕データ D6は H. 264フォーマットで符号ィ匕されたデータであるため 、データ量は少ない。そこで、空き時間が発生した場合には、バッファ領域 6への符 号化データ D6の書き込み処理を、上記符号化データ D1の書き込み処理に次 ヽで 優先して実行する。つまり、符号化データ D6の書き込み処理の優先順位を 7番とす る。
[0072] なお、以上で説明した各処理の優先順位は一例であり、任意に変更することが可 能である。
[0073] この発明は詳細に説明されたが、上記した説明は、すべての局面において、例示 であって、この発明がそれに限定されるものではない。例示されていない無数の変形 例力 この発明の範囲力 外れることなく想定され得るものと解される。

Claims

請求の範囲
[1] 第 1及び第 2のバンクを含む複数のバンク(70〜73)を有し、同一バンクへ連続して アクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空け ることが要求されるメモリ(1)を対象とした、メモリアクセス方法であって、
前記メモリへ書き込むべき 2次元画像データ(D2)は、一度のバースト転送によって 転送可能なデータ量ごとに複数のデータ群に分割され、
前記メモリへの前記 2次元画像データの書き込み動作は、同一バンクへの書き込み が連続しな 、よう、前記所定数のクロックサイクル内にぉ 、て、
(a)前記複数のデータ群に含まれる第 1のデータ群 (D2 )を、前記第 1のバンクに
1
書き込むステップと、
(b)前記第 1のデータ群に連続する第 2のデータ群 (D2 )を、前記第 2のバンクに
2
書き込むステップと
を有する、メモリアクセス方法。
[2] 前記第 1及び第 2のデータ群はそれぞれ、前記メモリ内に格納された前記 2次元画 像データ内においては複数行に分割されて配置され、
前記第 1のデータ群は奇数行に配置され、前記第 2のデータ群は偶数行に配置さ れる、請求項 1に記載のメモリアクセス方法。
[3] 第 1及び第 2のバンクを含む複数のバンク(70〜73)を有し、同一バンクへ連続して アクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空け ることが要求されるメモリ(1)を対象とした、メモリアクセス方法であって、
前記メモリ内に格納されている 2次元画像データ (D4)は、一度のバースト転送によ つて転送可能なデータ量ごとに複数のデータ群に分割されて前記メモリから読み出 され、
前記メモリからの前記 2次元画像データの読み出し動作は、同一バンク力もの読み 出しが連続しな 、よう、前記所定数のクロックサイクル内にぉ 、て、
(a)前記複数のデータ群に含まれる第 1のデータ群 (D4 )を、前記第 1のバンクから
1
読み出すステップと、
(b)前記第 1のデータ群に連続する第 2のデータ群 (D4 )を、前記第 2のバンクから 読み出すステップと
を有する、メモリアクセス方法。
[4] 前記 2次元画像データ内の着目ブロック (BLO)の動きベクトルを抽出するために、 前記着目ブロックの移動先と予想されるブロック(BL1)内に含まれる複数のデータ群 と、前記ブロックに隣接して規定される複数のブロック (BLla〜BLlh)内に含まれる 複数のデータ群とが、前記メモリから連続的に読み出される、請求項 1又は 3に記載 のメモリアクセス方法。
[5] 前記第 1のバンクにアクセスして 、る途中に、前記第 1のバンクに対する他のァクセ ス要求が発生した場合にぉ 、て、前記第 2のバンクに対するアクセス要求も発生して いるときには、前記他のアクセス要求に応じた前記第 1のバンクへのアクセスよりも、 前記第 2のバンクへのアクセスが優先される、請求項 1又は 3に記載のメモリアクセス 方法。
[6] いずれも異なるバンクに対応する n個(n:前記複数のバンクの個数)のデータ群が 行方向に連続することによって構成されるデータ集合が、前記メモリ内に格納された 前記 2次元画像データの各行内において繰り返し配置されるように、前記 2次元画像 データを構成するデータ群が前記メモリに書き込まれる、請求項 1又は 3に記載のメ モリアクセス方法。
PCT/JP2006/310196 2005-05-30 2006-05-23 メモリアクセス方法 WO2006129518A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/916,127 US7979622B2 (en) 2005-05-30 2006-05-23 Memory access method
JP2006519711A JP5147102B2 (ja) 2005-05-30 2006-05-23 メモリアクセス方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-157009 2005-05-30
JP2005157009 2005-05-30

Publications (1)

Publication Number Publication Date
WO2006129518A1 true WO2006129518A1 (ja) 2006-12-07

Family

ID=37481447

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/310196 WO2006129518A1 (ja) 2005-05-30 2006-05-23 メモリアクセス方法

Country Status (3)

Country Link
US (1) US7979622B2 (ja)
JP (1) JP5147102B2 (ja)
WO (1) WO2006129518A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2178301A2 (en) 2008-10-16 2010-04-21 Fujitsu Limited Transcoding device and transcoding method
EP2264603A1 (en) * 2008-04-08 2010-12-22 Panasonic Corporation Memory control circuit and memory control method
US9460124B2 (en) 2011-12-27 2016-10-04 Megachips Corporation Image processor and method for memory access control

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269348A (ja) * 2007-04-20 2008-11-06 Toshiba Corp メモリ制御装置およびメモリ制御方法
US20080310515A1 (en) * 2007-06-14 2008-12-18 Yasutomo Matsuba MPEG-2 2-Slice Coding for Simple Implementation of H.264 MBAFF Transcoder
US8914580B2 (en) * 2010-08-23 2014-12-16 Apple Inc. Reducing cache power consumption for sequential accesses
US20140105305A1 (en) * 2012-10-15 2014-04-17 Vixs Systems, Inc. Memory cache for use in video processing and methods for use therewith
JP6490896B2 (ja) * 2013-12-17 2019-03-27 株式会社メガチップス 画像処理装置
US10225569B2 (en) 2014-03-31 2019-03-05 Megachips Corporation Data storage control apparatus and data storage control method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06189292A (ja) * 1992-12-15 1994-07-08 Sony Corp 動画像復号装置
JPH08307875A (ja) * 1995-05-02 1996-11-22 Matsushita Electric Ind Co Ltd 画像メモリ装置および動きベクトル検出回路
JP2000172556A (ja) * 1998-12-07 2000-06-23 Sanyo Electric Co Ltd メモリ制御回路およびそれを備えるディジタルカメラ
JP2002300597A (ja) * 2001-03-29 2002-10-11 Toshiba Corp ディジタルフィルタ処理装置
JP2002354400A (ja) * 2001-05-28 2002-12-06 Toyota Central Res & Dev Lab Inc データ格納/読み出し方法及びその方法を用いた画像データ記憶装置並びにその記憶装置を用いた画像補正装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2145365C (en) * 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
JP2002344971A (ja) 2001-05-16 2002-11-29 Nippon Telegr & Teleph Corp <Ntt> 画像符号化データの再符号化装置、再符号化方法、再符号化プログラム、及び再符号化プログラムを記録した記録媒体
US6927776B2 (en) * 2001-05-17 2005-08-09 Matsushita Electric Industrial Co., Ltd. Data transfer device and method
US6912616B2 (en) * 2002-11-12 2005-06-28 Hewlett-Packard Development Company, L.P. Mapping addresses to memory banks based on at least one mathematical relationship
US7386651B2 (en) * 2003-07-03 2008-06-10 Broadcom Corporation System, method, and apparatus for efficiently storing macroblocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06189292A (ja) * 1992-12-15 1994-07-08 Sony Corp 動画像復号装置
JPH08307875A (ja) * 1995-05-02 1996-11-22 Matsushita Electric Ind Co Ltd 画像メモリ装置および動きベクトル検出回路
JP2000172556A (ja) * 1998-12-07 2000-06-23 Sanyo Electric Co Ltd メモリ制御回路およびそれを備えるディジタルカメラ
JP2002300597A (ja) * 2001-03-29 2002-10-11 Toshiba Corp ディジタルフィルタ処理装置
JP2002354400A (ja) * 2001-05-28 2002-12-06 Toyota Central Res & Dev Lab Inc データ格納/読み出し方法及びその方法を用いた画像データ記憶装置並びにその記憶装置を用いた画像補正装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2264603A1 (en) * 2008-04-08 2010-12-22 Panasonic Corporation Memory control circuit and memory control method
EP2264603A4 (en) * 2008-04-08 2012-09-05 Panasonic Corp MEMORY CONTROL SWITCHING AND MEMORY CONTROL METHOD
EP2178301A2 (en) 2008-10-16 2010-04-21 Fujitsu Limited Transcoding device and transcoding method
JP2010098537A (ja) * 2008-10-16 2010-04-30 Fujitsu Ltd トランスコード装置およびトランスコード方法
EP2178301A3 (en) * 2008-10-16 2010-05-26 Fujitsu Limited Transcoding device and transcoding method
US9460124B2 (en) 2011-12-27 2016-10-04 Megachips Corporation Image processor and method for memory access control

Also Published As

Publication number Publication date
JPWO2006129518A1 (ja) 2008-12-25
US20100037013A1 (en) 2010-02-11
JP5147102B2 (ja) 2013-02-20
US7979622B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
WO2006129518A1 (ja) メモリアクセス方法
JP4910576B2 (ja) 動画像処理装置
TW201620306A (zh) 在區塊處理管線中之色度快取架構
JP6208993B2 (ja) 画像復号装置及び画像復号装置の復号処理方法
CN101540911A (zh) 产生图像数据流的方法和设备及重建图像的方法和设备
JP2897761B2 (ja) ブロック・マッチング演算装置及びプログラムを記録した機械読み取り可能な記録媒体
JP5035412B2 (ja) メモリコントローラ及びそれを使用したメモリシステム
JP4597103B2 (ja) 動きベクトル探索方法及び装置
JP2007158550A (ja) 画像処理装置及び画像処理方法
KR101091054B1 (ko) 동화상 부호화에 있어서의 움직임 탐색 장치
JP2005102144A (ja) Mpegのデータ処理装置
JP3560804B2 (ja) 動画像符号化方法及び装置
JPH07121507A (ja) 離散コサイン変換装置
JPH11346369A (ja) 動ベクトル検出回路
JP4383367B2 (ja) 動きベクトル検出装置
JP4109151B2 (ja) 画像処理装置
JP2007088910A (ja) 動きベクトル検出装置及び撮像装置
JP4419608B2 (ja) 動画像符号化装置
JP5261694B2 (ja) 画像処理用メモリ
JP2021061501A5 (ja)
JP2868457B2 (ja) 動きベクトル探索装置
JP6084000B2 (ja) 画像処理装置
CN102098477B (zh) 一种获得像素值的方法及装置
JP2006293693A (ja) 2次元逆変換装置
JP4332013B2 (ja) 擬似多ポートメモリ装置および擬似多ポートメモリ装置の画素読み出し方法

Legal Events

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

Ref document number: 2006519711

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 11916127

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 06746730

Country of ref document: EP

Kind code of ref document: A1