[go: up one dir, main page]

WO2022044844A1 - Signal processing device and method, and program - Google Patents

Signal processing device and method, and program Download PDF

Info

Publication number
WO2022044844A1
WO2022044844A1 PCT/JP2021/029792 JP2021029792W WO2022044844A1 WO 2022044844 A1 WO2022044844 A1 WO 2022044844A1 JP 2021029792 W JP2021029792 W JP 2021029792W WO 2022044844 A1 WO2022044844 A1 WO 2022044844A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processing
frame
convolution
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2021/029792
Other languages
French (fr)
Japanese (ja)
Inventor
佑司 床爪
優樹 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Group Corp
Original Assignee
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Group Corp filed Critical Sony Group Corp
Publication of WO2022044844A1 publication Critical patent/WO2022044844A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Definitions

  • the present technology relates to signal processing devices and methods, and programs, and in particular, to signal processing devices, methods, and programs capable of reducing the amount of memory.
  • This technology was made in view of such a situation, and makes it possible to reduce the amount of memory.
  • the signal processing device of one aspect of the present technology is a signal processing device that performs processing consisting of one or a plurality of arithmetic processes on an input data in a frame unit, and is used for a part or all of the input predetermined frame data. Based on this, it is provided with an arithmetic processing unit that performs a part of the arithmetic processing of a frame in the future from the predetermined frame and holds the processing result of the partial processing.
  • the signal processing method or program of one aspect of the present technology is a signal processing method or program of a signal processing device that performs processing consisting of one or a plurality of arithmetic processes on an input data in a frame unit, and is a predetermined frame input.
  • the present invention includes a step of performing a part of the arithmetic processing of a frame after the predetermined frame based on a part or all of the data of the above, and holding the processing result of the part of the processing.
  • the predetermined data is based on a part or all of the input data of a predetermined frame. A part of the arithmetic processing of the frame in the future than the frame is performed, and the processing result of the part of the processing is retained.
  • This technology performs a part of the arithmetic processing of the future frame based on the part used for the arithmetic processing of the future frame in the data of the current frame when the arithmetic processing of the predetermined layer constituting the neural network is performed. By holding the calculation result in the memory, the amount of memory can be reduced.
  • the calculation in the predetermined layer in the next frame is performed from the result of the calculation processing based on the data of the next frame and the calculation result of a part of the data of the current frame held in the memory.
  • the result of processing can be obtained.
  • a device that performs processing by a neural network (hereinafter referred to as DNN (Deep Neural Network)) on input data that is time-series data such as voice in a certain time interval unit, here, in a frame unit of input data.
  • DNN Deep Neural Network
  • the processing in frame units is to perform processing with the position of the beginning or the end of the frame as the start position of processing.
  • the input data DT11 is 3 channels of audio data with a sampling frequency of 24 kHz.
  • DNN process when the input data DT11 is subjected to the identification process that outputs one identification result for the input data at 1024 sample intervals, that is, at intervals of one frame. do.
  • the input data DT11 having a length of 23760 samples is input to the DNN in order to obtain one identification result.
  • the audio data for 23760 samples is the data for about 1 second.
  • the DNN that performs the identification process for the input data DT11 is composed of nine layers of layers L1 to L9, and the convolution process or pooling process is layered (layer process) in each layer. It is assumed that it is performed as arithmetic processing).
  • FIG. 2 shows the configuration of DNN, which is a discriminator of a neural network structure that performs identification processing on the input input data DT11 and outputs the identification result.
  • each quadrangle represents the shape of data, and in particular, in the figure of each data, the vertical direction shows the time direction, and the horizontal direction in the figure shows the dimension.
  • the horizontal arrow indicates data conversion, that is, layer processing.
  • the data shape of each data is determined by the number of dimensions of the data and the number of data (number of data samples) in each dimension, that is, the number of samples in the time direction.
  • the numerical value shown on the left side in the figure of each data indicates the length (number of samples) of the data in the time direction, and is shown on the upper side in the figure of each data.
  • the numbers shown indicate the number of dimensions of those data.
  • the square input data DT11 at the left end is audio data for 3 channels input to the DNN.
  • the vertical direction indicates the time direction
  • the horizontal direction in the figure indicates the dimension (channel).
  • the downward direction is the newer time direction (future direction).
  • Input data DT11 is audio data for 3 channels in the time interval (length) for 23760 samples.
  • the audio data channel corresponds to the dimension of the input data DT11
  • the shape of the input data DT11 is 23760 samples x 3 dimensions.
  • the sample on the upper side is a past sample.
  • layer processing (arithmetic processing) is performed in each of the nine layers, that is, each layer L1 to L9, with the input data DT11 as an input, and the identification result data DT20 at the right end in the figure is Obtained as output.
  • one identification result data DT20 is obtained for the input of the input data DT11 having a length of 23760 samples per processing in one frame.
  • This identification result data DT20 is 1 ⁇ 1 (1 sample ⁇ 1 dimension) data showing the identification result by DNN.
  • the identification result data DT20 is data indicating the probability that the voice based on the input data DT11 is a predetermined specific voice.
  • the input data DT11 is filtered for each of the 16 types of convolution filters.
  • a convolution process is performed between the filter coefficients constituting the convolution filter and the input data DT11.
  • the convolution filter used in the convolution process of layer L1 is a filter with a shape of 96 x 3 taps.
  • the number of taps on the convolution filter that is, the number of filter coefficients, is 96 ⁇ 3.
  • 16 sample advance filter processing is performed.
  • size indicates the size of the convolution filter in the time direction.
  • the layer L1 convolution filter has 96 taps in the time direction and 3 taps in the dimension (channel) direction, so the size of the layer L1 convolution filter is "96".
  • the number of taps in the time direction of the convolution filter will also be referred to as a size.
  • a layer to which the convolution process is performed such as layer L1
  • a convolution layer in particular
  • the layer on which the pooling process is performed will also be referred to as a pooling layer.
  • the input data DT11 is converted into the intermediate data DT12.
  • the intermediate data DT12 is 16-dimensional data. That is, the intermediate data DT12 consists of 16 data of each dimension arranged in the horizontal direction in the figure.
  • the pooling process of extracting the maximum value from the data area of 8 samples x 1 dimension is performed for the intermediate data DT12 by advancing 8 samples.
  • the pooling process of 8 samples forward which extracts the maximum value for the data area of 8 samples that are continuously arranged in the time direction, is performed on the intermediate data DT12.
  • the length of the data area to be convolved or pooled in the time direction is also referred to as "size”, and the length of the data area in the dimensional direction is also referred to as "width”.
  • the layer L2 is marked with "size 8" and "advance 8", and the layer L2 performs a pooling process of 8 samples advancing for an 8 sample ⁇ 1-dimensional data area. You can see that.
  • the intermediate data DT12 is converted into the 16-dimensional intermediate data DT13.
  • the same reference numerals are given to the parts corresponding to the cases in FIG. 2, and the description thereof will be omitted as appropriate.
  • the horizontal direction indicates the dimensional direction
  • the vertical direction indicates the time direction.
  • the downward direction is the future direction.
  • the convolution process is advanced by 16 samples and the 96 sample ⁇ 3D data area.
  • the following convolution process is performed on W12.
  • the data area W11 and the data area W12 are displaced by 16 samples. Therefore, for example, if the sample at the lower end of the data area W12 is counted upward in the figure as the first sample, the sample at the lower end of the data area W11 is the 17th sample.
  • the convolution process of shifting the data area to be processed by 16 samples is repeatedly performed for each of the 16 types of convolution filters, and the intermediate data DT12 is generated.
  • the value (processing result) obtained by convolving the data area W11 with the first convolution filter is the sample value of the sample SP11, which is the second from the bottom in the figure of the intermediate data DT12. ..
  • the value obtained by convolving the data area W12 with the first convolution filter is the sample value of the sample SP12, which is the first from the bottom in the figure of the intermediate data DT12.
  • the value obtained by convolving the data area W11 with the second convolution filter is the sample value of the sample adjacent to the right side in the figure of the sample SP11 in the intermediate data DT12.
  • the pooling process is advanced by 8 samples and the 8 samples ⁇ 1 dimensional data area W22.
  • the following pooling process is performed on the data.
  • the maximum value of the sample value of the sample in the data area W21 is extracted, and the maximum value is obtained as the processing result of the pooling process.
  • the data area W21 and the data area W22 are offset by 8 samples.
  • pooling processing is performed not only for the data of the leftmost dimension in the figure of the intermediate data DT12, but also for the data of each dimension. For example, pooling processing is also performed on the data area W23 of 8 samples ⁇ 1 dimension adjacent to the data area W21.
  • the pooling process of shifting the data area to be processed by 8 samples is repeated for each dimension of the intermediate data DT12, and the intermediate data DT13 is generated.
  • the value (processing result) obtained by the pooling process for the data area W21 is the sample value of the sample SP21, which is the second from the bottom on the left end in the figure of the intermediate data DT13.
  • the value obtained by the pooling process for the data area W22 is the sample value of the sample SP22 adjacent to the lower side in the figure of the sample SP21 in the intermediate data DT13. Further, the value obtained by the pooling process for the data area W23 is taken as the sample value of the sample SP23 adjacent to the right side in the figure of the sample SP21 in the intermediate data DT13.
  • the third layer uses 32 types of convolution filters and the same convolution process as in the layer L1. Is done.
  • the convolution processing (filter processing) of 1 sample advance by the 8 ⁇ 16 (8 samples ⁇ 16 dimensions) convolution filter having a size of 8 and a width in the dimensional direction of 16 is applied to the intermediate data DT13. It is done for each of the 32 types of convolution filters.
  • the intermediate data DT13 is converted into the 32-dimensional intermediate data DT14.
  • the pooling process targeting a 2 ⁇ 1 (2 samples ⁇ 1 dimension) data area with a size of 2 and a width of 1 in the dimension direction is advanced by 2 samples to each dimension of the intermediate data DT14. It is done against. As a result, the intermediate data DT14 is converted into the 32-dimensional intermediate data DT15.
  • one-sample forward convolution processing by a 4 x 32 (4 samples x 32 dimensions) convolution filter with a size of 4 and a width of 32 in the dimensional direction performs 64 types of convolutions for the intermediate data DT15. It is done for each filter. As a result, the intermediate data DT15 is converted into the 64-dimensional intermediate data DT16.
  • the pooling process targeting a 2 ⁇ 1 (2 samples ⁇ 1 dimension) data area with a size of 2 and a width of 1 in the dimension direction is advanced by 2 samples to each dimension of the intermediate data DT16.
  • the intermediate data DT16 is converted into the 64-dimensional intermediate data DT17.
  • the convolution process of 1 sample advance by the 2 ⁇ 64 (2 samples ⁇ 64 dimensions) convolution filter with the size 2 and the width in the dimension direction is 64, 128 kinds of convolutions for the intermediate data DT17. It is done for each filter. As a result, the intermediate data DT17 is converted into the 128-dimensional intermediate data DT18.
  • pooling processing targeting a 2 ⁇ 1 (2 samples ⁇ 1 dimension) data area with a size of 2 and a width in the dimension direction of 1 is performed for each dimension of intermediate data DT18 by advancing 2 samples.
  • the intermediate data DT18 is converted into 128-dimensional intermediate data DT19.
  • one sample forward convolution process by one type of convolution filter of 21 x 128 (21 samples x 128 dimensions) with a size of 21 and a width in the dimension direction of 128 is performed for the intermediate data DT19. Will be.
  • the intermediate data DT19 is converted into 1 sample ⁇ 1-dimensional identification result data DT20 which is the output of DNN, and the identification result data DT20 thus obtained is the result of the identification process (identification result) for the input data DT11. ) Is output.
  • the identification result data DT20 is 1 sample ⁇ 1 dimensional data
  • what kind of sample number (length in the time direction) and dimension of the identification result data DT20 which is the output data of the DNN will be described. It may be numerical data.
  • the arithmetic processing in each of the plurality of layers from layer L1 to layer L9 as described above is performed by the discriminator (DNN) of the neural network structure.
  • DNN discriminator
  • the convolution process by the convolution filter in the shape of "size” x "number of dimensions of the input data” is performed on the input data of the convolution layer by a predetermined number of convolutions. It is done at "forward" sample intervals by the amount of the filter.
  • the pooling process that outputs the maximum value of the sample values of multiple samples included in the "size" x one-dimensional data area for the data input to the pooling layer is performed for each data dimension. It is done at "forward" sample intervals.
  • the entire rectangle representing each data of the input data DT11 and the intermediate data DT12 to the intermediate data DT19 shows the data portion to be substantially processed in the layer in which the data is input.
  • This is a method of inputting input data DT11 with a length of 23760 samples to DNN together with input data DT11 with a length of 1024 samples of a frame.
  • such a method will also be referred to as a general method.
  • the calculation amount of the layer processing performed in the current frame is minimized. It is conceivable to reduce the amount of calculation and the amount of memory of the entire identification process by limiting it to the limit.
  • such a method will also be referred to as an input holding method.
  • a part of the data of the input previous frame is held in the memory in a predetermined layer, and the current frame is based on the part of the data of the previous frame and the data input in the current frame.
  • Layer processing is performed for.
  • the DNN discriminator for each method has a structure in which the processing boundaries of the previous frame and the current frame in the layer processing of each layer match.
  • the processing unit of the layer processing performed on the frame in that layer is the entire input data DT11 or one frame.
  • the size or the number of advances is determined by the data shape of the part used in the processing of.
  • the frame length (number of frame samples) of the input data DT11 is also set to be a length determined by the data shape of the entire input data DT11.
  • DNN is the processing unit in those layer processing, that is, the size (length) of the data area to be processed and the sample advance so that the processing boundaries of adjacent frames match each other in the layer processing of each layer. It is assumed that the number and the frame length of the input data DT11 are defined.
  • the processing unit here is an area that is targeted when performing one layer processing.
  • it is an area of size determined by size x number of dimensions, that is, the number of taps of the convolution filter. be.
  • the fact that the frame processing boundaries match at each layer of DNN means that the frame length of the input data DT11 is an integral multiple of the processing interval that DNN originally has.
  • the processing interval of the DNN is the product of the number of advances (sample advance number) in the layer processing in all the layers of layers L1 to L9.
  • the product of the number of forward movements is 1024, and 1 times the product is 1024 samples, which is the frame length of the input data DT11.
  • the entire data input to each layer shows a data portion to be substantially processed in the layer to which those data are input.
  • a part of the processing result of the past frame more specifically, the shaded part in each data is held in the memory, so that the amount of data of the part to be processed in the current frame can be suppressed to a small amount. Can be done.
  • the partial data PDT11 of the previous frame in the input data DT11 is held in the memory, and the convolution of the current frame is performed based on the data PDT11 and the data IDT11 of the current frame of the input data DT11. Processing is done.
  • the data PDT11 is three-dimensional data having a length of 80 samples in the time direction, that is, data having a length of 80 samples from the beginning in the previous frame of the input data DT11.
  • the data ID T11 is a part of the current frame of the input data DT11, that is, data having a length of one frame.
  • pooling processing for the current frame is performed for the data IDT12 of the current frame of the intermediate data DT12.
  • layer L3 a part of the data PDT12 of the previous frame in the intermediate data DT13 is held in the memory, and the convolution process for the current frame is performed based on the data PDT12 and the data IDT13 of the current frame of the intermediate data DT13.
  • pooling processing for the current frame is performed for the data IDT14 of the current frame of the intermediate data DT14.
  • layer L5 a part of the data PDT13 of the previous frame in the intermediate data DT15 is held in the memory, and the convolution processing for the current frame is performed based on the data PDT13 and the data IDT15 of the current frame of the intermediate data DT15.
  • pooling processing for the current frame is performed for the data IDT16 of the current frame of the intermediate data DT16.
  • layer L7 a part of the data PDT14 of the previous frame in the intermediate data DT17 is held in the memory, and the convolution process for the current frame is performed based on the data PDT14 and the data IDT17 of the current frame of the intermediate data DT17.
  • pooling processing for the current frame is performed for the data IDT18 of the current frame of the intermediate data DT18.
  • the data PDT15 of the past frame in the intermediate data DT19 is held in the memory, and the convolution processing for the current frame is performed based on the data PDT15 and the data IDT19 of the current frame of the intermediate data DT19.
  • the input holding method it is sufficient to have a memory amount sufficient to hold the data PDT11 to the data PDT15 when performing each layer processing of the current frame, and the required memory amount can be significantly reduced.
  • the identification result data can be obtained by performing layer processing of the current frame only for the data IDT11 to the data IDT19 and the data PDT11 to the data PDT15. You can get DT20. Therefore, the amount of calculation can be significantly reduced as compared with the general method.
  • the data PDT15 held in the memory at layer L9 is 20 (size) x 128 (dimension) data.
  • This data PDT15 performs convolution processing and pooling processing on the part of the length of 22736 samples excluding the part of the current frame (data IDT11) in the part of the length of 23760 samples which is the entire input data DT11. It is the data obtained by performing in order.
  • the data IDT19 of 1 (size) ⁇ 128 (dimension) adjacent to the future side of the data PDT15 in the intermediate data DT19 can be calculated in the current frame, the data IDT19 and the data PDT15 are combined and convolved in the layer L9. The processing can be performed and the identification result data DT20 can be obtained.
  • the calculation of the data IDT19 part corresponds to the boundary part between the previous frame and the current frame in each convolution layer, that is, the data of the previous frame, and the data PDT11 to the data PDT14 which are also used for the convolution processing of the current frame should be retained. Can be done.
  • the data input from the layer immediately before the past frame that is, the input data or the intermediate data, which is required for the convolution processing in the current frame in each convolution layer, is held in the memory. ..
  • the amount of memory required for the convolution layer can be obtained by the following equation (1).
  • the "convolution size” is the number of taps in the time direction of the convolution filter used in the convolution process, that is, the size in the time direction
  • the “advance number” is the number of advances in the convolution process (sample advance number).
  • the “number of dimensions of the input data” is the number of dimensions (number of channels) of the input data or the intermediate data input to the convolution layer.
  • the total amount of memory required for holding the data PDT 11 to the data PDT 15 is 3072 from the equation (1).
  • one of the layer processing in the future frame based on a part or all of the data input in the current frame that is, the part of the data in the current frame in the layer used for the layer processing in the future frame.
  • the result of performing the part may be retained in the memory.
  • the DNN consists of nine layers, layer L1 to layer L9, and the same layer processing as in FIG. 2 is performed on those layers.
  • the convolution layers Layer L1, Layer L3, Layer L5, Layer L7, and Layer L9 do not retain the data PDT11 to the data PDT15 as in the input retention method, but are the processing results in those layers.
  • Data PDT21 to data PDT25 are held in memory.
  • These data PDT21 to data PDT25 perform a part of layer processing in the frame ahead (future) in time from the current frame based on the data of the current frame or the past frame input to the layer. It is the data obtained in.
  • the data PDT21 uses a part of the convolution process for obtaining the data IDT12 of the current frame, that is, the data PDT11, based on the data PDT11 which is a part of the input data of the previous frame input to the layer L1. It is obtained by performing the calculation part.
  • PDT21 is a part of the processing result of the convolution processing for the current frame.
  • the data PDT21 is 5 (size) x 16 (dimension) data
  • the data PDT22 is 7 (size) ⁇ 32 (dimension) data
  • the data PDT23 is 3 (size) ⁇ 64 (dimension) data
  • the data PDT24 is 1 (size) ⁇ 128. It is (dimensional) data
  • the data PDT25 is 20 (size) ⁇ 1 (dimensional) data.
  • the amount of memory required to hold these data PDT21 to data PDT25 is 644, and it can be seen that the amount of memory required for the input holding method as a whole can be significantly reduced compared to the amount of memory 3072.
  • the effect of reducing the amount of memory is large in the first layer L1 and the final layer 9.
  • the amount of memory required for the convolution layer can be obtained by the following equation (2).
  • Equation (2) “ceil” indicates rounding up, and “convolution size” is the number of taps in the time direction of the convolution filter used in the convolution process, that is, the size in the time direction. Further, the “advance number” is the advance number (sample advance number) at the time of the convolution process, and the “dimension number of output data” is the dimension number of the data obtained by the convolution process.
  • the output holding method can reduce the amount of memory as a whole, but the output holding method may be used depending on the layer.
  • the input holding method may be more effective in reducing the amount of memory than the method.
  • the input holding method and the output holding method may be used in combination. That is, it may be possible to select whether to use the input holding method or the output holding method for each layer.
  • the output holding method may be adopted for the layers L1 and L9, and the input holding method may be adopted for the layers L3, L5, and layer L7.
  • the memory amount for holding the data PDT21, the data PDT12 to the data PDT14, and the data PDT25 is required as a whole, so the memory amount is 372. Therefore, the amount of memory can be reduced to about 1/8 from 3072 to 372 as compared with the case of the input holding method.
  • the data PDT11 which is a part of the 1024 ⁇ 3 data input in the previous frame, and the data IDT11 input in the current frame are targeted.
  • the convolution of the part straddling from the previous frame to the current frame that is, the convolution using the data PDT11 cannot be performed only by the data IDT11 input in the current frame.
  • the amount of calculation and the amount of memory were reduced.
  • one quadrangle represents the part of the input data DT11 used in the convolution process in the current frame, and the shaded part in the quadrangle is the data part (data) of the previous frame used for convolution. Represents part or all of PDT11).
  • the data PDT11 is required for the 1st to 5th convolution processes.
  • the entire data PDT11 that is, the part of the length of the last 80 samples of the previous frame is used, and in the second convolution process, the part of the length of the last 64 samples of the data PDT11 is used. Be done. In the fifth convolution process, the length of the last 16 samples of the data PDT11 is used.
  • the amount of memory required to hold the data for the convolution processing for each frame in the layer L1 is 5 (size) ⁇ 16 (dimensions), which is the memory amount of the memory M11.
  • the data part of the length of 16n samples input in the current frame is regarded as zero data and the convolution process is performed. You may do so.
  • the processing result is held in the memory M11.
  • the data held in the memory M11 is the data PDT21 shown in FIG.
  • the data IDT11 is used as shown by the arrow Q12, and the convolution processing is performed by 16 samples forward for each of the 16 types of convolution filters.
  • one quadrangle represents the part of the input data DT11 used in the convolution process in the current frame, and the shaded part in the quadrangle is used in the convolution process of the data ID T11 in the current frame. Represents a part.
  • the result of the convolution process and the result of the convolution process by the same convolution filter held in the nth memory area of the memory M11 are added, and the addition result is the final nth convolution of the current frame. It is output as the processing result of the processing.
  • the processing result of the convolution processing for the data area portion extending from the previous frame to the current frame can be obtained.
  • the convolution process is performed with the length part of the first 16 samples of the data IDT11 and the filter coefficient of the part of the last 16 samples of the convolution filter. Then, the processing result and the result of the convolution processing held in the first memory area of the memory M11 are added and output as data for the first sample of the data ID T12 ⁇ 1 dimension.
  • the part of the head (96-16n) sample of the target data area is the same as in the convolution process for the current frame of the previous frame. Since it does not exist, the convolution calculation is not performed for that part, or the convolution process is performed with zero data.
  • the target data area is all included in the data IDT11, so the convolution process is performed by the convolution filter for the target data area of the data IDT11. Will be.
  • the data IDT12 is obtained as the final processing result of the convolution processing of the current frame.
  • the part that uses the data IDT11 in the first to fifth convolution processes that require the data IDT11 is processed (calculated), and the processing result is Stored and retained in memory M11.
  • layer L1 the process described above is repeated frame by frame.
  • FIG. 6 the convolution process in the layer L9 of the output holding method in FIG. 4 will be described.
  • the same reference numerals are given to the portions corresponding to those in FIGS. 2 or 4, and the description thereof will be omitted as appropriate.
  • data IDT19 of 1 (size) x 128 (dimension) is input from the immediately preceding layer L8 in the current frame.
  • the convolution processing of one sample forward by the convolution filter of size "21" x dimension "128" is performed by one type of convolution filter, and the identification result data DT20 obtained as a result is output.
  • the data area to be convolved is the part of the data IDT19 input in the current frame and the past (most recent) 20 frames of the intermediate data DT19 input from the immediately preceding layer L8. It is an area consisting of a part of data PDT15 of 20 ⁇ 128.
  • the convolution of the part straddling from the previous frame to the current frame that is, the convolution using the data PDT15, cannot be performed only by the data IDT19 input in the current frame.
  • the amount of calculation and the amount of memory are reduced by holding the intermediate data DT19 for the past 20 frames input from layer L8, that is, the data PDT15 itself for 20 samples x 128 dimensions in the memory. Was going.
  • one quadrangle represents the part of the intermediate data DT19 used in the convolution process in the frame in the future when viewed from the previous frame.
  • shaded area in those rectangles represents the data part (part or all of the data PDT15) of the frame past the current frame used for convolution.
  • the shaded part in those rectangles represents the data part of the frame past the current frame in the intermediate data DT19, and the part without diagonal lines in the rectangle represents the current frame. It represents the subsequent data part, that is, the data part of the future frame when viewed from the previous frame.
  • the quadrangle at the first (right end) from the right in the part indicated by arrow Q21 represents the data used for the convolution process in the current frame of layer L9, and the unshaded part in this quadrangle is. , Represents the data IDT19 input in the current frame.
  • the second quadrangle from the right in the part indicated by arrow Q21 represents the data used for the convolution process in the next frame of the current frame of layer L9, and the diagonal line in this quadrangle is not applied.
  • the part represents the data input after the current frame.
  • the memory M21 consists of 20 memory areas arranged in the vertical direction in the figure.
  • the intermediate data DT19 for the past (21-n) samples input to layer L9 that is, the length part for the end (21-n) samples of the data PDT15 and the beginning of the convolution filter (21-).
  • n It is assumed that the result of convolution with the filter coefficient of the sample portion is held in the nth memory area of the memory M21.
  • the processing result when a part of the convolution processing in the nth frame in the future direction from the previous frame is performed using the part of the head (21-n) sample of the convolution filter is the memory M21. It is assumed that it is held in the nth memory area.
  • the processing result of the convolution processing for the current frame that is, the total of the intermediate data DT19 is 21.
  • the identification result data DT20 which is the processing result of the convolution process for the data area of the length of the sample, can be obtained.
  • the shaded areas in those rectangles represent the data IDT19 input in the current frame.
  • the part above the data IDT19 part in the rectangle represents the data part of the past frame, and the part below the data IDT19 part in the rectangle represents the data part of the future frame. ing.
  • the quadrangle at the first (right end) from the right in the part indicated by arrow Q22 represents the data used for the convolution process in the current frame of layer L9.
  • the data IDT19 input in the current frame is stored in the convolution processing result and the first memory area of the memory M21.
  • the processing result is added and output as the identification result data DT20 of the current frame.
  • the convolution calculation of other parts may not be performed as described above, or The calculation of the convolution is performed with the other parts as zero data.
  • the convolution processing using the part up to the data IDT19 in each frame is performed in advance for the future 20 frames, and the processing result is stored in the memory M21. Be held.
  • the processing result and the processing result held in the nth memory area of the memory M21 are added, and the addition result is stored and held in the (n-1) th memory area of the memory M21. ..
  • the part indicated by arrow Q22 which is the 21st from the right, that is, the part represented by the rectangle at the left end
  • the data IDT19 input in the current frame and the first sample at the beginning (21st sample from the end) of the convolution filter is stored and held as it is in the 20th memory area of the memory M21.
  • the data held in the memory M21 in this way is the data PDT25 shown in FIG.
  • the layer processing (convolution processing) of the layer L9 can be performed by the output holding method inductively.
  • the number of samples (size) in the time direction of one frame of data input to a predetermined layer is a
  • the size of the convolution process that is, the number of taps in the time direction of the convolution filter is b
  • the number of advances in the convolution process Let be c.
  • processing TR1 the following processing is first performed as processing TR1.
  • processing TR2 is performed based on the processing result of processing TR1.
  • the processing result of the processing TR1 is output to the next layer as the data of the part corresponding to the processing result of the nth convolution processing in the processing result of the convolution processing in the current frame.
  • the amount of calculation and the amount of memory can be significantly reduced as compared with the general method, and the amount of memory can be further reduced with the same amount of calculation as compared with the input holding method. be able to.
  • the output holding method is not limited to this and can be applied to other layers as well.
  • the following is an example of applying the output retention method to the pooling layer.
  • the size that is, the number of samples in the time direction of the target data area is 96
  • the pooling layer that performs the pooling process of advancing 16 samples retains the processing results of the past frames. You will need it.
  • 1024 samples ⁇ 3D data IDT41 is input from the immediately preceding layer in the current frame.
  • the data PDT41 with the length of the last 80 samples of the 1024 samples x 3D data input from the previous layer in the previous frame and the data IDT41 input in the current frame are targeted for pooling processing. Is done.
  • the pooling process targeting the 96-sample x 1-dimensional data area is performed by advancing 16 samples for each dimension of the target data, and the processing result of the pooling process in the current frame is 64 samples x 3 dimensions.
  • Data IDT42 is output.
  • the pooling process referred to here is a process of extracting the maximum value of the sample value of the sample in the target data area and outputting it as a processing result as described above.
  • the pooling process for the data area including the data PDT41 of the part extending from the previous frame to the current frame cannot be performed only by the data IDT41 input in the current frame. ..
  • the amount of calculation and the amount of memory can be reduced as compared with the general method.
  • the output retention method as shown in Q41, in the previous frame, a part of the pooling process in the current frame is performed using the input data PDT41, and the process result is retained in the memory M31. To do so. That is, at the stage of the previous frame, the pooling process is applied to the current frame in the future as seen from the previous frame.
  • one quadrangle represents the part of the data (data area) to be pooled in the current frame, and the shaded part in the quadrangle is the part of the previous frame used for the pooling process. Represents a data part (part or all of data PDT41).
  • the data PDT41 is required for the 1st to 5th pooling processes.
  • the entire data PDT41 that is, the part of the length of the last 80 samples of the previous frame is used, and in the second pooling process, the part of the data PDT41 of the last 64 samples is used. Be done.
  • the data IDT41 is used as shown by the arrow Q42, and the pooling process for advancing 16 samples is performed for each dimension.
  • one quadrangle represents the part of the data used in the pooling process in the current frame
  • the shaded part in the quadrangle represents the part used in the pooling process of the data IDT41 in the current frame. Represents.
  • the extracted maximum value and the value (processing result) for each dimension held in the nth memory area of the memory M31 are compared for each dimension, and the larger value is the nth pooling process. It is output as the processing result for each dimension of.
  • the target data area is all included in the data IDT 41, so the pooling process is performed on the target data area of the data ID T41.
  • the data IDT42 is obtained as the final processing result of the pooling processing of the current frame.
  • a part of the pooling process is performed in the next frame of the current frame in the same manner as in the case of the part shown by arrow Q41.
  • the process (calculation) of the part using the data IDT41 in the first to fifth pooling processes that require the data IDT41 is performed, and the processing result is the result. It is stored and held in memory M31.
  • the "convolution size" in the above equation (2) is replaced with a “pooling size” indicating the length (size) of the data area to be pooled in the time direction. It can be obtained by.
  • the amount of computation and the amount of memory can be reduced as in the case of the convolution layer.
  • FIG. 8 is a diagram showing a configuration example of an embodiment of a signal processing device to which the present technology is applied.
  • the signal processing device 11 shown in FIG. 8 is composed of, for example, a personal computer, a smart phone, headphones, a portable player, or the like, performs predetermined identification processing based on audio data supplied as input data, and is identified to show the identification result. Output the result data.
  • the signal processing device 11 performs an identification process consisting of a plurality of layer processes on a frame-by-frame basis for the input data, and outputs the identification result data.
  • the signal processing device 11 has a layer processing unit 21-1 to a layer processing unit 21-9, and a control unit 22.
  • a DNN that is, a neural network is configured by layer processing units 21-1 to layer processing units 21-9 provided hierarchically.
  • the layer processing unit 21-1 to the layer processing unit 21-9 realize a discriminator having a neural network configuration.
  • the layer processing units 21-1 to the layer processing units 21-9 correspond to the layers L1 to L9 constituting the DNN shown in FIG. 2 or FIG. 4, and the arithmetic processing (layer processing) in those layers. It functions as an arithmetic processing unit that performs the above.
  • each of the layer processing unit 21-1, the layer processing unit 21-3, the layer processing unit 21-5, the layer processing unit 21-7, and the layer processing unit 21-9 is a memory 31-1 to a memory 31-. It has each of five.
  • each memory 31 holds data required for convolution processing in the input holding method or the output holding method.
  • the layer processing unit 21-1 performs convolution processing by an input holding method or an output holding method based on the input data and the data held in the memory 31-1, and the intermediate data obtained as a result is used. It is supplied to the layer processing unit 21-2.
  • the convolution process in the current frame is performed by the input holding method or the output holding method based on the input data input in the current frame and the data held in the memory 31-1.
  • Intermediate data that is the processing result of is obtained.
  • the layer processing unit 21-2 performs pooling processing on the intermediate data supplied from the layer processing unit 21-1, and supplies the intermediate data obtained as a result to the layer processing unit 21-3.
  • the layer processing unit 21-3 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-2 and the data held in the memory 31-2, and the convolution processing thereof is performed.
  • the resulting intermediate data is supplied to the layer processing unit 21-4.
  • the layer processing unit 21-4 performs pooling processing on the intermediate data supplied from the layer processing unit 21-3, and supplies the intermediate data obtained as a result to the layer processing unit 21-5.
  • the layer processing unit 21-5 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-4 and the data held in the memory 31-3, and the convolution processing thereof is performed.
  • the resulting intermediate data is supplied to the layer processing unit 21-6.
  • the layer processing unit 21-6 performs pooling processing on the intermediate data supplied from the layer processing unit 21-5, and supplies the intermediate data obtained as a result to the layer processing unit 21-7.
  • the layer processing unit 21-7 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-6 and the data held in the memory 31-4, and the convolution processing thereof is performed.
  • the resulting intermediate data is supplied to the layer processing unit 21-8.
  • the layer processing unit 21-8 performs pooling processing on the intermediate data supplied from the layer processing unit 21-7, and supplies the intermediate data obtained as a result to the layer processing unit 21-9.
  • the layer processing unit 21-9 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-8 and the data held in the memory 31-5, and the convolution processing thereof is performed.
  • the identification result data obtained as a result is output as the processing result of the identification process.
  • each layer processing unit 21 processes the input data in frame units. That is, each layer processing unit 21 performs data input, layer processing, and data output for each frame. Therefore, the layer processing unit 21-9 outputs the identification result data for each frame.
  • the control unit 22 controls the processing of the entire signal processing device 11.
  • control unit 22 selects, for each layer processing unit 21 of the convolution layer, whether to perform the convolution processing by the input holding method or the output holding method in the layer processing unit 21, and each layer processing unit 21 is used. Control to execute the convolution process by the selected method.
  • control unit 22 switches between the convolution processing by the input holding method and the convolution processing by the output holding method in each layer processing unit 21.
  • each layer processing unit 21 which method is used by each layer processing unit 21 to perform the convolution processing is, for example, the number of dimensions of each data input / output in the user input (specified by the user), the convolution size, and the advancement of the convolution processing. It is selected based on the number (number of sample advances) and so on.
  • At least one layer processing unit 21 performs convolution processing by the input holding method
  • at least one layer processing unit 21 performs convolution processing by the output holding method.
  • An example in which is performed will be described.
  • the present invention is not limited to this, and for example, the convolution processing may be performed by the output holding method in the layer processing unit 21 of all the convolution layers.
  • a memory may be provided in the layer processing unit 21 of the pooling layer, and the layer processing unit 21 may perform the pooling processing by the input holding method or the output holding output according to the selection by the control unit 22.
  • whether the layer processing is performed by the input holding method or the output holding method in each layer processing unit 21 is dynamically selected by the control unit 22 in frame units, arbitrary timing, etc., and can be appropriately switched. It may be selected by the control unit 22 at the start of the identification process, or it may be predetermined.
  • the configuration of the DNN realized by the signal processing device 11 is not limited to the example shown in FIG. 8, and may be any other configuration.
  • a convolution process or a pooling process is performed as a layer process, but the process is not limited to this, and any arithmetic process such as a register dual process is performed. You may be broken. That is, for example, in DNN, at least one of the convolution process, the pooling process, and the resilient process may be performed.
  • Residual processing is data conversion processing that adds the output of the layer before the current layer to the data input of the current layer to obtain the output of the current layer.
  • step S11 the control unit 22 relates to each layer processing unit 21 of the layer processing unit 21-1, the layer processing unit 21-3, the layer processing unit 21-5, the layer processing unit 21-7, and the layer processing unit 21-9. , Select which method to perform the convolution process.
  • control unit 22 has the number of dimensions of the data (input data or intermediate data) input to the layer processing unit 21 and the data (intermediate data or identification result) output from the layer processing unit 21 for each layer processing unit 21.
  • the selection is made based on the number of dimensions of the data), the size of the convolution process, the number of sample advances in the convolution process, and the like.
  • control unit 22 calculates equations (1) and (2) for each layer processing unit 21, and the amount of memory required for the input holding method and the amount of memory required for the output holding method. And select the method that requires less (smaller) memory.
  • control unit 22 selects either the input holding method or the output holding method for each layer processing unit 21, the control unit 22 instructs each layer processing unit 21 to execute the convolution processing by the selected method.
  • control unit 22 follows the input and causes the input holding method in each layer processing unit 21. Select which method of the convolution processing is to be performed.
  • the processing efficiency is basically higher if the method with a small amount of memory obtained by the equations (1) and (2) is adopted. That is, the amount of memory used and the amount of calculation are reduced. However, this may not always be the case, and in such cases, it is effective to select either the input holding method or the output holding method according to the user's input operation or the like.
  • control unit 22 selects an output holding method for the layer processing unit 21-1 and the layer processing unit 21-9, and the layer processing unit 21-3, the layer processing unit 21-5, and the layer processing unit 21 are selected.
  • the explanation will be continued assuming that the input holding method is selected.
  • step S12 the layer processing unit 21-1 performs the convolution processing by the output holding method according to the control (instruction) of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-2.
  • step S12 for each of the 16 types of convolution filters of 96 ⁇ 3 taps, the convolution process at the current frame is performed by advancing 16 samples.
  • the layer processing unit 21-1 performs a convolution process on the input data of the input current frame using a part of the convolution filter for the first five convolution processes, and the process result and the memory.
  • the result of the convolution process for the input data of the previous frame held in 31-1 is added and output as the final process result of the convolution process.
  • the layer processing unit 21-1 performs the convolution process using the convolution filter on the input data of the input current frame.
  • the layer processing unit 21-1 performs a part of the convolution processing of the next frame (future frame) based on a part of the input data and a part of the convolution filter, and the processing result. Is supplied to the memory 31-1 and held.
  • step S13 the layer processing unit 21-2 performs an 8-sample advance pooling process targeting an 8-sample ⁇ 1-dimensional data area on the intermediate data supplied from the layer processing unit 21-1, and as a result.
  • the obtained intermediate data is supplied to the layer processing unit 21-3.
  • step S14 the layer processing unit 21-3 performs the convolution processing by the input holding method according to the control of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-4.
  • step S14 for each of the 32 types of convolution filters of 8 ⁇ 16 taps, the convolution process in the current frame is performed by advancing one sample.
  • the layer processing unit 21-3 is supplied from the intermediate data supplied from the layer processing unit 21-2 in the current frame and from the layer processing unit 21-2 in the previous frame, and is held in the memory 31-2. Convolution processing is performed using 7 ⁇ 16 intermediate data.
  • the layer processing unit 21-3 stores the data of the length of the last 7 samples of the intermediate data supplied from the layer processing unit 21-2 in the current frame in the memory 31-2. Supply and hold. The data held in the memory 31-2 is used for the processing of step S14 of the next frame.
  • step S15 the layer processing unit 21-4 performs a pooling process of advancing two samples targeting a two-sample ⁇ one-dimensional data area on the intermediate data supplied from the layer processing unit 21-3, and as a result.
  • the obtained intermediate data is supplied to the layer processing unit 21-5.
  • step S16 the layer processing unit 21-5 performs the convolution processing by the input holding method according to the control of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-6.
  • step S16 the same processing as in the case of step S14 is performed.
  • step S16 the convolution process in the current frame is performed by advancing one sample for each of the 64 types of convolution filters of 4 ⁇ 32 taps.
  • the layer processing unit 21-5 stores the data of the length of the last three samples of the intermediate data supplied from the layer processing unit 21-4 in the current frame in the memory 31-3. Supply and hold. The data held in the memory 31-3 is used for the processing of step S16 of the next frame.
  • step S17 the layer processing unit 21-6 performs a pooling process of advancing two samples targeting a two-sample ⁇ one-dimensional data area on the intermediate data supplied from the layer processing unit 21-5, and as a result.
  • the obtained intermediate data is supplied to the layer processing unit 21-7.
  • step S18 the layer processing unit 21-7 performs a convolution process by an input holding method according to the control of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-8.
  • step S18 the same processing as in the case of step S14 is performed.
  • step S18 the convolution process in the current frame is performed by advancing one sample for each of the 128 types of convolution filters of 2 ⁇ 64 taps.
  • the layer processing unit 21-7 stores the data of the length of the last one sample of the intermediate data supplied from the layer processing unit 21-6 in the current frame in the memory 31-4. Supply and hold. The data held in the memory 31-4 is used for the processing of step S18 of the next frame.
  • step S19 the layer processing unit 21-8 performs a pooling process of advancing two samples targeting a two-sample ⁇ one-dimensional data area on the intermediate data supplied from the layer processing unit 21-7, and as a result.
  • the obtained intermediate data is supplied to the layer processing unit 21-9.
  • step S20 the layer processing unit 21-9 performs the convolution processing by the output holding method according to the control of the control unit 22, outputs the identification result data obtained as a result, and the identification processing ends.
  • step S20 as described with reference to FIG. 6, for one type of convolution filter of 21 ⁇ 128 taps, the convolution process at the current frame is performed by advancing one sample.
  • the layer processing unit 21-9 performs a convolution process on the input data of the input current frame using a part of the convolution filter, and the processing result and the first memory area of the memory 31-5 are displayed.
  • the result of the convolution process for the intermediate data of the past frames held is added to obtain the identification result data.
  • the signal processing device 11 realizes the identification processing by selectively using the input holding method and the output holding method in combination and performing the layer processing in each layer (layer) constituting the DNN. do. By doing so, it is possible to reduce the amount of calculation and the amount of memory required.
  • DNN processing may be for detecting a specific sound such as a human voice or a running sound of a car, or is for performing voice recognition. You may. That is, the DNN process is not limited to the above-mentioned identification process, and may be any process such as various detection processes.
  • time-series data that is the input of the DNN to which this technology is applied is not limited to audio data, but is not limited to audio data, for example, output data (sensor data) of sensors such as acceleration sensors and brain wave sensors, video data, and time-series. Any kind of data such as feature amount data may be used.
  • the time-series feature amount data extracted from the audio data is used as the data of the first dimension (channel), and the time-series feature amount data extracted from the video data is used as the data of the second dimension.
  • the time series data of may be input to the DNN as input data.
  • a DNN for example, input data consisting of audio data and video data is input, and layer processing for audio data and layer processing for video data are performed in parallel up to a predetermined layer of the DNN. You may be asked.
  • the intermediate data obtained based on the audio data and the intermediate data obtained from the video data are integrated and used as an input for one layer processing.
  • the DNN to which this technology is applied is not limited to those having a plurality of layers, and may be those having only one layer. Further, this technique is not limited to DNN, and can be applied to a device that performs various arithmetic processes such as convolution processing in one or a plurality of layers (layers) and outputs a final arithmetic processing result.
  • layer processing such as convolution processing is performed in one layer, and the data of 1 channel obtained as a result of the processing is used as the output of DNN.
  • the technology is applicable.
  • the above technology can be applied to devices that perform various real-time time-series signal processing such as voice recognition.
  • the series of processes described above can be executed by hardware or software.
  • the programs constituting the software are installed on the computer.
  • the computer includes a computer embedded in dedicated hardware and, for example, a general-purpose personal computer capable of executing various functions by installing various programs.
  • FIG. 10 is a block diagram showing a configuration example of computer hardware that executes the above-mentioned series of processes programmatically.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input / output interface 505 is further connected to the bus 504.
  • An input unit 506, an output unit 507, a recording unit 508, a communication unit 509, and a drive 510 are connected to the input / output interface 505.
  • the input unit 506 includes a keyboard, a mouse, a microphone, an image pickup device, and the like.
  • the output unit 507 includes a display, a speaker, and the like.
  • the recording unit 508 includes a hard disk, a non-volatile memory, and the like.
  • the communication unit 509 includes a network interface and the like.
  • the drive 510 drives a removable recording medium 511 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 501 loads the program recorded in the recording unit 508 into the RAM 503 via the input / output interface 505 and the bus 504 and executes the above-mentioned series. Is processed.
  • the program executed by the computer (CPU501) can be recorded and provided on a removable recording medium 511 as a package medium or the like, for example.
  • the program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be installed in the recording unit 508 via the input / output interface 505 by mounting the removable recording medium 511 in the drive 510. Further, the program can be received by the communication unit 509 and installed in the recording unit 508 via a wired or wireless transmission medium. In addition, the program can be pre-installed in the ROM 502 or the recording unit 508.
  • the program executed by the computer may be a program in which processing is performed in chronological order according to the order described in the present specification, in parallel, or at a necessary timing such as when a call is made. It may be a program in which processing is performed.
  • the embodiment of the present technology is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present technology.
  • this technology can take a cloud computing configuration in which one function is shared by multiple devices via a network and processed jointly.
  • each step described in the above flowchart can be executed by one device or shared by a plurality of devices.
  • the plurality of processes included in the one step can be executed by one device or shared by a plurality of devices.
  • this technology can also have the following configurations.
  • a signal processing device that performs processing consisting of one or more arithmetic processing on an input data in frame units.
  • An arithmetic processing unit that performs a part of the arithmetic processing of a frame in the future from the predetermined frame based on a part or all of the input data of the predetermined frame and holds the processing result of the partial processing.
  • a signal processing device. (2) The arithmetic processing unit obtains the processing result of the arithmetic processing of the future frame based on the processing result of the partial processing performed in the predetermined frame and the data of the future frame (1). ).
  • the signal processing device is (3) It has a plurality of the arithmetic processing units, and has a plurality of the arithmetic processing units.
  • At least one of the plurality of arithmetic processing units performs the partial processing in the predetermined frame, and holds the processing result of the partial processing. At least one of the plurality of arithmetic processing units has the arithmetic processing unit holding a part or all of the data in the predetermined frame, and a part or all of the data and the data in the future frame.
  • the signal processing apparatus according to (1) or (2), which performs the arithmetic processing of the future frame based on the above. (4) The partial processing is performed in the predetermined frame and the processing result of the partial processing is retained, or a part or all of the data in the predetermined frame is retained, and a part or all of the data and the said.
  • the signal processing apparatus according to any one of (1) to (3), further comprising a control unit for switching whether to perform the arithmetic processing of the future frame based on the data of the future frame. .. (5) The signal processing device according to (4), wherein the control unit performs the switching for each arithmetic processing unit.
  • the signal processing apparatus according to any one of (3) to (5), further comprising a memory for holding a processing result of the partial processing in the predetermined frame or a part or all of the data in the predetermined frame. .. (7) The signal processing apparatus according to any one of (1) to (6), wherein the one or more arithmetic processes include at least one of a convolution process, a pooling process, and a resilient process.
  • the arithmetic processing of the future frame is a convolution processing targeting a data area including a part or all of the data of the predetermined frame and at least a part of the data of the future frame.
  • the arithmetic processing unit either performs a convolution process targeting only a part or all of the data of the predetermined frame in the data area as the partial processing, or the data of the future frame in the data area.
  • the signal processing apparatus according to any one of (1) to (7), wherein the convolution process in which the portion of is zero data is performed as the partial process.
  • the signal processing apparatus according to any one of (1) to (8) which has a plurality of the arithmetic processing units and has a neural network configured by the plurality of arithmetic processing units.
  • the number of forward movements in the arithmetic processing, the number of taps of the filter consisting of the filter coefficient used in the arithmetic processing, the size of the data area targeted in the arithmetic processing, or the frame length of the input data is the data of the input data.
  • the signal processing apparatus according to any one of (1) to (9), which is determined based on the shape.
  • the signal processing device according to any one of (1) to (12), wherein the input data is data including at least one of audio data, sensor data, and video data.
  • a signal processing device that performs processing consisting of one or more arithmetic processing on an input data in frame units A signal processing method that performs a part of the arithmetic processing of a frame in the future from the predetermined frame based on a part or all of the input data of the predetermined frame and retains the processing result of the part of the processing. ..
  • a computer that controls a signal processing device that performs processing consisting of one or more arithmetic processing on a frame-by-frame basis for input data. Includes a step of performing a part of the arithmetic processing of a frame after the predetermined frame based on a part or all of the input data of the predetermined frame and holding the processing result of the part of the processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The present technology pertains to a signal processing device and method and a program that make it possible to reduce the amount of memory. Provided is a signal processing device for performing processing composed of one or a plurality of arithmetic processes on input data on a frame by frame basis. The signal processing device is provided with an arithmetic processing unit that preforms, on the basis of some or all of the data of a predetermined frame that has been input, processing for part of the arithmetic process for a future frame relative to the predetermined frame, and causes a processing result of the partial processing to be retained. The present technology is applicable to personal computers.

Description

信号処理装置および方法、並びにプログラムSignal processing equipment and methods, as well as programs

 本技術は、信号処理装置および方法、並びにプログラムに関し、特に、メモリ量を削減することができるようにした信号処理装置および方法、並びにプログラムに関する。 The present technology relates to signal processing devices and methods, and programs, and in particular, to signal processing devices, methods, and programs capable of reducing the amount of memory.

 従来、音声認識や話者識別、環境音識別等のオーディオデータに対する識別処理や、画像認識等の画像データに対する識別処理といった自動識別技術が知られている。 Conventionally, automatic identification technology such as identification processing for audio data such as voice recognition, speaker identification, and environmental sound identification, and identification processing for image data such as image recognition is known.

 このような識別処理を行うための方法として線形識別や、決定木、サポートベクタマシン、ニューラルネットワークなどを利用した方法が提案されている。 As a method for performing such identification processing, a method using linear identification, a decision tree, a support vector machine, a neural network, etc. has been proposed.

 例えばニューラルネットワークを利用し、フレーム単位で畳み込み処理等の演算処理を行うことで識別処理を実現する場合に、互いに隣接するフレームでの演算処理の処理境界を一致させることでメモリ量を削減する技術が提案されている(例えば特許文献1参照)。 For example, a technology that reduces the amount of memory by matching the processing boundaries of arithmetic processing in adjacent frames when the identification processing is realized by performing arithmetic processing such as convolution processing in frame units using a neural network. Has been proposed (see, for example, Patent Document 1).

国際公開第2019/146398号International Publication No. 2019/146398

 しかしながら、上述した技術では、入力されるデータのチャネル数が多い場合など、十分にメモリ量を削減することができないことがあった。 However, with the above-mentioned technology, it may not be possible to sufficiently reduce the amount of memory, such as when the number of input data channels is large.

 本技術は、このような状況に鑑みてなされたものであり、メモリ量を削減することができるようにするものである。 This technology was made in view of such a situation, and makes it possible to reduce the amount of memory.

 本技術の一側面の信号処理装置は、入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置であって、入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させる演算処理部を備える。 The signal processing device of one aspect of the present technology is a signal processing device that performs processing consisting of one or a plurality of arithmetic processes on an input data in a frame unit, and is used for a part or all of the input predetermined frame data. Based on this, it is provided with an arithmetic processing unit that performs a part of the arithmetic processing of a frame in the future from the predetermined frame and holds the processing result of the partial processing.

 本技術の一側面の信号処理方法またはプログラムは、入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置の信号処理方法またはプログラムであって、入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させるステップを含む。 The signal processing method or program of one aspect of the present technology is a signal processing method or program of a signal processing device that performs processing consisting of one or a plurality of arithmetic processes on an input data in a frame unit, and is a predetermined frame input. The present invention includes a step of performing a part of the arithmetic processing of a frame after the predetermined frame based on a part or all of the data of the above, and holding the processing result of the part of the processing.

 本技術の一側面においては、入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置において、入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理が行われ、前記一部の処理の処理結果が保持される。 In one aspect of the present technology, in a signal processing device that performs processing consisting of one or a plurality of arithmetic processes on an input data in frame units, the predetermined data is based on a part or all of the input data of a predetermined frame. A part of the arithmetic processing of the frame in the future than the frame is performed, and the processing result of the part of the processing is retained.

フレーム単位のDNN処理について説明する図である。It is a figure explaining the DNN processing in the frame unit. 入力保持手法について説明する図である。It is a figure explaining an input holding method. 畳み込み処理とプーリング処理について説明する図である。It is a figure explaining the convolution process and the pooling process. 出力保持手法について説明する図である。It is a figure explaining an output holding method. 出力保持手法による畳み込み処理の具体例を説明する図である。It is a figure explaining the specific example of the convolution processing by an output holding method. 出力保持手法による畳み込み処理の具体例を説明する図である。It is a figure explaining the specific example of the convolution processing by an output holding method. 出力保持手法によるプーリング処理の具体例を説明する図である。It is a figure explaining the specific example of the pooling process by the output holding method. 信号処理装置の構成例を示す図である。It is a figure which shows the configuration example of a signal processing apparatus. 識別処理を説明するフローチャートである。It is a flowchart explaining the identification process. コンピュータの構成例を示す図である。It is a figure which shows the configuration example of a computer.

 以下、図面を参照して、本技術を適用した実施の形態について説明する。 Hereinafter, embodiments to which the present technology is applied will be described with reference to the drawings.

〈第1の実施の形態〉
〈本技術について〉
 本技術は、ニューラルネットワークを構成する所定レイヤの演算処理を行う場合に、現フレームのデータにおける未来のフレームの演算処理に用いる部分に基づいて、未来のフレームの演算処理の一部を行って、その演算結果をメモリに保持しておくことで、メモリ量を削減することができるようにするものである。
<First Embodiment>
<About this technology>
This technology performs a part of the arithmetic processing of the future frame based on the part used for the arithmetic processing of the future frame in the data of the current frame when the arithmetic processing of the predetermined layer constituting the neural network is performed. By holding the calculation result in the memory, the amount of memory can be reduced.

 この場合、例えば次フレームでは、その次フレームのデータに基づく演算処理の結果と、メモリに保持されている、現フレームの一部のデータでの演算結果とから、次フレームにおける所定レイヤでの演算処理の結果を得ることができる。 In this case, for example, in the next frame, the calculation in the predetermined layer in the next frame is performed from the result of the calculation processing based on the data of the next frame and the calculation result of a part of the data of the current frame held in the memory. The result of processing can be obtained.

 例えば音声などの時系列データである入力データに対して、ニューラルネットワーク(以下、DNN(Deep Neural Network)と称する)による処理を、ある時間間隔の単位、ここでは入力データのフレーム単位で行う装置を考える。フレーム単位での処理とは、フレームの先頭または末尾の位置を処理の開始位置として処理を行うことである。 For example, a device that performs processing by a neural network (hereinafter referred to as DNN (Deep Neural Network)) on input data that is time-series data such as voice in a certain time interval unit, here, in a frame unit of input data. think. The processing in frame units is to perform processing with the position of the beginning or the end of the frame as the start position of processing.

 この場合、入力データのフレームの長さが、そのフレームについて行われるDNNでの処理全体で用いられる入力データの長さよりも短いとき、過去のフレームの演算処理と重複する部分の演算処理について演算量(計算量)を削減できる可能性がある。 In this case, when the frame length of the input data is shorter than the length of the input data used in the entire processing in DNN performed for that frame, the amount of calculation for the calculation processing of the part that overlaps with the calculation processing of the past frame. There is a possibility that (calculation amount) can be reduced.

 例えば図1に示すように、入力データDT11に対してDNNにより識別処理を行い、その処理結果として、入力データDT11に対する所定の識別結果(推論結果)を出力する装置(識別器)があるとする。 For example, as shown in FIG. 1, it is assumed that there is a device (discriminator) that performs identification processing on the input data DT11 by DNN and outputs a predetermined identification result (inference result) for the input data DT11 as the processing result. ..

 なお、本技術は識別器に限らず、他のどのような処理に対しても適用可能であるが、以下では本技術を識別器に適用した例について説明する。 Note that this technology can be applied not only to classifiers but also to any other processing, but an example of applying this technology to classifiers will be described below.

 この例では入力データDT11は、サンプリング周波数が24kHzである3チャネルのオーディオデータとされる。 In this example, the input data DT11 is 3 channels of audio data with a sampling frequency of 24 kHz.

 DNNによる識別処理(以下、DNN処理とも称する)では、入力データDT11に対して、1024サンプル間隔、すなわち1フレームの間隔で、入力されたデータに対する1つの識別結果を出力する識別処理が行われるとする。 In the identification process by DNN (hereinafter, also referred to as DNN process), when the input data DT11 is subjected to the identification process that outputs one identification result for the input data at 1024 sample intervals, that is, at intervals of one frame. do.

 このとき、1つの識別結果を得るために、DNNに対して23760サンプル分の長さの入力データDT11が入力されるとする。例えば23760サンプル分のオーディオデータは、約1秒分のデータである。 At this time, it is assumed that the input data DT11 having a length of 23760 samples is input to the DNN in order to obtain one identification result. For example, the audio data for 23760 samples is the data for about 1 second.

 具体的には、例えば図2に示すように、入力データDT11に対する識別処理を行うDNNが、レイヤL1乃至レイヤL9の9個のレイヤにより構成され、各レイヤにおいて畳み込み処理またはプーリング処理がレイヤ処理(演算処理)として行われるとする。 Specifically, for example, as shown in FIG. 2, the DNN that performs the identification process for the input data DT11 is composed of nine layers of layers L1 to L9, and the convolution process or pooling process is layered (layer process) in each layer. It is assumed that it is performed as arithmetic processing).

 すなわち、図2は、入力された入力データDT11に対する識別処理を行い、その識別結果を出力するニューラルネットワーク構造の識別器であるDNNの構成を示している。 That is, FIG. 2 shows the configuration of DNN, which is a discriminator of a neural network structure that performs identification processing on the input input data DT11 and outputs the identification result.

 図2では、各四角形はデータの形状を表しており、特に各データにおける図中、縦方向は時間方向を示しており、図中、横方向は次元を示している。 In FIG. 2, each quadrangle represents the shape of data, and in particular, in the figure of each data, the vertical direction shows the time direction, and the horizontal direction in the figure shows the dimension.

 また図中、横方向の矢印はデータの変換、すなわちレイヤ処理を表している。ここで、各データのデータ形状は、データの次元数と、各次元におけるデータ数(データサンプル数)、つまり時間方向のサンプル数とにより定まるものである。 Also, in the figure, the horizontal arrow indicates data conversion, that is, layer processing. Here, the data shape of each data is determined by the number of dimensions of the data and the number of data (number of data samples) in each dimension, that is, the number of samples in the time direction.

 さらに、図2では、各データの図中、左側に記されている数値は、それらのデータの時間方向の長さ(サンプル数)を示しており、各データの図中、上側に記されている数値は、それらのデータの次元数を示している。 Further, in FIG. 2, the numerical value shown on the left side in the figure of each data indicates the length (number of samples) of the data in the time direction, and is shown on the upper side in the figure of each data. The numbers shown indicate the number of dimensions of those data.

 例えば図中、左側の端にある四角形の入力データDT11は、DNNに入力される3チャネル分のオーディオデータである。 For example, in the figure, the square input data DT11 at the left end is audio data for 3 channels input to the DNN.

 ここでは入力データDT11における図中、縦方向は時間方向を示しており、図中、横方向は次元(チャネル)を示している。特に、入力データDT11における図中、下方向がより新しい時刻の方向(未来方向)となっている。 Here, in the figure of the input data DT11, the vertical direction indicates the time direction, and the horizontal direction in the figure indicates the dimension (channel). In particular, in the figure of the input data DT11, the downward direction is the newer time direction (future direction).

 入力データDT11は、23760サンプル分の時間区間(長さ)の3チャネル分のオーディオデータである。 Input data DT11 is audio data for 3 channels in the time interval (length) for 23760 samples.

 ここでは、オーディオデータのチャネルが入力データDT11の次元に対応しており、入力データDT11の形状は23760サンプル×3次元となる。また、入力データDT11の図中、上側にあるサンプルほど過去のサンプルとなる。 Here, the audio data channel corresponds to the dimension of the input data DT11, and the shape of the input data DT11 is 23760 samples x 3 dimensions. Further, in the figure of the input data DT11, the sample on the upper side is a past sample.

 図2に示すDNNでは、入力データDT11を入力として9個の各階層、すなわち各レイヤL1乃至レイヤL9においてレイヤ処理(演算処理)が行われ、図中、右側の端にある識別結果データDT20が出力として得られる。 In the DNN shown in FIG. 2, layer processing (arithmetic processing) is performed in each of the nine layers, that is, each layer L1 to L9, with the input data DT11 as an input, and the identification result data DT20 at the right end in the figure is Obtained as output.

 すなわち、1フレームでの処理につき、23760サンプルの長さの入力データDT11の入力に対して、1つの識別結果データDT20が得られる。 That is, one identification result data DT20 is obtained for the input of the input data DT11 having a length of 23760 samples per processing in one frame.

 この例では、DNNでは、各レイヤでの演算処理として、畳み込み処理とプーリング処理が順番に繰り返し行われ、最終的に1つの識別結果データDT20が出力される。 In this example, in DNN, convolution processing and pooling processing are repeated in order as arithmetic processing in each layer, and finally one identification result data DT20 is output.

 この識別結果データDT20は、DNNによる識別結果を示す1×1(1サンプル×1次元)のデータである。例えば識別結果データDT20は、入力データDT11に基づく音声が予め定められた特定の音声である確率を示すデータなどとされる。 This identification result data DT20 is 1 × 1 (1 sample × 1 dimension) data showing the identification result by DNN. For example, the identification result data DT20 is data indicating the probability that the voice based on the input data DT11 is a predetermined specific voice.

 図2に示すDNNでは、まず1番目のレイヤL1において、入力データDT11に対して16種類の畳み込みフィルタごとにフィルタ処理が行われる。換言すれば、16種類の畳み込みフィルタごとに、畳み込みフィルタを構成するフィルタ係数と、入力データDT11との畳み込み処理が行われる。 In the DNN shown in FIG. 2, first, in the first layer L1, the input data DT11 is filtered for each of the 16 types of convolution filters. In other words, for each of the 16 types of convolution filters, a convolution process is performed between the filter coefficients constituting the convolution filter and the input data DT11.

 レイヤL1の畳み込み処理で用いられる畳み込みフィルタは、96×3タップの形状のフィルタとなっている。換言すれば、畳み込みフィルタのタップ数、つまりフィルタ係数の数は96×3となっている。また、畳み込みフィルタでの畳み込み処理では、16サンプル前進のフィルタ処理が行われる。 The convolution filter used in the convolution process of layer L1 is a filter with a shape of 96 x 3 taps. In other words, the number of taps on the convolution filter, that is, the number of filter coefficients, is 96 × 3. In addition, in the convolution process with the convolution filter, 16 sample advance filter processing is performed.

 なお、図2において「サイズ」は畳み込みフィルタの時間方向のサイズを示している。例えばレイヤL1の畳み込みフィルタは、時間方向に96タップで次元(チャネル)方向に3タップであるので、レイヤL1の畳み込みフィルタのサイズは「96」となっている。以下、畳み込みフィルタの時間方向のタップ数をサイズとも称することとする。 In FIG. 2, "size" indicates the size of the convolution filter in the time direction. For example, the layer L1 convolution filter has 96 taps in the time direction and 3 taps in the dimension (channel) direction, so the size of the layer L1 convolution filter is "96". Hereinafter, the number of taps in the time direction of the convolution filter will also be referred to as a size.

 また、以下では、レイヤL1など、畳み込み処理が行われるレイヤを、特に畳み込みレイヤとも称することとする。同様に、以下、プーリング処理が行われるレイヤを、特にプーリングレイヤとも称することとする。 Further, in the following, a layer to which the convolution process is performed, such as layer L1, will be referred to as a convolution layer in particular. Similarly, hereinafter, the layer on which the pooling process is performed will also be referred to as a pooling layer.

 このようなレイヤL1での畳み込み処理によって、入力データDT11は中間データDT12へと変換される。中間データDT12は16次元のデータとなっている。すなわち、中間データDT12は図中、横方向に並ぶ16個の各次元のデータからなる。 By such convolution processing in layer L1, the input data DT11 is converted into the intermediate data DT12. The intermediate data DT12 is 16-dimensional data. That is, the intermediate data DT12 consists of 16 data of each dimension arranged in the horizontal direction in the figure.

 2番目のレイヤL2では、中間データDT12に対して、8サンプル×1次元のデータ領域を対象とし、そのデータ領域から最大値を抽出するプーリング処理が8サンプル前進で行われる。 In the second layer L2, the pooling process of extracting the maximum value from the data area of 8 samples x 1 dimension is performed for the intermediate data DT12 by advancing 8 samples.

 換言すれば、時間方向に連続して並ぶ8サンプルの長さのデータ領域を対象として最大値を抽出する8サンプル前進のプーリング処理が中間データDT12に対して行われる。 In other words, the pooling process of 8 samples forward, which extracts the maximum value for the data area of 8 samples that are continuously arranged in the time direction, is performed on the intermediate data DT12.

 以下では、畳み込み処理やプーリング処理の対象となるデータ領域の時間方向の長さを「サイズ」とも称し、データ領域の次元方向の長さを「幅」とも称することとする。 In the following, the length of the data area to be convolved or pooled in the time direction is also referred to as "size", and the length of the data area in the dimensional direction is also referred to as "width".

 例えば図2中、レイヤL2の部分には「サイズ8」および「前進8」と記されており、レイヤL2では8サンプル×1次元のデータ領域を対象とした8サンプル前進のプーリング処理が行われることが分かる。 For example, in FIG. 2, the layer L2 is marked with "size 8" and "advance 8", and the layer L2 performs a pooling process of 8 samples advancing for an 8 sample × 1-dimensional data area. You can see that.

 このようなプーリング処理により、中間データDT12が16次元の中間データDT13へと変換される。 By such pooling processing, the intermediate data DT12 is converted into the 16-dimensional intermediate data DT13.

 ここで、図3を参照して、レイヤL1における畳み込み処理と、レイヤL2におけるプーリング処理について説明する。 Here, with reference to FIG. 3, the convolution process in the layer L1 and the pooling process in the layer L2 will be described.

 なお、図3において図2における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。また、図3において横方向は次元方向を示しており、縦方向は時間方向を示している。特に、図3中、下方向が未来方向となっている。 Note that, in FIG. 3, the same reference numerals are given to the parts corresponding to the cases in FIG. 2, and the description thereof will be omitted as appropriate. Further, in FIG. 3, the horizontal direction indicates the dimensional direction, and the vertical direction indicates the time direction. In particular, in FIG. 3, the downward direction is the future direction.

 例えばレイヤL1において、図中、左側に示すように入力データDT11における96サンプル×3次元のデータ領域W11に対して畳み込み処理が行われたとすると、16サンプル前進し、96サンプル×3次元のデータ領域W12に対して次の畳み込み処理が行われる。 For example, in layer L1, assuming that the convolution process is performed on the 96 sample × 3D data area W11 in the input data DT11 as shown on the left side in the figure, the convolution process is advanced by 16 samples and the 96 sample × 3D data area. The following convolution process is performed on W12.

 ここで、データ領域W11とデータ領域W12とは16サンプル分だけずれた領域となっている。したがって、例えばデータ領域W12の下端にあるサンプルを1番目のサンプルとして図中、上方向に数えていくと、データ領域W11の下端にあるサンプルは17番目のサンプルとなる。 Here, the data area W11 and the data area W12 are displaced by 16 samples. Therefore, for example, if the sample at the lower end of the data area W12 is counted upward in the figure as the first sample, the sample at the lower end of the data area W11 is the 17th sample.

 以上のように、レイヤL1では16種類の畳み込みフィルタごとに、処理対象とするデータ領域を16サンプルずつずらしていく畳み込み処理が繰り返し行われて、中間データDT12が生成される。 As described above, in layer L1, the convolution process of shifting the data area to be processed by 16 samples is repeatedly performed for each of the 16 types of convolution filters, and the intermediate data DT12 is generated.

 例えば1番目の畳み込みフィルタによりデータ領域W11に対して畳み込みを行うことで得られた値(処理結果)が中間データDT12の図中、左端の下から2番目にあるサンプルSP11のサンプル値とされる。 For example, the value (processing result) obtained by convolving the data area W11 with the first convolution filter is the sample value of the sample SP11, which is the second from the bottom in the figure of the intermediate data DT12. ..

 同様にして、1番目の畳み込みフィルタによりデータ領域W12に対して畳み込みを行うことで得られた値が中間データDT12の図中、左端の下から1番目にあるサンプルSP12のサンプル値とされる。 Similarly, the value obtained by convolving the data area W12 with the first convolution filter is the sample value of the sample SP12, which is the first from the bottom in the figure of the intermediate data DT12.

 また、例えば2番目の畳み込みフィルタによりデータ領域W11に対して畳み込みを行うことで得られた値は、中間データDT12におけるサンプルSP11の図中、右側に隣接するサンプルのサンプル値とされる。 Further, for example, the value obtained by convolving the data area W11 with the second convolution filter is the sample value of the sample adjacent to the right side in the figure of the sample SP11 in the intermediate data DT12.

 レイヤL2では、図中、中央に示すように中間データDT12における8サンプル×1次元のデータ領域W21に対してプーリング処理が行われたとすると、8サンプル前進し、8サンプル×1次元のデータ領域W22に対して次のプーリング処理が行われる。 In layer L2, assuming that the pooling process is performed on the 8 samples × 1 dimensional data area W21 in the intermediate data DT12 as shown in the center of the figure, the pooling process is advanced by 8 samples and the 8 samples × 1 dimensional data area W22. The following pooling process is performed on the data.

 例えばデータ領域W21に対するプーリング処理では、そのデータ領域W21内にあるサンプルのサンプル値の最大値が抽出され、その最大値がプーリング処理の処理結果として得られることになる。 For example, in the pooling process for the data area W21, the maximum value of the sample value of the sample in the data area W21 is extracted, and the maximum value is obtained as the processing result of the pooling process.

 また、ここでは、データ領域W21とデータ領域W22とは8サンプル分だけずれた領域となっている。 Also, here, the data area W21 and the data area W22 are offset by 8 samples.

 レイヤL2では、中間データDT12における図中、左端にある次元のデータだけでなく、各次元のデータに対してプーリング処理が行われる。例えばデータ領域W21に隣接する、8サンプル×1次元のデータ領域W23に対してもプーリング処理が行われる。 In layer L2, pooling processing is performed not only for the data of the leftmost dimension in the figure of the intermediate data DT12, but also for the data of each dimension. For example, pooling processing is also performed on the data area W23 of 8 samples × 1 dimension adjacent to the data area W21.

 以上のように、レイヤL2では中間データDT12の次元ごとに、処理対象とするデータ領域を8サンプルずつずらしていくプーリング処理が繰り返し行われて、中間データDT13が生成される。 As described above, in layer L2, the pooling process of shifting the data area to be processed by 8 samples is repeated for each dimension of the intermediate data DT12, and the intermediate data DT13 is generated.

 例えばデータ領域W21に対するプーリング処理で得られた値(処理結果)が中間データDT13の図中、左端の下から2番目にあるサンプルSP21のサンプル値とされる。 For example, the value (processing result) obtained by the pooling process for the data area W21 is the sample value of the sample SP21, which is the second from the bottom on the left end in the figure of the intermediate data DT13.

 同様に、データ領域W22に対するプーリング処理で得られた値が中間データDT13におけるサンプルSP21の図中、下側に隣接するサンプルSP22のサンプル値とされる。また、データ領域W23に対するプーリング処理で得られた値が中間データDT13におけるサンプルSP21の図中、右側に隣接するサンプルSP23のサンプル値とされる。 Similarly, the value obtained by the pooling process for the data area W22 is the sample value of the sample SP22 adjacent to the lower side in the figure of the sample SP21 in the intermediate data DT13. Further, the value obtained by the pooling process for the data area W23 is taken as the sample value of the sample SP23 adjacent to the right side in the figure of the sample SP21 in the intermediate data DT13.

 図2の説明に戻り、レイヤL2におけるプーリング処理によって中間データDT13が得られると、3番目のレイヤであるレイヤL3では、32種類の畳み込みフィルタが用いられて、レイヤL1における場合と同様の畳み込み処理が行われる。 Returning to the explanation of FIG. 2, when the intermediate data DT13 is obtained by the pooling process in the layer L2, the third layer, the layer L3, uses 32 types of convolution filters and the same convolution process as in the layer L1. Is done.

 すなわちレイヤL3では、サイズが8であり、次元方向の幅が16である8×16(8サンプル×16次元)の畳み込みフィルタによる1サンプル前進の畳み込み処理(フィルタ処理)が、中間データDT13に対して32種類の畳み込みフィルタごとに行われる。 That is, in layer L3, the convolution processing (filter processing) of 1 sample advance by the 8 × 16 (8 samples × 16 dimensions) convolution filter having a size of 8 and a width in the dimensional direction of 16 is applied to the intermediate data DT13. It is done for each of the 32 types of convolution filters.

 これにより、中間データDT13が32次元の中間データDT14へと変換される。 As a result, the intermediate data DT13 is converted into the 32-dimensional intermediate data DT14.

 レイヤL4では、サイズが2であり、次元方向の幅が1である2×1(2サンプル×1次元)のデータ領域を対象とするプーリング処理が2サンプル前進で、中間データDT14の各次元に対して行われる。これにより、中間データDT14が32次元の中間データDT15へと変換される。 In layer L4, the pooling process targeting a 2 × 1 (2 samples × 1 dimension) data area with a size of 2 and a width of 1 in the dimension direction is advanced by 2 samples to each dimension of the intermediate data DT14. It is done against. As a result, the intermediate data DT14 is converted into the 32-dimensional intermediate data DT15.

 レイヤL5では、サイズが4であり、次元方向の幅が32である4×32(4サンプル×32次元)の畳み込みフィルタによる1サンプル前進の畳み込み処理が、中間データDT15に対して64種類の畳み込みフィルタごとに行われる。これにより、中間データDT15が64次元の中間データDT16へと変換される。 In layer L5, one-sample forward convolution processing by a 4 x 32 (4 samples x 32 dimensions) convolution filter with a size of 4 and a width of 32 in the dimensional direction performs 64 types of convolutions for the intermediate data DT15. It is done for each filter. As a result, the intermediate data DT15 is converted into the 64-dimensional intermediate data DT16.

 レイヤL6では、サイズが2であり、次元方向の幅が1である2×1(2サンプル×1次元)のデータ領域を対象とするプーリング処理が2サンプル前進で、中間データDT16の各次元に対して行われ、中間データDT16が64次元の中間データDT17へと変換される。 In layer L6, the pooling process targeting a 2 × 1 (2 samples × 1 dimension) data area with a size of 2 and a width of 1 in the dimension direction is advanced by 2 samples to each dimension of the intermediate data DT16. The intermediate data DT16 is converted into the 64-dimensional intermediate data DT17.

 レイヤL7では、サイズが2であり、次元方向の幅が64である2×64(2サンプル×64次元)の畳み込みフィルタによる1サンプル前進の畳み込み処理が、中間データDT17に対して128種類の畳み込みフィルタごとに行われる。これにより、中間データDT17が128次元の中間データDT18へと変換される。 In layer L7, the convolution process of 1 sample advance by the 2 × 64 (2 samples × 64 dimensions) convolution filter with the size 2 and the width in the dimension direction is 64, 128 kinds of convolutions for the intermediate data DT17. It is done for each filter. As a result, the intermediate data DT17 is converted into the 128-dimensional intermediate data DT18.

 レイヤL8では、サイズが2であり、次元方向の幅が1である2×1(2サンプル×1次元)のデータ領域を対象とするプーリング処理が2サンプル前進で中間データDT18の各次元に対して行われ、中間データDT18が128次元の中間データDT19へと変換される。 In layer L8, pooling processing targeting a 2 × 1 (2 samples × 1 dimension) data area with a size of 2 and a width in the dimension direction of 1 is performed for each dimension of intermediate data DT18 by advancing 2 samples. The intermediate data DT18 is converted into 128-dimensional intermediate data DT19.

 レイヤL9では、サイズが21であり、次元方向の幅が128である21×128(21サンプル×128次元)の1種類の畳み込みフィルタによる1サンプル前進の畳み込み処理が、中間データDT19に対して行われる。 In layer L9, one sample forward convolution process by one type of convolution filter of 21 x 128 (21 samples x 128 dimensions) with a size of 21 and a width in the dimension direction of 128 is performed for the intermediate data DT19. Will be.

 これにより、中間データDT19がDNNの出力である1サンプル×1次元の識別結果データDT20に変換され、このようにして得られた識別結果データDT20が、入力データDT11に対する識別処理の結果(識別結果)として出力される。 As a result, the intermediate data DT19 is converted into 1 sample × 1-dimensional identification result data DT20 which is the output of DNN, and the identification result data DT20 thus obtained is the result of the identification process (identification result) for the input data DT11. ) Is output.

 なお、ここでは識別結果データDT20が1サンプル×1次元のデータである例について説明するが、DNNの出力データである識別結果データDT20は、どのようなサンプル数(時間方向の長さ)や次元数のデータであってもよい。 Here, an example in which the identification result data DT20 is 1 sample × 1 dimensional data will be described, but what kind of sample number (length in the time direction) and dimension of the identification result data DT20 which is the output data of the DNN will be described. It may be numerical data.

 以上のようなレイヤL1からレイヤL9までの複数の各レイヤでの演算処理が、ニューラルネットワーク構造の識別器(DNN)により行われる。 The arithmetic processing in each of the plurality of layers from layer L1 to layer L9 as described above is performed by the discriminator (DNN) of the neural network structure.

 特に、畳み込みレイヤでは、その畳み込みレイヤの入力となるデータに対して、「サイズ」×「入力されたデータの次元数」の形状の畳み込みフィルタによる畳み込み処理が、予め定められた種類の数の畳み込みフィルタの分だけ、「前進」のサンプル間隔で行われる。 In particular, in the convolution layer, the convolution process by the convolution filter in the shape of "size" x "number of dimensions of the input data" is performed on the input data of the convolution layer by a predetermined number of convolutions. It is done at "forward" sample intervals by the amount of the filter.

 また、プーリングレイヤでは、そのプーリングレイヤの入力となるデータに対して、「サイズ」×1次元のデータ領域に含まれる複数のサンプルのサンプル値の最大値を出力するプーリング処理が、データの次元ごとに「前進」のサンプル間隔で行われる。 In the pooling layer, the pooling process that outputs the maximum value of the sample values of multiple samples included in the "size" x one-dimensional data area for the data input to the pooling layer is performed for each data dimension. It is done at "forward" sample intervals.

 図2では、入力データDT11および中間データDT12乃至中間データDT19の各データを表す四角形の全体が、それらのデータを入力とするレイヤにおいて実質的に処理対象となるデータ部分を示している。 In FIG. 2, the entire rectangle representing each data of the input data DT11 and the intermediate data DT12 to the intermediate data DT19 shows the data portion to be substantially processed in the layer in which the data is input.

 このようなDNNを動作させる最も簡単な方法は、22736(=23760-1024)サンプル分の長さの過去のフレームの入力データDT11を保持しておき、その保持している入力データDT11と、現フレームの1024サンプル分の長さの入力データDT11とを合わせて、23760サンプル分の長さの入力データDT11をDNNに入力する方法である。以下では、このような手法を一般手法とも称することとする。 The simplest way to operate such a DNN is to hold the input data DT11 of the past frame of the length of 22736 (= 23760-1024) samples, and hold the input data DT11 and the current input data DT11. This is a method of inputting input data DT11 with a length of 23760 samples to DNN together with input data DT11 with a length of 1024 samples of a frame. Hereinafter, such a method will also be referred to as a general method.

 このような一般手法では、各フレームで23760サンプル×3次元に対する識別処理(DNN処理)を行う必要があり、識別処理の演算量(計算量)が多くなってしまう。また、過去のフレームの入力データDT11の保持のために22736サンプル×3次元分のメモリ量が必要となる。 In such a general method, it is necessary to perform identification processing (DNN processing) for 23760 samples × 3 dimensions in each frame, and the amount of calculation (calculation amount) of the identification processing becomes large. In addition, a memory amount of 22736 samples x 3 dimensions is required to hold the input data DT11 of the past frame.

 そこで、例えば現フレームの時間的に直前のフレーム(以下、前フレームとも称する)におけるレイヤ処理の処理結果の一部をメモリに保持しておくことで、現フレームで行うレイヤ処理の演算量を最小限に抑えて、識別処理全体の演算量とメモリ量を削減することが考えられる。以下、このような手法を入力保持手法とも称することとする。 Therefore, for example, by holding a part of the processing result of the layer processing in the frame immediately before the time of the current frame (hereinafter, also referred to as the previous frame) in the memory, the calculation amount of the layer processing performed in the current frame is minimized. It is conceivable to reduce the amount of calculation and the amount of memory of the entire identification process by limiting it to the limit. Hereinafter, such a method will also be referred to as an input holding method.

 入力保持手法では、所定のレイヤにおいて、入力された前フレームのデータの一部がメモリに保持され、その前フレームの一部のデータと、現フレームで入力されたデータとに基づいて、現フレームについてのレイヤ処理が行われる。 In the input holding method, a part of the data of the input previous frame is held in the memory in a predetermined layer, and the current frame is based on the part of the data of the previous frame and the data input in the current frame. Layer processing is performed for.

 なお、以下の説明において、各手法についてDNN(識別器)は、各レイヤのレイヤ処理での前フレームと現フレームの処理境界が一致する構造となっているものとする。 In the following description, it is assumed that the DNN (discriminator) for each method has a structure in which the processing boundaries of the previous frame and the current frame in the layer processing of each layer match.

 このようなDNNでは、少なくとも1つのレイヤにおいて、そのレイヤでフレームに対して行われるレイヤ処理の処理単位、すなわち処理対象となるデータ領域、またはサンプル前進数が、入力データDT11の全体または1フレーム分の処理で用いられる部分のデータ形状により定まる大きさまたは前進数となっている。また、例えば入力データDT11のフレーム長(フレームのサンプル数)も、入力データDT11全体のデータ形状により定まる長さとされている。 In such a DNN, in at least one layer, the processing unit of the layer processing performed on the frame in that layer, that is, the data area to be processed or the number of sample advances is the entire input data DT11 or one frame. The size or the number of advances is determined by the data shape of the part used in the processing of. Further, for example, the frame length (number of frame samples) of the input data DT11 is also set to be a length determined by the data shape of the entire input data DT11.

 換言すれば、DNNは各レイヤのレイヤ処理で互いに隣接するフレームの処理境界が一致するように、それらのレイヤ処理での処理単位、すなわち処理対象となるデータ領域のサイズ(長さ)やサンプル前進数、入力データDT11のフレーム長が定められているとする。 In other words, DNN is the processing unit in those layer processing, that is, the size (length) of the data area to be processed and the sample advance so that the processing boundaries of adjacent frames match each other in the layer processing of each layer. It is assumed that the number and the frame length of the input data DT11 are defined.

 ここでいう処理単位とは、1度のレイヤ処理を行うときに対象とされる領域であり、例えば畳み込み処理であれば、サイズ×次元数、すなわち畳み込みフィルタのタップ数により定まる大きさの領域である。 The processing unit here is an area that is targeted when performing one layer processing. For example, in the case of convolution processing, it is an area of size determined by size x number of dimensions, that is, the number of taps of the convolution filter. be.

 DNNの各レイヤでフレームの処理境界が一致することとは、入力データDT11のフレームの長さが、DNNが本来持つ処理間隔の整数倍となっていることである。 The fact that the frame processing boundaries match at each layer of DNN means that the frame length of the input data DT11 is an integral multiple of the processing interval that DNN originally has.

 例えば図2に示すDNNでは、そのDNNが持つ処理間隔は、レイヤL1乃至レイヤL9の全レイヤでのレイヤ処理における前進数(サンプル前進数)の積である。この例では前進数の積は1024であり、その積の1倍が入力データDT11のフレーム長である1024サンプルとなっている。 For example, in the DNN shown in FIG. 2, the processing interval of the DNN is the product of the number of advances (sample advance number) in the layer processing in all the layers of layers L1 to L9. In this example, the product of the number of forward movements is 1024, and 1 times the product is 1024 samples, which is the frame length of the input data DT11.

 ここで、図2を参照して、入力保持手法について説明する。 Here, the input holding method will be described with reference to FIG.

 図2では、各レイヤに入力されるデータ全体が、それらのデータを入力とするレイヤにおいて実質的に処理対象となるデータ部分を示している。 In FIG. 2, the entire data input to each layer shows a data portion to be substantially processed in the layer to which those data are input.

 入力保持手法では、過去のフレームの処理結果の一部、より具体的には各データにおける斜線部分をメモリに保持しておくことで、現フレームで処理対象とする部分のデータ量を少なく抑えることができる。 In the input holding method, a part of the processing result of the past frame, more specifically, the shaded part in each data is held in the memory, so that the amount of data of the part to be processed in the current frame can be suppressed to a small amount. Can be done.

 具体的には、レイヤL1では入力データDT11における前フレームの部分的なデータPDT11がメモリに保持され、そのデータPDT11と、入力データDT11の現フレームのデータIDT11とに基づいて、現フレームについての畳み込み処理が行われる。 Specifically, in layer L1, the partial data PDT11 of the previous frame in the input data DT11 is held in the memory, and the convolution of the current frame is performed based on the data PDT11 and the data IDT11 of the current frame of the input data DT11. Processing is done.

 ここで、データPDT11は、時間方向の長さが80サンプルである3次元のデータ、すなわち入力データDT11の前フレームにおける先頭から80サンプル分の長さの部分のデータである。また、データIDT11は入力データDT11の現フレームの部分、つまり1フレーム分の長さのデータである。 Here, the data PDT11 is three-dimensional data having a length of 80 samples in the time direction, that is, data having a length of 80 samples from the beginning in the previous frame of the input data DT11. The data ID T11 is a part of the current frame of the input data DT11, that is, data having a length of one frame.

 レイヤL2では、中間データDT12の現フレームのデータIDT12に対して、現フレームについてのプーリング処理が行われる。 In layer L2, pooling processing for the current frame is performed for the data IDT12 of the current frame of the intermediate data DT12.

 レイヤL3では中間データDT13における前フレームの一部のデータPDT12がメモリに保持され、そのデータPDT12と、中間データDT13の現フレームのデータIDT13とに基づいて、現フレームについての畳み込み処理が行われる。 In layer L3, a part of the data PDT12 of the previous frame in the intermediate data DT13 is held in the memory, and the convolution process for the current frame is performed based on the data PDT12 and the data IDT13 of the current frame of the intermediate data DT13.

 レイヤL4では、中間データDT14の現フレームのデータIDT14に対して、現フレームについてのプーリング処理が行われる。 In layer L4, pooling processing for the current frame is performed for the data IDT14 of the current frame of the intermediate data DT14.

 レイヤL5では中間データDT15における前フレームの一部のデータPDT13がメモリに保持され、そのデータPDT13と、中間データDT15の現フレームのデータIDT15とに基づいて、現フレームについての畳み込み処理が行われる。 In layer L5, a part of the data PDT13 of the previous frame in the intermediate data DT15 is held in the memory, and the convolution processing for the current frame is performed based on the data PDT13 and the data IDT15 of the current frame of the intermediate data DT15.

 レイヤL6では、中間データDT16の現フレームのデータIDT16に対して、現フレームについてのプーリング処理が行われる。 In layer L6, pooling processing for the current frame is performed for the data IDT16 of the current frame of the intermediate data DT16.

 レイヤL7では中間データDT17における前フレームの一部のデータPDT14がメモリに保持され、そのデータPDT14と、中間データDT17の現フレームのデータIDT17とに基づいて、現フレームについての畳み込み処理が行われる。 In layer L7, a part of the data PDT14 of the previous frame in the intermediate data DT17 is held in the memory, and the convolution process for the current frame is performed based on the data PDT14 and the data IDT17 of the current frame of the intermediate data DT17.

 レイヤL8では、中間データDT18の現フレームのデータIDT18に対して、現フレームについてのプーリング処理が行われる。 In layer L8, pooling processing for the current frame is performed for the data IDT18 of the current frame of the intermediate data DT18.

 レイヤL9では中間データDT19における過去のフレームのデータPDT15がメモリに保持され、そのデータPDT15と、中間データDT19の現フレームのデータIDT19とに基づいて、現フレームについての畳み込み処理が行われる。 In layer L9, the data PDT15 of the past frame in the intermediate data DT19 is held in the memory, and the convolution processing for the current frame is performed based on the data PDT15 and the data IDT19 of the current frame of the intermediate data DT19.

 したがって、入力保持手法では、現フレームの各レイヤ処理を行うにあたり、データPDT11乃至データPDT15を保持しておくだけのメモリ量があればよく、大幅に必要なメモリ量を削減することができる。 Therefore, in the input holding method, it is sufficient to have a memory amount sufficient to hold the data PDT11 to the data PDT15 when performing each layer processing of the current frame, and the required memory amount can be significantly reduced.

 また、入力保持手法では、データPDT11乃至データPDT15をメモリに保持しておくことで、データIDT11乃至データIDT19、およびデータPDT11乃至データPDT15のみを対象として現フレームのレイヤ処理を行えば、識別結果データDT20を得ることができる。したがって、一般手法と比較して大幅に演算量を削減することができる。 In the input holding method, by holding the data PDT11 to the data PDT15 in the memory, the identification result data can be obtained by performing layer processing of the current frame only for the data IDT11 to the data IDT19 and the data PDT11 to the data PDT15. You can get DT20. Therefore, the amount of calculation can be significantly reduced as compared with the general method.

 このようなメモリ量と演算量の削減について、より詳細に説明する。 The reduction in the amount of memory and the amount of calculation will be explained in more detail.

 まず、レイヤL9でメモリに保持されるデータPDT15は、20(サイズ)×128(次元)のデータである。 First, the data PDT15 held in the memory at layer L9 is 20 (size) x 128 (dimension) data.

 このデータPDT15は、入力データDT11全体である23760サンプル分の長さの部分のうちの現フレームの部分(データIDT11)を除いた22736サンプル分の長さの部分に対して畳み込み処理とプーリング処理を順番に行うことで得られるデータである。 This data PDT15 performs convolution processing and pooling processing on the part of the length of 22736 samples excluding the part of the current frame (data IDT11) in the part of the length of 23760 samples which is the entire input data DT11. It is the data obtained by performing in order.

 現フレームにおいて、中間データDT19におけるデータPDT15の未来側に隣接する1(サイズ)×128(次元)のデータIDT19を算出することができれば、そのデータIDT19とデータPDT15の部分を合わせてレイヤL9で畳み込み処理を行い、識別結果データDT20を得ることができる。 If the data IDT19 of 1 (size) × 128 (dimension) adjacent to the future side of the data PDT15 in the intermediate data DT19 can be calculated in the current frame, the data IDT19 and the data PDT15 are combined and convolved in the layer L9. The processing can be performed and the identification result data DT20 can be obtained.

 データIDT19の部分の計算は、各畳み込みレイヤにおいて前フレームと現フレームの境界部分にあたる、すなわち前フレームのデータであって、現フレームの畳み込み処理にも用いられるデータPDT11乃至データPDT14を保持しておけば行うことができる。 The calculation of the data IDT19 part corresponds to the boundary part between the previous frame and the current frame in each convolution layer, that is, the data of the previous frame, and the data PDT11 to the data PDT14 which are also used for the convolution processing of the current frame should be retained. Can be done.

 したがって、過去のフレームのデータPDT11乃至データPDT15の部分を保持しておくことで、現フレームについての識別処理(DNN処理)、つまりDNN全体の処理を行うことができる。 Therefore, by retaining the data PDT11 to data PDT15 parts of the past frame, it is possible to perform the identification processing (DNN processing) for the current frame, that is, the processing of the entire DNN.

 以上のように、入力保持手法では、各畳み込みレイヤにおいて現フレームにおける畳み込み処理で必要となる、過去のフレームの直前のレイヤ等から入力されるデータ、すなわち入力データまたは中間データがメモリに保持される。 As described above, in the input holding method, the data input from the layer immediately before the past frame, that is, the input data or the intermediate data, which is required for the convolution processing in the current frame in each convolution layer, is held in the memory. ..

 このとき、畳み込みレイヤで必要となるメモリ量は、次式(1)により求まる。 At this time, the amount of memory required for the convolution layer can be obtained by the following equation (1).

Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000001

 なお、式(1)において「畳み込みサイズ」は、畳み込み処理で用いられる畳み込みフィルタの時間方向のタップ数、すなわち時間方向のサイズであり、「前進数」は畳み込み処理時の前進数(サンプル前進数)である。また、式(1)において「入力されるデータの次元数」は、畳み込みレイヤに入力される入力データまたは中間データの次元数(チャネル数)である。 In the equation (1), the "convolution size" is the number of taps in the time direction of the convolution filter used in the convolution process, that is, the size in the time direction, and the "advance number" is the number of advances in the convolution process (sample advance number). ). Further, in the equation (1), the “number of dimensions of the input data” is the number of dimensions (number of channels) of the input data or the intermediate data input to the convolution layer.

 したがって、図2に示した入力保持手法では、データPDT11乃至データPDT15の保持に必要なメモリ量の総和は、式(1)から3072となる。 Therefore, in the input holding method shown in FIG. 2, the total amount of memory required for holding the data PDT 11 to the data PDT 15 is 3072 from the equation (1).

 しかし、入力保持手法では、各レイヤにおいて、入力されるデータ(入力データまたは中間データ)の次元数が大きくなるほど、前フレームの処理結果の保持に必要なメモリ量が多くなってしまう。特に、図2の例では、最終レイヤであるレイヤL9において2560(=20×128)ものメモリ量が必要である。 However, in the input holding method, the larger the number of dimensions of the input data (input data or intermediate data) in each layer, the larger the amount of memory required to hold the processing result of the previous frame. In particular, in the example of FIG. 2, the memory amount of 2560 (= 20 × 128) is required in the layer L9 which is the final layer.

 そこで、現フレームで入力されたデータの一部または全部、すなわちレイヤでの現フレームのデータのうちの未来のフレームでのレイヤ処理に用いる部分に基づいて、その未来のフレームでのレイヤ処理の一部を行った結果をメモリに保持しておくようにしてもよい。 Therefore, one of the layer processing in the future frame based on a part or all of the data input in the current frame, that is, the part of the data in the current frame in the layer used for the layer processing in the future frame. The result of performing the part may be retained in the memory.

 以下、このような手法を出力保持手法とも称することとする。 Hereinafter, such a method will also be referred to as an output holding method.

 出力保持手法で識別処理(DNN処理)を行うことで、入力保持手法と同等の演算量で、入力保持手法における場合よりもさらに必要なメモリ量を削減することができる。 By performing identification processing (DNN processing) with the output holding method, it is possible to reduce the amount of memory required even more than with the input holding method, with the same amount of calculation as the input holding method.

 出力保持手法では、各レイヤにおいて、入力された過去のフレームの前レイヤからのデータではなく、次のレイヤへと出力される中間データの一部、またはその中間データを得るためのデータがメモリに保持される。 In the output retention method, in each layer, not the data from the previous layer of the input past frame, but a part of the intermediate data output to the next layer, or the data for obtaining the intermediate data is stored in the memory. Be retained.

 ここで、図4を参照して、図2を参照して説明した構成のDNNに出力保持手法を適用した場合の例について説明する。なお、図4において図2における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。 Here, with reference to FIG. 4, an example in which the output holding method is applied to the DNN having the configuration described with reference to FIG. 2 will be described. In FIG. 4, the same reference numerals are given to the portions corresponding to those in FIG. 2, and the description thereof will be omitted as appropriate.

 図4に示す出力保持手法においてもDNNの各レイヤにおいて、基本的には入力保持手法と同じ演算(レイヤ処理)が行われる。 In the output holding method shown in FIG. 4, basically the same operation (layer processing) as the input holding method is performed in each layer of the DNN.

 すなわち、DNNはレイヤL1乃至レイヤL9の9個のレイヤからなり、それらのレイヤでは図2における場合と同様のレイヤ処理が行われる。 That is, the DNN consists of nine layers, layer L1 to layer L9, and the same layer processing as in FIG. 2 is performed on those layers.

 但し、畳み込みレイヤであるレイヤL1、レイヤL3、レイヤL5、レイヤL7、およびレイヤL9では、入力保持手法のようにデータPDT11乃至データPDT15を保持するのではなく、それらのレイヤでの処理結果であるデータPDT21乃至データPDT25がメモリに保持される。 However, the convolution layers Layer L1, Layer L3, Layer L5, Layer L7, and Layer L9 do not retain the data PDT11 to the data PDT15 as in the input retention method, but are the processing results in those layers. Data PDT21 to data PDT25 are held in memory.

 これらのデータPDT21乃至データPDT25は、レイヤに入力された現フレームや過去のフレームのデータに基づいて、その現フレームよりも時間的に先(未来)のフレームでのレイヤ処理の一部を行うことで得られたデータである。 These data PDT21 to data PDT25 perform a part of layer processing in the frame ahead (future) in time from the current frame based on the data of the current frame or the past frame input to the layer. It is the data obtained in.

 例えばデータPDT21は、レイヤL1に入力された前フレームの入力データの一部であるデータPDT11に基づいて、現フレームのデータIDT12を得るための畳み込み処理の一部の処理、すなわちデータPDT11を用いた演算部分を行うことで得られるものである。換言すれば、PDT21は、現フレームについての畳み込み処理の処理結果の一部である。 For example, the data PDT21 uses a part of the convolution process for obtaining the data IDT12 of the current frame, that is, the data PDT11, based on the data PDT11 which is a part of the input data of the previous frame input to the layer L1. It is obtained by performing the calculation part. In other words, PDT21 is a part of the processing result of the convolution processing for the current frame.

 この例では、データPDT21は5(サイズ)×16(次元)のデータであり、データPDT21の保持に必要なメモリ量は80(=5×16)となる。したがって、データPDT11の保持に必要なメモリ量240(80×3)と比較してメモリ量が削減できることが分かる。 In this example, the data PDT21 is 5 (size) x 16 (dimension) data, and the amount of memory required to hold the data PDT21 is 80 (= 5 x 16). Therefore, it can be seen that the amount of memory can be reduced as compared with the amount of memory 240 (80 × 3) required to hold the data PDT11.

 また、図4の例ではデータPDT22は7(サイズ)×32(次元)のデータであり、データPDT23は3(サイズ)×64(次元)のデータであり、データPDT24は1(サイズ)×128(次元)のデータであり、データPDT25は20(サイズ)×1(次元)のデータである。 Further, in the example of FIG. 4, the data PDT22 is 7 (size) × 32 (dimension) data, the data PDT23 is 3 (size) × 64 (dimension) data, and the data PDT24 is 1 (size) × 128. It is (dimensional) data, and the data PDT25 is 20 (size) × 1 (dimensional) data.

 これらのデータPDT21乃至データPDT25の保持に必要となるメモリ量は644であり、全体で入力保持手法において必要となるメモリ量3072と比較して大幅にメモリ量を削減できることが分かる。特に図4の例では、最初のレイヤL1と最終のレイヤ9において、メモリ量の削減効果が大きくなっている。 The amount of memory required to hold these data PDT21 to data PDT25 is 644, and it can be seen that the amount of memory required for the input holding method as a whole can be significantly reduced compared to the amount of memory 3072. In particular, in the example of FIG. 4, the effect of reducing the amount of memory is large in the first layer L1 and the final layer 9.

 出力保持手法では、畳み込みレイヤで必要となるメモリ量は次式(2)により求まる。 In the output holding method, the amount of memory required for the convolution layer can be obtained by the following equation (2).

Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000002

 式(2)において「ceil」は切り上げを示しており、「畳み込みサイズ」は、畳み込み処理で用いられる畳み込みフィルタの時間方向のタップ数、すなわち時間方向のサイズである。また、「前進数」は畳み込み処理時の前進数(サンプル前進数)であり、「出力されるデータの次元数」は、畳み込み処理により得られるデータの次元数である。 In equation (2), "ceil" indicates rounding up, and "convolution size" is the number of taps in the time direction of the convolution filter used in the convolution process, that is, the size in the time direction. Further, the "advance number" is the advance number (sample advance number) at the time of the convolution process, and the "dimension number of output data" is the dimension number of the data obtained by the convolution process.

 なお、図2に示した入力保持手法と、図4に示した出力保持手法とを比較すると、全体的には出力保持手法の方がメモリ量を削減することができるが、レイヤによっては出力保持手法よりも入力保持手法の方がメモリ量の削減効果が高いことがある。 Comparing the input holding method shown in FIG. 2 with the output holding method shown in FIG. 4, the output holding method can reduce the amount of memory as a whole, but the output holding method may be used depending on the layer. The input holding method may be more effective in reducing the amount of memory than the method.

 そこで、入力保持手法と出力保持手法を組み合わせて用いるようにしてもよい。すなわち、レイヤごとに入力保持手法と出力保持手法の何れの手法を用いるかを選択できるようにしてもよい。 Therefore, the input holding method and the output holding method may be used in combination. That is, it may be possible to select whether to use the input holding method or the output holding method for each layer.

 例えば図2と図4を参照して説明した例において、レイヤL1とレイヤL9では出力保持手法を採用し、レイヤL3、レイヤL5、およびレイヤL7では入力保持手法を採用するようにしてもよい。 For example, in the example described with reference to FIGS. 2 and 4, the output holding method may be adopted for the layers L1 and L9, and the input holding method may be adopted for the layers L3, L5, and layer L7.

 そのような場合、全体でデータPDT21、データPDT12乃至データPDT14、およびデータPDT25を保持する分のメモリが必要であるので、そのメモリ量は372となる。したがって、入力保持手法における場合と比較すると、3072から372へと約1/8にメモリ量を削減することができる。 In such a case, the memory amount for holding the data PDT21, the data PDT12 to the data PDT14, and the data PDT25 is required as a whole, so the memory amount is 372. Therefore, the amount of memory can be reduced to about 1/8 from 3072 to 372 as compared with the case of the input holding method.

 ここで、出力保持手法の具体的な例について説明する。 Here, a specific example of the output holding method will be described.

 まず、図5を参照して、図4における出力保持手法のレイヤL1での畳み込み処理について説明する。なお、図5において図2または図4における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。 First, with reference to FIG. 5, the convolution process in the layer L1 of the output holding method in FIG. 4 will be described. In FIG. 5, the same reference numerals are given to the portions corresponding to those in FIGS. 2 or 4, and the description thereof will be omitted as appropriate.

 レイヤL1では、現フレームにおいて、前フレームで入力された1024×3のデータの一部のデータPDT11と、現フレームで入力されたデータIDT11とが対象とされる。 In layer L1, in the current frame, the data PDT11, which is a part of the 1024 × 3 data input in the previous frame, and the data IDT11 input in the current frame are targeted.

 そして、その対象とされたデータに対して、サイズ「96」×次元「3」の畳み込みフィルタによる16サンプル前進の畳み込み処理が16種類の畳み込みフィルタごとに行われ、その結果得られたデータIDT12が次のレイヤL2へと出力される。 Then, for the target data, a 16-sample forward convolution process is performed for each of the 16 types of convolution filters by a convolution filter of size "96" x dimension "3", and the resulting data IDT12 is obtained. It is output to the next layer L2.

 このような現フレームの畳み込み処理のうち、前フレームから現フレームへと跨っている部分の畳み込み、すなわちデータPDT11を用いる畳み込みは、現フレームで入力されるデータIDT11だけでは行うことはできない。 Of such convolution processing of the current frame, the convolution of the part straddling from the previous frame to the current frame, that is, the convolution using the data PDT11 cannot be performed only by the data IDT11 input in the current frame.

 そのため、入力保持手法では、前フレームで入力された1フレーム分の入力データDT11のうちの末尾80サンプル(=サイズ96-前進数16)×3次元分のデータPDT11自体をメモリに保持しておくことで、演算量とメモリ量の削減を行っていた。この場合、必要となるメモリ量は240(=80×3)である。 Therefore, in the input retention method, the last 80 samples (= size 96-advance number 16) of the input data DT11 for one frame input in the previous frame x 3D data PDT11 itself is retained in the memory. As a result, the amount of calculation and the amount of memory were reduced. In this case, the required amount of memory is 240 (= 80 × 3).

 これに対して出力保持手法では、Q11に示すように、前フレームにおいて、入力されたデータPDT11を用いて行う現フレームでの畳み込み処理の一部を行い、その処理結果をメモリM11に保持しておくようにする。すなわち、前フレームの段階で、その前フレームから見て未来にある現フレームの分まで畳み込みフィルタを適用しておくようにする。 On the other hand, in the output holding method, as shown in Q11, in the previous frame, a part of the convolution processing in the current frame performed using the input data PDT11 is performed, and the processing result is held in the memory M11. I will leave it. That is, at the stage of the previous frame, the convolution filter is applied up to the current frame in the future as seen from the previous frame.

 なお、矢印Q11に示す部分において、1つの四角形は、現フレームにおける畳み込み処理で用いられる入力データDT11の部分を表しており、四角形内の斜線部分は、畳み込みに用いられる前フレームのデータ部分(データPDT11の一部または全部)を表している。 In the part indicated by arrow Q11, one quadrangle represents the part of the input data DT11 used in the convolution process in the current frame, and the shaded part in the quadrangle is the data part (data) of the previous frame used for convolution. Represents part or all of PDT11).

 特に、矢印Q11に示す部分における右からn番目(n=1,2,…,5)にある四角形は、現フレームで行われるn回目の畳み込み処理で用いられるデータを表している。 In particular, the quadrangle at the nth position (n = 1,2, ..., 5) from the right in the part indicated by arrow Q11 represents the data used in the nth convolution process performed in the current frame.

 また、メモリM11は、図中、上下方向に並べられた5個のメモリ領域からなり、ここでは図中、上からn番目(n=1,2,…,5)にあるメモリ領域を単にn番目のメモリ領域とも称することとする。 In addition, the memory M11 consists of five memory areas arranged in the vertical direction in the figure, and here, the memory area at the nth position (n = 1,2, ..., 5) from the top in the figure is simply n. It will also be referred to as the second memory area.

 ここで、現フレームで行われる複数回の畳み込み処理のうち、データPDT11が必要となるのは、1回目から5回目までの畳み込み処理である。 Here, of the multiple convolution processes performed in the current frame, the data PDT11 is required for the 1st to 5th convolution processes.

 例えば、1回目の畳み込み処理ではデータPDT11全体、つまり前フレームの末尾80サンプル分の長さの部分が用いられ、2回目の畳み込み処理では、データPDT11の末尾64サンプル分の長さの部分が用いられる。また、5回目の畳み込み処理では、データPDT11の末尾16サンプル分の長さの部分が用いられる。 For example, in the first convolution process, the entire data PDT11, that is, the part of the length of the last 80 samples of the previous frame is used, and in the second convolution process, the part of the length of the last 64 samples of the data PDT11 is used. Be done. In the fifth convolution process, the length of the last 16 samples of the data PDT11 is used.

 具体的には、現フレームのn回目(n=1,2,…,5)の畳み込み処理の一部として、前フレームで入力されたデータPDT11の末尾(96-16n)サンプル分の長さの部分と、畳み込みフィルタの先頭(96-16n)サンプル分の部分のフィルタ係数との畳み込みが行われ、その処理結果がメモリM11のn番目のメモリ領域に格納されて保持される。 Specifically, as part of the nth (n = 1,2, ..., 5) convolution process of the current frame, the length of the last (96-16n) sample of the data PDT11 input in the previous frame. Convolution is performed between the part and the filter coefficient of the part of the head (96-16n) sample of the convolution filter, and the processing result is stored and held in the nth memory area of the memory M11.

 データPDT11の末尾(96-16n)サンプル分の長さの部分に対する畳み込み処理は、畳み込みフィルタの種類ごとに行われるため、メモリM11のn番目のメモリ領域には、16種類の各畳み込みフィルタについて得られた畳み込み処理の結果が保持される。 Since the convolution process for the length of the end (96-16n) sample of the data PDT11 is performed for each type of convolution filter, the nth memory area of memory M11 is obtained for each of the 16 types of convolution filters. The result of the convolution process is retained.

 したがって、出力保持手法では、レイヤL1においてフレームごとの畳み込み処理のためのデータの保持に必要となるメモリ量は、メモリM11のメモリ量である5(サイズ)×16(次元)となる。 Therefore, in the output holding method, the amount of memory required to hold the data for the convolution processing for each frame in the layer L1 is 5 (size) × 16 (dimensions), which is the memory amount of the memory M11.

 なお、現フレームのn回目(n=1,2,…,5)の畳み込み処理では、実際には96(サイズ)×3(次元)のデータ領域が対象とされるが、前フレームでは、そのデータ領域のうちの現フレームで入力される16nサンプル分の長さのデータ部分は存在しない。 In the nth (n = 1,2, ..., 5) convolution process of the current frame, the data area of 96 (size) x 3 (dimension) is actually targeted, but in the previous frame, that There is no data part of the length of 16n samples input in the current frame in the data area.

 そのため、前フレームで予め行われる、現フレームのn回目の畳み込み処理の一部を行うときには、その16nサンプル分の長さのデータ部分に対する畳み込みの計算は行われないようにする、つまり前フレームで入力される(96-16n)サンプル分の長さのデータ部分のみを対象として畳み込み処理が行われる。 Therefore, when performing a part of the nth convolution process of the current frame, which is performed in advance in the previous frame, the convolution calculation for the data part of the length of the 16n sample is not performed, that is, in the previous frame. Convolution processing is performed only for the data part of the length of the input (96-16n) sample.

 その他、前フレームで予め行われる、現フレームのn回目の畳み込み処理の一部を行うときには、現フレームで入力される16nサンプル分の長さのデータ部分がゼロデータとされて畳み込み処理が行われるようにしてもよい。 In addition, when performing a part of the nth convolution process of the current frame, which is performed in advance in the previous frame, the data part of the length of 16n samples input in the current frame is regarded as zero data and the convolution process is performed. You may do so.

 これにより、現フレームのn回目の畳み込み処理で対象となるデータ全体のうちの末尾16nサンプル分のデータがない状態であっても、そのn回目の畳み込み処理の一部の処理を実行したときの処理結果を得ることができる。 As a result, even if there is no data for the last 16n samples of the entire target data in the nth convolution process of the current frame, when a part of the nth convolution process is executed. The processing result can be obtained.

 以上のようにして、前フレームの入力データDT11が入力されたときに、現フレームの入力データDT11が入力される前の段階で、現フレームについての先頭n回分の畳み込み処理の一部が行われ、その処理結果がメモリM11に保持される。このときメモリM11に保持されるデータが図4に示したデータPDT21である。 As described above, when the input data DT11 of the previous frame is input, a part of the convolution processing for the first n times of the current frame is performed before the input data DT11 of the current frame is input. , The processing result is held in the memory M11. At this time, the data held in the memory M11 is the data PDT21 shown in FIG.

 そして、現フレームではデータIDT11が入力されるので、矢印Q12に示すように、そのデータIDT11が用いられて、16種類の畳み込みフィルタごとに、16サンプル前進での畳み込み処理が行われる。 Then, since the data IDT11 is input in the current frame, the data IDT11 is used as shown by the arrow Q12, and the convolution processing is performed by 16 samples forward for each of the 16 types of convolution filters.

 なお、矢印Q12に示す部分において、1つの四角形は、現フレームにおける畳み込み処理で用いられる入力データDT11の部分を表しており、四角形内の斜線部分は、現フレームのデータIDT11の畳み込み処理に用いられる部分を表している。 In the part indicated by the arrow Q12, one quadrangle represents the part of the input data DT11 used in the convolution process in the current frame, and the shaded part in the quadrangle is used in the convolution process of the data ID T11 in the current frame. Represents a part.

 特に、矢印Q12に示す部分における右からn番目(n=1,2,…,5)にある四角形は、現フレームで行われるn回目の畳み込み処理で用いられるデータを表している。 In particular, the quadrangle at the nth position (n = 1,2, ..., 5) from the right in the part indicated by arrow Q12 represents the data used in the nth convolution process performed in the current frame.

 現フレームにおいて、最初の5回の畳み込み処理については、既に一部の計算(処理)が前フレームで行われ、その処理結果がメモリM11に保持されている。 In the current frame, for the first 5 convolution processes, some calculations (processes) have already been performed in the previous frame, and the process results are held in the memory M11.

 そこで、現フレームのn(n=1,2,…,5)回目の畳み込み処理については、入力されたデータIDT11の先頭16nサンプル分の長さの部分と、畳み込みフィルタの末尾16nサンプル分の部分のフィルタ係数との畳み込み処理が行われる。 Therefore, for the n (n = 1,2, ..., 5) convolution processing of the current frame, the part of the length of the first 16n samples of the input data IDT11 and the part of the last 16n samples of the convolution filter. Convolution processing with the filter coefficient of is performed.

 そして、その畳み込み処理の結果と、メモリM11のn番目のメモリ領域に保持されている同じ畳み込みフィルタでの畳み込み処理の結果とが加算され、その加算結果が現フレームの最終的なn回目の畳み込み処理の処理結果として出力される。 Then, the result of the convolution process and the result of the convolution process by the same convolution filter held in the nth memory area of the memory M11 are added, and the addition result is the final nth convolution of the current frame. It is output as the processing result of the processing.

 これにより、現フレームでの畳み込み処理のうち、前フレームから現フレームへと跨っているデータ領域部分に対する畳み込み処理の処理結果を得ることができる。 As a result, of the convolution processing in the current frame, the processing result of the convolution processing for the data area portion extending from the previous frame to the current frame can be obtained.

 例えば、現フレームの1回目の畳み込み処理では、データIDT11の先頭16サンプル分の長さの部分と、畳み込みフィルタの末尾16サンプル分の部分のフィルタ係数との畳み込み処理が行われる。そして、その処理結果とメモリM11の1番目のメモリ領域に保持されている畳み込み処理の結果とが加算され、データIDT12の先頭1サンプル×1次元分のデータとして出力される。 For example, in the first convolution process of the current frame, the convolution process is performed with the length part of the first 16 samples of the data IDT11 and the filter coefficient of the part of the last 16 samples of the convolution filter. Then, the processing result and the result of the convolution processing held in the first memory area of the memory M11 are added and output as data for the first sample of the data ID T12 × 1 dimension.

 なお、現フレームのデータIDT11を用いたn回目の畳み込み処理においても、前フレームの現フレームのための畳み込み処理時と同様に、対象となるデータ領域の先頭(96-16n)サンプル分の部分が存在しないので、その部分については畳み込みの計算が行われないようにされるか、またはゼロデータとされて畳み込み処理が行われる。 In the nth convolution process using the data IDT11 of the current frame, the part of the head (96-16n) sample of the target data area is the same as in the convolution process for the current frame of the previous frame. Since it does not exist, the convolution calculation is not performed for that part, or the convolution process is performed with zero data.

 また、現フレームでは、6回目以降の畳み込み処理については、対象となるデータ領域は、全てデータIDT11に含まれているので、データIDT11の対象となるデータ領域に対して畳み込みフィルタによる畳み込み処理が行われる。これにより、現フレームの畳み込み処理の最終的な処理結果としてデータIDT12が得られる。 Also, in the current frame, for the 6th and subsequent convolution processes, the target data area is all included in the data IDT11, so the convolution process is performed by the convolution filter for the target data area of the data IDT11. Will be. As a result, the data IDT12 is obtained as the final processing result of the convolution processing of the current frame.

 さらに現フレームでは、矢印Q13の部分に示すように、矢印Q11に示した部分における場合と同様にして、現フレームの次のフレームでの畳み込み処理の一部が行われる。 Furthermore, in the current frame, as shown in the part of arrow Q13, a part of the convolution process in the next frame of the current frame is performed in the same manner as in the case of the part shown in arrow Q11.

 すなわち、次フレームで行われる複数回の畳み込み処理のうち、データIDT11が必要となる1回目から5回目までの畳み込み処理における、データIDT11を用いる部分の処理(計算)が行われ、その処理結果がメモリM11に格納されて保持される。 That is, of the multiple convolution processes performed in the next frame, the part that uses the data IDT11 in the first to fifth convolution processes that require the data IDT11 is processed (calculated), and the processing result is Stored and retained in memory M11.

 レイヤL1では、以上において説明した処理がフレームごとに繰り返し行われる。 In layer L1, the process described above is repeated frame by frame.

 レイヤL1で必要となるメモリ量は、上述の式(2)から80(=ceil((96-16)/16)×16)であり、入力保持手法での必要なメモリ量240と比較して、必要となるメモリ量を1/3に削減できることが分かる。 The amount of memory required for layer L1 is 80 (= ceil ((96-16) / 16) × 16) from the above equation (2), which is compared with the amount of memory 240 required for the input holding method. It can be seen that the amount of memory required can be reduced to 1/3.

 次に、図6を参照して、図4における出力保持手法のレイヤL9での畳み込み処理について説明する。なお、図6において図2または図4における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。 Next, with reference to FIG. 6, the convolution process in the layer L9 of the output holding method in FIG. 4 will be described. In FIG. 6, the same reference numerals are given to the portions corresponding to those in FIGS. 2 or 4, and the description thereof will be omitted as appropriate.

 レイヤL9では、現フレームにおいて、1(サイズ)×128(次元)のデータIDT19が直前のレイヤL8から入力される。 In layer L9, data IDT19 of 1 (size) x 128 (dimension) is input from the immediately preceding layer L8 in the current frame.

 そして、現フレームの畳み込み処理として、サイズ「21」×次元「128」の畳み込みフィルタによる1サンプル前進の畳み込み処理が1種類の畳み込みフィルタで行われ、その結果得られた識別結果データDT20が出力される。 Then, as the convolution processing of the current frame, the convolution processing of one sample forward by the convolution filter of size "21" x dimension "128" is performed by one type of convolution filter, and the identification result data DT20 obtained as a result is output. To.

 この場合、畳み込み処理の対象となるデータ領域は、直前のレイヤL8から入力される中間データDT19のうち、現フレームで入力されるデータIDT19の部分と、過去(直近)の20フレームで入力される20×128のデータPDT15の部分とからなる領域である。 In this case, the data area to be convolved is the part of the data IDT19 input in the current frame and the past (most recent) 20 frames of the intermediate data DT19 input from the immediately preceding layer L8. It is an area consisting of a part of data PDT15 of 20 × 128.

 現フレームでの畳み込み処理のうち、前フレームから現フレームへと跨っている部分の畳み込み、すなわちデータPDT15を用いる畳み込みは、現フレームで入力されるデータIDT19だけでは行うことはできない。 Of the convolution processing in the current frame, the convolution of the part straddling from the previous frame to the current frame, that is, the convolution using the data PDT15, cannot be performed only by the data IDT19 input in the current frame.

 そのため、入力保持手法では、レイヤL8から入力された過去20フレーム分の中間データDT19、すなわち20サンプル×128次元分のデータPDT15自体をメモリに保持しておくことで、演算量とメモリ量の削減を行っていた。この場合、必要となるメモリ量は2560(=20×128)である。 Therefore, in the input holding method, the amount of calculation and the amount of memory are reduced by holding the intermediate data DT19 for the past 20 frames input from layer L8, that is, the data PDT15 itself for 20 samples x 128 dimensions in the memory. Was going. In this case, the required amount of memory is 2560 (= 20 × 128).

 これに対して出力保持手法では、Q21に示すように、過去20フレーム分のデータからなるデータPDT15を用いて行う、未来のフレームでの畳み込み処理の一部を行い、その処理結果をメモリM21に保持しておくようにする。すなわち、前フレームの段階で、その前フレームから見て未来にあるフレームの分まで畳み込みフィルタを適用しておくようにする。 On the other hand, in the output retention method, as shown in Q21, a part of the convolution processing in the future frame, which is performed using the data PDT15 consisting of the data for the past 20 frames, is performed, and the processing result is stored in the memory M21. Try to keep it. That is, at the stage of the previous frame, the convolution filter is applied to the frames in the future as seen from the previous frame.

 なお、矢印Q21に示す部分において、1つの四角形は、前フレームから見て未来にあるフレームにおける畳み込み処理で用いられる中間データDT19の部分を表している。 In the part indicated by arrow Q21, one quadrangle represents the part of the intermediate data DT19 used in the convolution process in the frame in the future when viewed from the previous frame.

 また、それらの四角形内の斜線部分は、畳み込みに用いられる現フレームよりも過去のフレームのデータ部分(データPDT15の一部または全部)を表している。 Also, the shaded area in those rectangles represents the data part (part or all of the data PDT15) of the frame past the current frame used for convolution.

 特に、矢印Q21に示す部分における右からn番目(n=1,2,…,20)にある四角形(一部は不図示)は、前フレーム(現フレームの直前のフレーム)から見て、未来方向のn番目にあるフレームでの畳み込み処理で用いられるデータを表している。 In particular, the quadrangle (partly not shown) at the nth position (n = 1,2, ..., 20) from the right in the part indicated by arrow Q21 is the future when viewed from the previous frame (the frame immediately before the current frame). It represents the data used in the convolution process at the nth frame in the direction.

 また、それらの四角形内の斜線の施された部分は、中間データDT19のうちの現フレームよりも過去のフレームのデータ部分を表しており、四角形内の斜線の施されていない部分は、現フレーム以降のデータ部分、つまり前フレームから見て未来のフレームのデータ部分を表している。 In addition, the shaded part in those rectangles represents the data part of the frame past the current frame in the intermediate data DT19, and the part without diagonal lines in the rectangle represents the current frame. It represents the subsequent data part, that is, the data part of the future frame when viewed from the previous frame.

 例えば、矢印Q21に示す部分における右から1番目(右端)にある四角形は、レイヤL9の現フレームでの畳み込み処理に用いられるデータを表しており、この四角形内の斜線の施されていない部分は、現フレームで入力されるデータIDT19を表している。 For example, the quadrangle at the first (right end) from the right in the part indicated by arrow Q21 represents the data used for the convolution process in the current frame of layer L9, and the unshaded part in this quadrangle is. , Represents the data IDT19 input in the current frame.

 また、例えば矢印Q21に示す部分における右から2番目にある四角形は、レイヤL9の現フレームの次のフレームでの畳み込み処理に用いられるデータを表しており、この四角形内の斜線の施されていない部分は、現フレーム以降で入力されるデータを表している。 Also, for example, the second quadrangle from the right in the part indicated by arrow Q21 represents the data used for the convolution process in the next frame of the current frame of layer L9, and the diagonal line in this quadrangle is not applied. The part represents the data input after the current frame.

 メモリM21は、図中、上下方向に並べられた20個のメモリ領域からなり、ここでは図中、上からn番目(n=1,2,…,20)にあるメモリ領域を単にn番目のメモリ領域とも称することとする。 The memory M21 consists of 20 memory areas arranged in the vertical direction in the figure. Here, the memory area at the nth position (n = 1,2, ..., 20) from the top in the figure is simply the nth memory area. It will also be referred to as a memory area.

 ここで、出力保持手法の動作原理を、帰納的に説明する。 Here, the operating principle of the output holding method will be explained inductively.

 仮に現フレームにおいて、レイヤL9に入力された過去(21-n)サンプル分の中間データDT19、すなわちデータPDT15の末尾(21-n)サンプル分の長さの部分と、畳み込みフィルタの先頭(21-n)サンプル分の部分のフィルタ係数との畳み込みの結果がメモリM21のn番目のメモリ領域に保持されているとする。 Temporarily, in the current frame, the intermediate data DT19 for the past (21-n) samples input to layer L9, that is, the length part for the end (21-n) samples of the data PDT15 and the beginning of the convolution filter (21-). n) It is assumed that the result of convolution with the filter coefficient of the sample portion is held in the nth memory area of the memory M21.

 すなわち、畳み込みフィルタの先頭(21-n)サンプル分の部分を用いて、前フレームから見て未来方向のn番目にあるフレームでの畳み込み処理の一部を行ったときの処理結果がメモリM21のn番目のメモリ領域に保持されているとする。 That is, the processing result when a part of the convolution processing in the nth frame in the future direction from the previous frame is performed using the part of the head (21-n) sample of the convolution filter is the memory M21. It is assumed that it is held in the nth memory area.

 このとき、現フレームにおいて、矢印Q22に示すように現フレームで入力された1サンプル分の長さのデータIDT19と、畳み込みフィルタの末尾1サンプル分の部分のフィルタ係数との畳み込みを行ったとする。 At this time, it is assumed that in the current frame, the data IDT19 of the length of one sample input in the current frame and the filter coefficient of the part of the last one sample of the convolution filter are convoluted as shown by the arrow Q22.

 そうすると、そのデータIDT19に対する畳み込みの処理結果と、メモリM21の1番目のメモリ領域に保持されている処理結果とを加算すれば、現フレームについての畳み込み処理の処理結果、つまり中間データDT19の合計21サンプル分の長さのデータ領域に対する畳み込み処理の処理結果である識別結果データDT20を得ることができる。 Then, if the processing result of the convolution for the data IDT19 and the processing result held in the first memory area of the memory M21 are added, the processing result of the convolution processing for the current frame, that is, the total of the intermediate data DT19 is 21. The identification result data DT20, which is the processing result of the convolution process for the data area of the length of the sample, can be obtained.

 なお、矢印Q22に示す部分における右からn番目(n=1,2,…,21)にある四角形(一部は不図示)は、前フレーム(現フレームの直前のフレーム)から見て、未来方向のn番目にあるフレームでのレイヤL9の畳み込み処理で用いられる中間データDT19の部分を表している。 The quadrangle (partly not shown) at the nth position (n = 1,2, ..., 21) from the right in the part indicated by arrow Q22 is the future when viewed from the previous frame (the frame immediately before the current frame). It represents the part of the intermediate data DT19 used in the convolution process of layer L9 at the nth frame in the direction.

 特に、それらの四角形内の斜線部分は、現フレームで入力されるデータIDT19を表している。四角形内におけるデータIDT19の部分よりも上側にある部分は、過去のフレームのデータ部分を表しており、四角形内におけるデータIDT19の部分よりも下側にある部分は、未来のフレームのデータ部分を表している。 In particular, the shaded areas in those rectangles represent the data IDT19 input in the current frame. The part above the data IDT19 part in the rectangle represents the data part of the past frame, and the part below the data IDT19 part in the rectangle represents the data part of the future frame. ing.

 例えば、矢印Q22に示す部分における右から1番目(右端)にある四角形は、レイヤL9の現フレームでの畳み込み処理に用いられるデータを表している。 For example, the quadrangle at the first (right end) from the right in the part indicated by arrow Q22 represents the data used for the convolution process in the current frame of layer L9.

 出力保持手法では、矢印Q22に示す部分の右端にある四角形で表されるように、現フレームで入力されたデータIDT19に対する畳み込みの処理結果と、メモリM21の1番目のメモリ領域に保持されている処理結果とが加算され、現フレームの識別結果データDT20として出力される。 In the output retention method, as shown by the square at the right end of the part indicated by arrow Q22, the data IDT19 input in the current frame is stored in the convolution processing result and the first memory area of the memory M21. The processing result is added and output as the identification result data DT20 of the current frame.

 なお、畳み込みフィルタの一部のサンプルのフィルタ係数のみが用いられて畳み込み処理の一部が行われる場合には、上述のように他の部分の畳み込みの計算が行われないようにするか、または他の部分がゼロデータとされた畳み込みの計算が行われる。 If a part of the convolution process is performed using only the filter coefficients of some samples of the convolution filter, the convolution calculation of other parts may not be performed as described above, or The calculation of the convolution is performed with the other parts as zero data.

 また、現フレームでは、未来のフレームでの畳み込み処理に備えて、未来20フレーム分について、各フレームでのデータIDT19までの部分を用いる畳み込み処理が予め行われ、それらの処理結果がメモリM21に格納されて保持される。 In addition, in the current frame, in preparation for the convolution processing in the future frame, the convolution processing using the part up to the data IDT19 in each frame is performed in advance for the future 20 frames, and the processing result is stored in the memory M21. Be held.

 具体的には、矢印Q22に示す部分における右からn番目(n=2,…,21)にある四角形で表されるように、現フレームで入力されたデータIDT19と、畳み込みフィルタの末尾からnサンプル目の部分のフィルタ係数との畳み込みが行われる。 Specifically, the data IDT19 input in the current frame and n from the end of the convolution filter, as represented by the nth (n = 2, ..., 21) rectangle from the right in the part indicated by arrow Q22. Convolution with the filter coefficient of the sample eye part is performed.

 そして、その処理結果と、メモリM21のn番目のメモリ領域に保持されている処理結果とが加算され、その加算結果がメモリM21の(n-1)番目のメモリ領域に格納されて保持される。但し、矢印Q22に示す部分における右から21番目、つまり左端にある四角形により表される部分では、現フレームで入力されたデータIDT19と、畳み込みフィルタの先頭1サンプル目(末尾から21サンプル目)の部分のフィルタ係数との畳み込みの処理結果が、そのままメモリM21の20番目のメモリ領域に格納されて保持される。このようにしてメモリM21に保持されるデータが図4に示したデータPDT25である。 Then, the processing result and the processing result held in the nth memory area of the memory M21 are added, and the addition result is stored and held in the (n-1) th memory area of the memory M21. .. However, in the part indicated by arrow Q22, which is the 21st from the right, that is, the part represented by the rectangle at the left end, the data IDT19 input in the current frame and the first sample at the beginning (21st sample from the end) of the convolution filter. The processing result of convolution with the filter coefficient of the part is stored and held as it is in the 20th memory area of the memory M21. The data held in the memory M21 in this way is the data PDT25 shown in FIG.

 これにより、メモリM21のn(n=1,…,20)番目のメモリ領域には、再び、現フレームのサンプルを含む、中間データDT19の過去(21-n)サンプル分の長さの部分と、畳み込みフィルタの先頭(21-n)サンプル分の部分のフィルタ係数との畳み込みの結果が保持されている状態となる。 As a result, the n (n = 1, ..., 20) th memory area of the memory M21 again contains the part of the length of the past (21-n) sample of the intermediate data DT19 including the sample of the current frame. , The result of convolution with the filter coefficient of the part of the head (21-n) sample of the convolution filter is retained.

 したがって、帰納的に考えて出力保持手法によりレイヤL9のレイヤ処理(畳み込み処理)を行うことができることが分かる。 Therefore, it can be seen that the layer processing (convolution processing) of the layer L9 can be performed by the output holding method inductively.

 出力保持手法では、レイヤL9での畳み込み処理に必要となるメモリ量、つまりメモリM21の大きさは、上述した式(2)から20(=ceil((21-1)/1)×1)であり、入力保持手法における場合の必要なメモリ量2560と比較して1/128に削減できることが分かる。 In the output retention method, the amount of memory required for the convolution process at layer L9, that is, the size of the memory M21, is 20 (= ceil ((21-1) / 1) × 1) from the above equations (2) to 20 (= ceil ((21-1) / 1) × 1). It can be seen that the amount of memory required for the input holding method can be reduced to 1/128 compared to 2560.

 以上において説明した、出力保持手法によるレイヤL1やレイヤL9などの畳み込みレイヤでの畳み込み処理は一般化することが可能である。 It is possible to generalize the convolution process in the convolution layer such as layer L1 and layer L9 by the output retention method explained above.

 例えば、所定レイヤへと入力される1フレーム分のデータの時間方向のサンプル数(サイズ)をaとし、畳み込み処理のサイズ、すなわち畳み込みフィルタの時間方向のタップ数をbとし、畳み込み処理における前進数をcとする。 For example, the number of samples (size) in the time direction of one frame of data input to a predetermined layer is a, the size of the convolution process, that is, the number of taps in the time direction of the convolution filter is b, and the number of advances in the convolution process. Let be c.

 この場合、所定レイヤでの畳み込み処理の結果として出力されるデータの出力長d、つまり時間方向のサンプル数は、d=a/cであり、畳み込み処理で必要となるメモリの時間方向の長さであるメモリ長eは、e=ceil((b-c)/c)である。 In this case, the output length d of the data output as a result of the convolution process in the predetermined layer, that is, the number of samples in the time direction is d = a / c, and the length of the memory required for the convolution process in the time direction. The memory length e is e = ceil ((bc) / c).

 いま、所定レイヤで現フレームにおいて行われるn番目、つまりn(n=1,2,…,a/c+ceil((b-c)/c)回目の畳み込み処理について考える。 Now, consider the nth convolution process performed in the current frame at a predetermined layer, that is, the n (n = 1,2, ..., a / c + ceil ((b-c) / c) th convolution process.

 この場合、まず処理TR1として、次のような処理が行われる。 In this case, the following processing is first performed as processing TR1.

 すなわち、n≦eであるときには、現フレームで入力されたデータに対する畳み込み処理の結果に対して、メモリのn番目に保持されている、過去のフレームのデータに対する処理結果が加算されて、処理TR1の処理結果とされる。 That is, when n≤e, the processing result for the data of the past frame held at the nth position of the memory is added to the result of the convolution processing for the data input in the current frame, and the processing TR1 It is the processing result of.

 これに対して、n>eであるときには、現フレームで入力されたデータに対する畳み込み処理が行われ、その処理結果が処理TR1の処理結果とされる。 On the other hand, when n> e, the convolution process is performed on the data input in the current frame, and the process result is the process result of the process TR1.

 次に、処理TR1の処理結果に基づき、処理TR2が行われる。 Next, processing TR2 is performed based on the processing result of processing TR1.

 すなわち、n≦dであるときには、処理TR1の処理結果が、現フレームでの畳み込み処理の処理結果における、n回目の畳み込み処理の処理結果に対応する部分のデータとして次のレイヤに出力される。 That is, when n ≦ d, the processing result of the processing TR1 is output to the next layer as the data of the part corresponding to the processing result of the nth convolution processing in the processing result of the convolution processing in the current frame.

 これに対して、n>dであるときには、処理TR1の処理結果が所定レイヤのメモリの(n-d)番目のメモリ領域に格納されて保持される。 On the other hand, when n> d, the processing result of processing TR1 is stored and held in the (n-d) th memory area of the memory of the predetermined layer.

 以上のような出力保持手法を採用することにより、一般手法と比較して演算量とメモリ量を大幅に削減でき、また入力保持手法と比較しても同等の演算量でメモリ量をさらに削減することができる。 By adopting the output holding method as described above, the amount of calculation and the amount of memory can be significantly reduced as compared with the general method, and the amount of memory can be further reduced with the same amount of calculation as compared with the input holding method. be able to.

 なお、以上においては、畳み込みレイヤに出力保持手法を適用する例について説明したが、これに限らず、他のレイヤに対しても出力保持手法は適用可能である。 In the above, an example of applying the output holding method to the convolution layer has been described, but the output holding method is not limited to this and can be applied to other layers as well.

 以下、プーリングレイヤに出力保持手法を適用する例について説明する。 The following is an example of applying the output retention method to the pooling layer.

 例えば図2に示したDNNでは、プーリング処理のサイズと前進数が同じであったため、プーリングレイヤでは過去のフレームの処理結果をメモリに保持しておく必要がなかった。 For example, in the DNN shown in FIG. 2, since the size of the pooling process and the number of advances were the same, it was not necessary to hold the processing results of the past frames in the memory in the pooling layer.

 しかし、例えば図7に示すように、サイズ、つまり対象となるデータ領域の時間方向のサンプル数が96であり、16サンプル前進のプーリング処理を行うプーリングレイヤでは、過去のフレームの処理結果の保持が必要となる。 However, as shown in FIG. 7, for example, the size, that is, the number of samples in the time direction of the target data area is 96, and the pooling layer that performs the pooling process of advancing 16 samples retains the processing results of the past frames. You will need it.

 図7に示す例では、現フレームにおいて、直前のレイヤから1024サンプル×3次元のデータIDT41が入力される。 In the example shown in FIG. 7, 1024 samples × 3D data IDT41 is input from the immediately preceding layer in the current frame.

 そして、前フレームにおいて直前のレイヤから入力された1024サンプル×3次元のデータのうちの末尾80サンプル分の長さのデータPDT41と、現フレームで入力されたデータIDT41とが対象とされてプーリング処理が行われる。 Then, the data PDT41 with the length of the last 80 samples of the 1024 samples x 3D data input from the previous layer in the previous frame and the data IDT41 input in the current frame are targeted for pooling processing. Is done.

 このとき、96サンプル×1次元のデータ領域を対象とするプーリング処理が、対象となるデータの次元ごとに16サンプル前進で行われ、現フレームでのプーリング処理の処理結果として、64サンプル×3次元のデータIDT42が出力される。 At this time, the pooling process targeting the 96-sample x 1-dimensional data area is performed by advancing 16 samples for each dimension of the target data, and the processing result of the pooling process in the current frame is 64 samples x 3 dimensions. Data IDT42 is output.

 なお、ここでいうプーリング処理とは、上述のように対象となるデータ領域内のサンプルのサンプル値の最大値を抽出し、処理結果として出力する処理である。 The pooling process referred to here is a process of extracting the maximum value of the sample value of the sample in the target data area and outputting it as a processing result as described above.

 現フレームについてのプーリング処理を行う場合、前フレームから現フレームへと跨っている部分のデータPDT41を含むデータ領域を対象とするプーリング処理は、現フレームで入力されるデータIDT41だけでは行うことはできない。 When the pooling process for the current frame is performed, the pooling process for the data area including the data PDT41 of the part extending from the previous frame to the current frame cannot be performed only by the data IDT41 input in the current frame. ..

 そのような場合、入力保持手法では、前フレームで入力された1フレーム分のデータのうちの末尾80サンプル(=サイズ96-前進数16)×3次元分のデータPDT41自体をメモリに保持しておくことで、一般手法よりも演算量とメモリ量を削減することができる。このとき、必要となるメモリ量は240(=80×3)である。 In such a case, in the input retention method, the last 80 samples (= size 96-advance number 16) x 3D data PDT41 itself of the data for one frame input in the previous frame is retained in the memory. By setting it, the amount of calculation and the amount of memory can be reduced as compared with the general method. At this time, the required amount of memory is 240 (= 80 × 3).

 これに対して、出力保持手法ではQ41に示すように、前フレームにおいて、入力されたデータPDT41を用いて現フレームでのプーリング処理の一部を行い、その処理結果をメモリM31に保持しておくようにする。すなわち、前フレームの段階で、その前フレームから見て未来にある現フレームの分までプーリング処理を適用しておくようにする。 On the other hand, in the output retention method, as shown in Q41, in the previous frame, a part of the pooling process in the current frame is performed using the input data PDT41, and the process result is retained in the memory M31. To do so. That is, at the stage of the previous frame, the pooling process is applied to the current frame in the future as seen from the previous frame.

 なお、矢印Q41に示す部分において、1つの四角形は、現フレームにおけるプーリング処理の対象となるデータ(データ領域)の部分を表しており、四角形内の斜線部分は、プーリング処理に用いられる前フレームのデータ部分(データPDT41の一部または全部)を表している。 In the part indicated by the arrow Q41, one quadrangle represents the part of the data (data area) to be pooled in the current frame, and the shaded part in the quadrangle is the part of the previous frame used for the pooling process. Represents a data part (part or all of data PDT41).

 特に、矢印Q41に示す部分における右からn番目(n=1,2,…,5)にある四角形は、現フレームで行われるn回目のプーリング処理の対象となるデータ領域部分を表している。 In particular, the nth (n = 1,2, ..., 5) rectangle from the right in the part indicated by arrow Q41 represents the data area part that is the target of the nth pooling process performed in the current frame.

 また、メモリM31は、図中、上下方向に並べられた5個のメモリ領域からなり、ここでは図中、上からn番目(n=1,2,…,5)にあるメモリ領域を単にn番目のメモリ領域とも称することとする。 In addition, the memory M31 consists of five memory areas arranged in the vertical direction in the figure, and here, the memory area at the nth position (n = 1,2, ..., 5) from the top in the figure is simply n. It will also be referred to as the second memory area.

 ここで、現フレームで行われる複数回のプーリング処理のうち、データPDT41が必要となるのは1回目から5回目までのプーリング処理である。 Here, of the multiple pooling processes performed in the current frame, the data PDT41 is required for the 1st to 5th pooling processes.

 例えば、1回目のプーリング処理ではデータPDT41全体、つまり前フレームの末尾80サンプル分の長さの部分が用いられ、2回目のプーリング処理では、データPDT41の末尾64サンプル分の長さの部分が用いられる。 For example, in the first pooling process, the entire data PDT41, that is, the part of the length of the last 80 samples of the previous frame is used, and in the second pooling process, the part of the data PDT41 of the last 64 samples is used. Be done.

 そこで、現フレームのn回目(n=1,2,…,5)のプーリング処理の一部として、前フレームで入力されたデータPDT41の末尾(96-16n)サンプル分の長さの部分に対して、データPDT41の次元ごとに最大値を抽出するプーリング処理が行われ、その処理結果がメモリM31のn番目のメモリ領域に格納されて保持される。 Therefore, as part of the nth (n = 1,2, ..., 5) pooling process of the current frame, for the part of the length of the last (96-16n) sample of the data PDT41 input in the previous frame. Then, a pooling process for extracting the maximum value is performed for each dimension of the data PDT41, and the process result is stored and held in the nth memory area of the memory M31.

 そして、現フレームではデータIDT41が入力されるので、矢印Q42に示すように、そのデータIDT41が用いられて、16サンプル前進のプーリング処理が次元ごとに行われる。 Then, since the data IDT41 is input in the current frame, the data IDT41 is used as shown by the arrow Q42, and the pooling process for advancing 16 samples is performed for each dimension.

 なお、矢印Q42に示す部分において、1つの四角形は、現フレームにおけるプーリング処理で用いられるデータの部分を表しており、四角形内の斜線部分は、現フレームのデータIDT41のプーリング処理に用いられる部分を表している。 In the part indicated by arrow Q42, one quadrangle represents the part of the data used in the pooling process in the current frame, and the shaded part in the quadrangle represents the part used in the pooling process of the data IDT41 in the current frame. Represents.

 特に、矢印Q42に示す部分における右からn番目(n=1,2,…,5)にある四角形は、現フレームで行われるn回目のプーリング処理で用いられるデータを表している。 In particular, the nth (n = 1,2, ..., 5) rectangle from the right in the part indicated by arrow Q42 represents the data used in the nth pooling process performed in the current frame.

 現フレームにおいて、最初の5回のプーリング処理については、既に一部の計算(処理)が前フレームで行われ、その処理結果がメモリM31に保持されている。 In the current frame, for the first 5 pooling processes, some calculations (processes) have already been performed in the previous frame, and the process results are held in the memory M31.

 そこで、現フレームのn(n=1,2,…,5)回目のプーリング処理については、現フレームで入力されたデータIDT41の先頭16nサンプル分の長さの部分のみが対象とされて、次元ごとに最大値が抽出される。 Therefore, for the n (n = 1,2, ..., 5)th pooling process of the current frame, only the part of the length of the first 16n samples of the data IDT41 input in the current frame is targeted, and the dimension is The maximum value is extracted for each.

 そして、抽出された最大値と、メモリM31のn番目のメモリ領域に保持されている各次元についての値(処理結果)とが次元ごとに比較され、より大きい方の値がn回目のプーリング処理の次元ごとの処理結果として出力される。 Then, the extracted maximum value and the value (processing result) for each dimension held in the nth memory area of the memory M31 are compared for each dimension, and the larger value is the nth pooling process. It is output as the processing result for each dimension of.

 これにより、現フレームにおける、前フレームから現フレームへと跨っているデータ領域部分に対するプーリング処理の処理結果を得ることができる。 This makes it possible to obtain the processing result of the pooling process for the data area portion extending from the previous frame to the current frame in the current frame.

 また、現フレームでは、6回目以降のプーリング処理については、対象となるデータ領域は、全てデータIDT41に含まれているので、データIDT41の対象となるデータ領域に対してプーリング処理が行われる。これにより、現フレームのプーリング処理の最終的な処理結果としてデータIDT42が得られる。 Also, in the current frame, for the sixth and subsequent pooling processes, the target data area is all included in the data IDT 41, so the pooling process is performed on the target data area of the data ID T41. As a result, the data IDT42 is obtained as the final processing result of the pooling processing of the current frame.

 さらに現フレームでは、矢印Q43の部分に示すように、矢印Q41に示した部分における場合と同様にして、現フレームの次のフレームでのプーリング処理の一部が行われる。 Furthermore, in the current frame, as shown in the part of arrow Q43, a part of the pooling process is performed in the next frame of the current frame in the same manner as in the case of the part shown by arrow Q41.

 すなわち、次フレームで行われる複数回のプーリング処理のうち、データIDT41が必要となる1回目から5回目までのプーリング処理における、データIDT41を用いる部分の処理(計算)が行われ、その処理結果がメモリM31に格納されて保持される。 That is, of the multiple pooling processes performed in the next frame, the process (calculation) of the part using the data IDT41 in the first to fifth pooling processes that require the data IDT41 is performed, and the processing result is the result. It is stored and held in memory M31.

 プーリングレイヤでは、以上において説明した処理がフレームごとに繰り返し行われる。 In the pooling layer, the process described above is repeated frame by frame.

 このようなプーリングレイヤで必要となるメモリ量は、上述の式(2)における「畳み込みサイズ」をプーリング処理の対象となるデータ領域の時間方向の長さ(サイズ)を示す「プーリングサイズ」に置き換えることで求めることができる。 For the amount of memory required for such a pooling layer, the "convolution size" in the above equation (2) is replaced with a "pooling size" indicating the length (size) of the data area to be pooled in the time direction. It can be obtained by.

 したがって、この例では、プーリングレイヤで必要となるメモリ量は15(=(ceil((96-16)/16)×3)であり、入力保持手法での必要なメモリ量240と比較して、必要となるメモリ量を大幅に削減できることが分かる。しかも、出力保持手法でのプーリングレイヤにおける演算量も入力保持手法における場合と同等である。 Therefore, in this example, the amount of memory required for the pooling layer is 15 (= (ceil ((96-16) / 16) × 3), which is compared with the amount of memory required for the input holding method of 240. It can be seen that the amount of memory required can be significantly reduced. Moreover, the amount of computation in the pooling layer in the output holding method is the same as in the case of the input holding method.

 以上のように、プーリングレイヤに対して出力保持手法を適用しても、畳み込みレイヤにおける場合と同様に、演算量とメモリ量を削減することができる。 As described above, even if the output holding method is applied to the pooling layer, the amount of computation and the amount of memory can be reduced as in the case of the convolution layer.

〈信号処理装置の構成例〉
 図8は、本技術を適用した信号処理装置の一実施の形態の構成例を示す図である。
<Configuration example of signal processing device>
FIG. 8 is a diagram showing a configuration example of an embodiment of a signal processing device to which the present technology is applied.

 図8に示す信号処理装置11は、例えばパーソナルコンピュータやスマートホン、ヘッドホン、ポータブルプレーヤなどからなり、入力データとして供給されたオーディオデータ等に基づいて所定の識別処理を行い、その識別結果を示す識別結果データを出力する。 The signal processing device 11 shown in FIG. 8 is composed of, for example, a personal computer, a smart phone, headphones, a portable player, or the like, performs predetermined identification processing based on audio data supplied as input data, and is identified to show the identification result. Output the result data.

 この例では信号処理装置11は、入力データに対して、フレーム単位で複数のレイヤ処理からなる識別処理を行い、識別結果データを出力する。 In this example, the signal processing device 11 performs an identification process consisting of a plurality of layer processes on a frame-by-frame basis for the input data, and outputs the identification result data.

 信号処理装置11は、レイヤ処理部21-1乃至レイヤ処理部21-9、および制御部22を有している。 The signal processing device 11 has a layer processing unit 21-1 to a layer processing unit 21-9, and a control unit 22.

 信号処理装置11では、階層的に設けられたレイヤ処理部21-1乃至レイヤ処理部21-9によりDNN、すなわちニューラルネットワークが構成される。換言すれば、レイヤ処理部21-1乃至レイヤ処理部21-9によって、ニューラルネットワーク構成の識別器が実現される。 In the signal processing device 11, a DNN, that is, a neural network is configured by layer processing units 21-1 to layer processing units 21-9 provided hierarchically. In other words, the layer processing unit 21-1 to the layer processing unit 21-9 realize a discriminator having a neural network configuration.

 ここでは、レイヤ処理部21-1乃至レイヤ処理部21-9は、図2または図4に示したDNNを構成するレイヤL1乃至レイヤL9に対応し、それらのレイヤでの演算処理(レイヤ処理)を行う演算処理部として機能する。 Here, the layer processing units 21-1 to the layer processing units 21-9 correspond to the layers L1 to L9 constituting the DNN shown in FIG. 2 or FIG. 4, and the arithmetic processing (layer processing) in those layers. It functions as an arithmetic processing unit that performs the above.

 また、レイヤ処理部21-1、レイヤ処理部21-3、レイヤ処理部21-5、およびレイヤ処理部21-7、およびレイヤ処理部21-9のそれぞれは、メモリ31-1乃至メモリ31-5のそれぞれを有している。 Further, each of the layer processing unit 21-1, the layer processing unit 21-3, the layer processing unit 21-5, the layer processing unit 21-7, and the layer processing unit 21-9 is a memory 31-1 to a memory 31-. It has each of five.

 なお、以下、レイヤ処理部21-1乃至レイヤ処理部21-9を特に区別する必要のない場合、単にレイヤ処理部21とも称する。また、以下、メモリ31-1乃至メモリ31-5を特に区別する必要のない場合、単にメモリ31とも称する。各メモリ31には、入力保持手法または出力保持手法での畳み込み処理で必要となるデータが保持される。 Hereinafter, when it is not necessary to particularly distinguish between the layer processing unit 21-1 and the layer processing unit 21-9, it is also simply referred to as the layer processing unit 21. Further, hereinafter, when it is not necessary to distinguish between the memory 31-1 and the memory 31-5, it is also simply referred to as the memory 31. Each memory 31 holds data required for convolution processing in the input holding method or the output holding method.

 レイヤ処理部21-1は、入力された入力データと、メモリ31-1に保持されているデータとに基づいて入力保持手法または出力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-2に供給する。 The layer processing unit 21-1 performs convolution processing by an input holding method or an output holding method based on the input data and the data held in the memory 31-1, and the intermediate data obtained as a result is used. It is supplied to the layer processing unit 21-2.

 すなわち、レイヤ処理部21-1では、現フレームで入力された入力データと、メモリ31-1に保持されているデータとに基づいて、入力保持手法または出力保持手法により、現フレームでの畳み込み処理の処理結果となる中間データが求められる。 That is, in the layer processing unit 21-1, the convolution process in the current frame is performed by the input holding method or the output holding method based on the input data input in the current frame and the data held in the memory 31-1. Intermediate data that is the processing result of is obtained.

 レイヤ処理部21-2は、レイヤ処理部21-1から供給された中間データに対してプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-3に供給する。 The layer processing unit 21-2 performs pooling processing on the intermediate data supplied from the layer processing unit 21-1, and supplies the intermediate data obtained as a result to the layer processing unit 21-3.

 レイヤ処理部21-3は、レイヤ処理部21-2から供給された中間データと、メモリ31-2に保持されているデータとに基づいて入力保持手法または出力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-4に供給する。 The layer processing unit 21-3 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-2 and the data held in the memory 31-2, and the convolution processing thereof is performed. The resulting intermediate data is supplied to the layer processing unit 21-4.

 レイヤ処理部21-4は、レイヤ処理部21-3から供給された中間データに対してプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-5に供給する。 The layer processing unit 21-4 performs pooling processing on the intermediate data supplied from the layer processing unit 21-3, and supplies the intermediate data obtained as a result to the layer processing unit 21-5.

 レイヤ処理部21-5は、レイヤ処理部21-4から供給された中間データと、メモリ31-3に保持されているデータとに基づいて入力保持手法または出力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-6に供給する。 The layer processing unit 21-5 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-4 and the data held in the memory 31-3, and the convolution processing thereof is performed. The resulting intermediate data is supplied to the layer processing unit 21-6.

 レイヤ処理部21-6は、レイヤ処理部21-5から供給された中間データに対してプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-7に供給する。 The layer processing unit 21-6 performs pooling processing on the intermediate data supplied from the layer processing unit 21-5, and supplies the intermediate data obtained as a result to the layer processing unit 21-7.

 レイヤ処理部21-7は、レイヤ処理部21-6から供給された中間データと、メモリ31-4に保持されているデータとに基づいて入力保持手法または出力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-8に供給する。 The layer processing unit 21-7 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-6 and the data held in the memory 31-4, and the convolution processing thereof is performed. The resulting intermediate data is supplied to the layer processing unit 21-8.

 レイヤ処理部21-8は、レイヤ処理部21-7から供給された中間データに対してプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-9に供給する。 The layer processing unit 21-8 performs pooling processing on the intermediate data supplied from the layer processing unit 21-7, and supplies the intermediate data obtained as a result to the layer processing unit 21-9.

 レイヤ処理部21-9は、レイヤ処理部21-8から供給された中間データと、メモリ31-5に保持されているデータとに基づいて入力保持手法または出力保持手法により畳み込み処理を行い、その結果得られた識別結果データを、識別処理の処理結果として出力する。 The layer processing unit 21-9 performs convolution processing by an input holding method or an output holding method based on the intermediate data supplied from the layer processing unit 21-8 and the data held in the memory 31-5, and the convolution processing thereof is performed. The identification result data obtained as a result is output as the processing result of the identification process.

 なお、上述したように各レイヤ処理部21では、入力データのフレーム単位で処理が行われる。すなわち、各レイヤ処理部21では、フレームごとにデータの入力、レイヤ処理、およびデータの出力が行われる。したがって、レイヤ処理部21-9からは、フレームごとに識別結果データが出力されることになる。 As described above, each layer processing unit 21 processes the input data in frame units. That is, each layer processing unit 21 performs data input, layer processing, and data output for each frame. Therefore, the layer processing unit 21-9 outputs the identification result data for each frame.

 制御部22は、信号処理装置11全体の処理を制御する。 The control unit 22 controls the processing of the entire signal processing device 11.

 例えば制御部22は、畳み込みレイヤのレイヤ処理部21ごとに、それらのレイヤ処理部21で入力保持手法または出力保持手法の何れの手法で畳み込み処理を行うかを選択し、各レイヤ処理部21を制御して、選択した手法で畳み込み処理を実行させる。 For example, the control unit 22 selects, for each layer processing unit 21 of the convolution layer, whether to perform the convolution processing by the input holding method or the output holding method in the layer processing unit 21, and each layer processing unit 21 is used. Control to execute the convolution process by the selected method.

 換言すれば、制御部22は、各レイヤ処理部21において入力保持手法により畳み込み処理を行うか、または出力保持手法により畳み込み処理を行うかの切り替えを行う。 In other words, the control unit 22 switches between the convolution processing by the input holding method and the convolution processing by the output holding method in each layer processing unit 21.

 ここで、各レイヤ処理部21で何れの手法により畳み込み処理を行うかは、例えばユーザ入力(ユーザによる指定)や、畳み込みレイヤでの入出力の各データの次元数、畳み込みサイズ、畳み込み処理の前進数(サンプル前進数)などに基づいて選択される。 Here, which method is used by each layer processing unit 21 to perform the convolution processing is, for example, the number of dimensions of each data input / output in the user input (specified by the user), the convolution size, and the advancement of the convolution processing. It is selected based on the number (number of sample advances) and so on.

 以下では、畳み込み処理を行う5個のレイヤ処理部21のうち、少なくとも1つのレイヤ処理部21では入力保持手法により畳み込み処理が行われ、かつ少なくとも1つのレイヤ処理部21では出力保持手法により畳み込み処理が行われる例について説明する。しかし、これに限らず、例えば全ての畳み込みレイヤのレイヤ処理部21において、出力保持手法により畳み込み処理が行われてもよい。 In the following, of the five layer processing units 21 that perform convolution processing, at least one layer processing unit 21 performs convolution processing by the input holding method, and at least one layer processing unit 21 performs convolution processing by the output holding method. An example in which is performed will be described. However, the present invention is not limited to this, and for example, the convolution processing may be performed by the output holding method in the layer processing unit 21 of all the convolution layers.

 また、ここでは畳み込みレイヤのレイヤ処理部21にのみメモリが設けられている例について説明する。しかし、例えばプーリングレイヤのレイヤ処理部21にもメモリが設けられ、そのレイヤ処理部21において、制御部22による選択に従い、入力保持手法または出力保持出力によりプーリング処理が行われるようにしてもよい。 Further, here, an example in which the memory is provided only in the layer processing unit 21 of the convolution layer will be described. However, for example, a memory may be provided in the layer processing unit 21 of the pooling layer, and the layer processing unit 21 may perform the pooling processing by the input holding method or the output holding output according to the selection by the control unit 22.

 また、各レイヤ処理部21で入力保持手法と出力保持手法の何れによりレイヤ処理が行われるかは、制御部22によりフレーム単位や任意のタイミング等で動的に選択されて、適宜、切り替えられるようにしてもよいし、識別処理の開始時に制御部22により選択されてもよいし、予め定められているようにしてもよい。 Further, whether the layer processing is performed by the input holding method or the output holding method in each layer processing unit 21 is dynamically selected by the control unit 22 in frame units, arbitrary timing, etc., and can be appropriately switched. It may be selected by the control unit 22 at the start of the identification process, or it may be predetermined.

 その他、信号処理装置11により実現されるDNNの構成は、図8に示す例に限らず、他のどのような構成とされてもよい。 In addition, the configuration of the DNN realized by the signal processing device 11 is not limited to the example shown in FIG. 8, and may be any other configuration.

 例えば図8の例では、DNNを構成するレイヤ、つまりレイヤ処理部21においてはレイヤ処理として畳み込み処理かプーリング処理が行われるが、これに限らず、レジデュアル処理など、どのような演算処理が行われてもよい。すなわち、例えばDNNでは、畳み込み処理、プーリング処理、およびレジデュアル処理のうちの少なくとも1つの処理が行われるようにしてもよい。 For example, in the example of FIG. 8, in the layer constituting the DNN, that is, the layer processing unit 21, a convolution process or a pooling process is performed as a layer process, but the process is not limited to this, and any arithmetic process such as a register dual process is performed. You may be broken. That is, for example, in DNN, at least one of the convolution process, the pooling process, and the resilient process may be performed.

 レジデュアル処理は、現レイヤの入力とするデータにその現レイヤよりも前のレイヤの出力を加算して現レイヤの出力とするデータ変換処理である。 Residual processing is data conversion processing that adds the output of the layer before the current layer to the data input of the current layer to obtain the output of the current layer.

〈識別処理の説明〉
 次に、信号処理装置11の動作について説明する。すなわち、以下、図9のフローチャートを参照して、信号処理装置11により行われる識別処理について説明する。この識別処理は入力データのフレームごとに行われる。
<Explanation of identification process>
Next, the operation of the signal processing device 11 will be described. That is, the identification process performed by the signal processing device 11 will be described below with reference to the flowchart of FIG. This identification process is performed for each frame of the input data.

 ステップS11において制御部22は、レイヤ処理部21-1、レイヤ処理部21-3、レイヤ処理部21-5、レイヤ処理部21-7、およびレイヤ処理部21-9の各レイヤ処理部21について、何れの手法により畳み込み処理を行うかを選択する。 In step S11, the control unit 22 relates to each layer processing unit 21 of the layer processing unit 21-1, the layer processing unit 21-3, the layer processing unit 21-5, the layer processing unit 21-7, and the layer processing unit 21-9. , Select which method to perform the convolution process.

 例えば制御部22は、レイヤ処理部21ごとに、そのレイヤ処理部21に入力されるデータ(入力データまたは中間データ)の次元数、そのレイヤ処理部21から出力されるデータ(中間データまたは識別結果データ)の次元数、畳み込み処理のサイズ、畳み込み処理のサンプル前進数などに基づいて選択を行う。 For example, the control unit 22 has the number of dimensions of the data (input data or intermediate data) input to the layer processing unit 21 and the data (intermediate data or identification result) output from the layer processing unit 21 for each layer processing unit 21. The selection is made based on the number of dimensions of the data), the size of the convolution process, the number of sample advances in the convolution process, and the like.

 具体的には、例えば制御部22は、レイヤ処理部21ごとに式(1)および式(2)を計算し、入力保持手法で必要となるメモリ量と、出力保持手法で必要となるメモリ量とを算出し、必要となるメモリ量がより少ない(小さい)方の手法を選択する。 Specifically, for example, the control unit 22 calculates equations (1) and (2) for each layer processing unit 21, and the amount of memory required for the input holding method and the amount of memory required for the output holding method. And select the method that requires less (smaller) memory.

 制御部22は、レイヤ処理部21ごとに入力保持手法と出力保持手法の何れかを選択すると、各レイヤ処理部21に対して、選択した手法での畳み込み処理の実行を指示する。 When the control unit 22 selects either the input holding method or the output holding method for each layer processing unit 21, the control unit 22 instructs each layer processing unit 21 to execute the convolution processing by the selected method.

 また、ユーザの入力操作等により、レイヤ処理部21ごとに何れの手法を選択するかが入力(指示)された場合には、制御部22はその入力に従って、各レイヤ処理部21において入力保持手法と出力保持手法の何れの手法で畳み込み処理を行うかを選択する。 Further, when an input (instruction) is made for each layer processing unit 21 as to which method is to be selected by a user's input operation or the like, the control unit 22 follows the input and causes the input holding method in each layer processing unit 21. Select which method of the convolution processing is to be performed.

 例えば、実際に信号処理装置11として機能するハードウェアで識別処理を実行する場合、基本的には式(1)や式(2)で求まるメモリ量の少ない方式を採用する方が処理効率が高くなる、つまり使用メモリ量や演算量が少なくなる。しかし、必ずしもその通りとはならないことがあるため、そのような場合などに、ユーザの入力操作等に応じて入力保持手法と出力保持手法の何れかを選択すると効果的である。 For example, when the identification process is actually executed by the hardware that actually functions as the signal processing device 11, the processing efficiency is basically higher if the method with a small amount of memory obtained by the equations (1) and (2) is adopted. That is, the amount of memory used and the amount of calculation are reduced. However, this may not always be the case, and in such cases, it is effective to select either the input holding method or the output holding method according to the user's input operation or the like.

 なお、以下では、制御部22により、レイヤ処理部21-1とレイヤ処理部21-9では出力保持手法が選択され、レイヤ処理部21-3、レイヤ処理部21-5、およびレイヤ処理部21-7では入力保持手法が選択されたものとして説明を続ける。 In the following, the control unit 22 selects an output holding method for the layer processing unit 21-1 and the layer processing unit 21-9, and the layer processing unit 21-3, the layer processing unit 21-5, and the layer processing unit 21 are selected. In -7, the explanation will be continued assuming that the input holding method is selected.

 ステップS12においてレイヤ処理部21-1は、制御部22の制御(指示)に従って、出力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-2に供給する。 In step S12, the layer processing unit 21-1 performs the convolution processing by the output holding method according to the control (instruction) of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-2.

 例えばステップS12では、図5を参照して説明したように、96×3タップの16種類の畳み込みフィルタごとに、16サンプル前進で現フレームでの畳み込み処理が行われる。 For example, in step S12, as described with reference to FIG. 5, for each of the 16 types of convolution filters of 96 × 3 taps, the convolution process at the current frame is performed by advancing 16 samples.

 すなわち、レイヤ処理部21-1は、最初の5回の畳み込み処理については、入力された現フレームの入力データに対して畳み込みフィルタの一部を用いて畳み込み処理を行い、その処理結果と、メモリ31-1に保持されている、前フレームの入力データに対する畳み込み処理の結果とを加算して、畳み込み処理の最終的な処理結果として出力する。 That is, the layer processing unit 21-1 performs a convolution process on the input data of the input current frame using a part of the convolution filter for the first five convolution processes, and the process result and the memory. The result of the convolution process for the input data of the previous frame held in 31-1 is added and output as the final process result of the convolution process.

 また、6回目以降の畳み込み処理については、レイヤ処理部21-1は、入力された現フレームの入力データに対して畳み込みフィルタを用いて畳み込み処理を行う。 For the sixth and subsequent convolution processes, the layer processing unit 21-1 performs the convolution process using the convolution filter on the input data of the input current frame.

 さらに、その後、例えばレイヤ処理部21-1は入力データの一部と、畳み込みフィルタの一部とに基づいて、次フレーム(未来のフレーム)の畳み込み処理の一部の処理を行い、その処理結果をメモリ31-1に供給して保持させる。 Further, after that, for example, the layer processing unit 21-1 performs a part of the convolution processing of the next frame (future frame) based on a part of the input data and a part of the convolution filter, and the processing result. Is supplied to the memory 31-1 and held.

 ステップS13においてレイヤ処理部21-2は、レイヤ処理部21-1から供給された中間データに対して、8サンプル×1次元のデータ領域を対象とする8サンプル前進のプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-3に供給する。 In step S13, the layer processing unit 21-2 performs an 8-sample advance pooling process targeting an 8-sample × 1-dimensional data area on the intermediate data supplied from the layer processing unit 21-1, and as a result. The obtained intermediate data is supplied to the layer processing unit 21-3.

 ステップS14においてレイヤ処理部21-3は、制御部22の制御に従って、入力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-4に供給する。 In step S14, the layer processing unit 21-3 performs the convolution processing by the input holding method according to the control of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-4.

 例えばステップS14では、図2を参照して説明したように、8×16タップの32種類の畳み込みフィルタごとに、1サンプル前進で現フレームでの畳み込み処理が行われる。 For example, in step S14, as described with reference to FIG. 2, for each of the 32 types of convolution filters of 8 × 16 taps, the convolution process in the current frame is performed by advancing one sample.

 このとき、レイヤ処理部21-3は、現フレームでレイヤ処理部21-2から供給された中間データと、前フレームでレイヤ処理部21-2から供給され、メモリ31-2に保持されている7×16の中間データとを用いて畳み込み処理を行う。 At this time, the layer processing unit 21-3 is supplied from the intermediate data supplied from the layer processing unit 21-2 in the current frame and from the layer processing unit 21-2 in the previous frame, and is held in the memory 31-2. Convolution processing is performed using 7 × 16 intermediate data.

 また、現フレームの畳み込み処理が終了すると、レイヤ処理部21-3は現フレームでレイヤ処理部21-2から供給された中間データの末尾7サンプル分の長さの部分のデータをメモリ31-2に供給し、保持させる。メモリ31-2に保持されたデータは、次のフレームのステップS14の処理に用いられる。 Further, when the convolution processing of the current frame is completed, the layer processing unit 21-3 stores the data of the length of the last 7 samples of the intermediate data supplied from the layer processing unit 21-2 in the current frame in the memory 31-2. Supply and hold. The data held in the memory 31-2 is used for the processing of step S14 of the next frame.

 ステップS15においてレイヤ処理部21-4は、レイヤ処理部21-3から供給された中間データに対して、2サンプル×1次元のデータ領域を対象とする2サンプル前進のプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-5に供給する。 In step S15, the layer processing unit 21-4 performs a pooling process of advancing two samples targeting a two-sample × one-dimensional data area on the intermediate data supplied from the layer processing unit 21-3, and as a result. The obtained intermediate data is supplied to the layer processing unit 21-5.

 ステップS16においてレイヤ処理部21-5は、制御部22の制御に従って、入力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-6に供給する。 In step S16, the layer processing unit 21-5 performs the convolution processing by the input holding method according to the control of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-6.

 例えばステップS16では、ステップS14における場合と同様の処理が行われる。但し、ステップS16では、4×32タップの64種類の畳み込みフィルタごとに、1サンプル前進で現フレームでの畳み込み処理が行われる。 For example, in step S16, the same processing as in the case of step S14 is performed. However, in step S16, the convolution process in the current frame is performed by advancing one sample for each of the 64 types of convolution filters of 4 × 32 taps.

 また、現フレームの畳み込み処理が終了すると、レイヤ処理部21-5は現フレームでレイヤ処理部21-4から供給された中間データの末尾3サンプル分の長さの部分のデータをメモリ31-3に供給し、保持させる。メモリ31-3に保持されたデータは、次のフレームのステップS16の処理に用いられる。 Further, when the convolution processing of the current frame is completed, the layer processing unit 21-5 stores the data of the length of the last three samples of the intermediate data supplied from the layer processing unit 21-4 in the current frame in the memory 31-3. Supply and hold. The data held in the memory 31-3 is used for the processing of step S16 of the next frame.

 ステップS17においてレイヤ処理部21-6は、レイヤ処理部21-5から供給された中間データに対して、2サンプル×1次元のデータ領域を対象とする2サンプル前進のプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-7に供給する。 In step S17, the layer processing unit 21-6 performs a pooling process of advancing two samples targeting a two-sample × one-dimensional data area on the intermediate data supplied from the layer processing unit 21-5, and as a result. The obtained intermediate data is supplied to the layer processing unit 21-7.

 ステップS18においてレイヤ処理部21-7は、制御部22の制御に従って、入力保持手法により畳み込み処理を行い、その結果得られた中間データをレイヤ処理部21-8に供給する。 In step S18, the layer processing unit 21-7 performs a convolution process by an input holding method according to the control of the control unit 22, and supplies the intermediate data obtained as a result to the layer processing unit 21-8.

 例えばステップS18では、ステップS14における場合と同様の処理が行われる。但し、ステップS18では、2×64タップの128種類の畳み込みフィルタごとに、1サンプル前進で現フレームでの畳み込み処理が行われる。 For example, in step S18, the same processing as in the case of step S14 is performed. However, in step S18, the convolution process in the current frame is performed by advancing one sample for each of the 128 types of convolution filters of 2 × 64 taps.

 また、現フレームの畳み込み処理が終了すると、レイヤ処理部21-7は現フレームでレイヤ処理部21-6から供給された中間データの末尾1サンプル分の長さの部分のデータをメモリ31-4に供給し、保持させる。メモリ31-4に保持されたデータは、次のフレームのステップS18の処理に用いられる。 Further, when the convolution processing of the current frame is completed, the layer processing unit 21-7 stores the data of the length of the last one sample of the intermediate data supplied from the layer processing unit 21-6 in the current frame in the memory 31-4. Supply and hold. The data held in the memory 31-4 is used for the processing of step S18 of the next frame.

 ステップS19においてレイヤ処理部21-8は、レイヤ処理部21-7から供給された中間データに対して、2サンプル×1次元のデータ領域を対象とする2サンプル前進のプーリング処理を行い、その結果得られた中間データをレイヤ処理部21-9に供給する。 In step S19, the layer processing unit 21-8 performs a pooling process of advancing two samples targeting a two-sample × one-dimensional data area on the intermediate data supplied from the layer processing unit 21-7, and as a result. The obtained intermediate data is supplied to the layer processing unit 21-9.

 ステップS20においてレイヤ処理部21-9は、制御部22の制御に従って、出力保持手法により畳み込み処理を行い、その結果得られた識別結果データを出力し、識別処理は終了する。 In step S20, the layer processing unit 21-9 performs the convolution processing by the output holding method according to the control of the control unit 22, outputs the identification result data obtained as a result, and the identification processing ends.

 例えばステップS20では、図6を参照して説明したように、21×128タップの1種類の畳み込みフィルタについて、1サンプル前進で現フレームでの畳み込み処理が行われる。 For example, in step S20, as described with reference to FIG. 6, for one type of convolution filter of 21 × 128 taps, the convolution process at the current frame is performed by advancing one sample.

 すなわち、レイヤ処理部21-9は、入力された現フレームの入力データに対して畳み込みフィルタの一部を用いて畳み込み処理を行い、その処理結果と、メモリ31-5の1番目のメモリ領域に保持されている、過去のフレームの中間データに対する畳み込み処理の結果とを加算して、識別結果データとする。 That is, the layer processing unit 21-9 performs a convolution process on the input data of the input current frame using a part of the convolution filter, and the processing result and the first memory area of the memory 31-5 are displayed. The result of the convolution process for the intermediate data of the past frames held is added to obtain the identification result data.

 また、レイヤ処理部21-9は現フレームで入力された中間データに対して、畳み込みフィルタの末尾n(n=2,…,21)サンプル目のフィルタ係数に基づく畳み込み処理を行う。 Further, the layer processing unit 21-9 performs convolution processing based on the filter coefficient of the last n (n = 2, ..., 21) sample of the convolution filter on the intermediate data input in the current frame.

 さらにレイヤ処理部21-9は、その畳み込み処理の結果と、メモリ31-5のn(n=2,…,20)番目のメモリ領域に保持されている処理結果とを加算し、その加算結果を新たにメモリ31-5の(n-1)番目のメモリ領域に格納し、保持させる。また、レイヤ処理部21-9は、メモリ31-5の20番目のメモリ領域には、上述の中間データに対する、畳み込みフィルタの末尾21サンプル目のフィルタ係数に基づく畳み込み処理の結果を格納して保持させる。このようにしてメモリ31-5に保持されたデータは、未来のフレームについて行われるステップS20の処理に用いられる。 Further, the layer processing unit 21-9 adds the result of the convolution process and the process result held in the n (n = 2, ..., 20) th memory area of the memory 31-5, and the addition result. Is newly stored and held in the (n-1) th memory area of the memory 31-5. Further, the layer processing unit 21-9 stores and holds the result of the convolution processing based on the filter coefficient of the last 21 samples of the convolution filter for the above-mentioned intermediate data in the 20th memory area of the memory 31-5. Let me. The data held in the memory 31-5 in this way is used for the processing of step S20 performed for the future frame.

 以上のようにして信号処理装置11は、入力保持手法と出力保持手法とを選択的に組み合わせて用いて、DNNを構成する各レイヤ(階層)でのレイヤ処理を行うことで、識別処理を実現する。このようにすることで、演算量と必要なメモリ量を削減することができる。 As described above, the signal processing device 11 realizes the identification processing by selectively using the input holding method and the output holding method in combination and performing the layer processing in each layer (layer) constituting the DNN. do. By doing so, it is possible to reduce the amount of calculation and the amount of memory required.

 なお、本技術を適用したDNNによる処理(DNN処理)は、例えば人間の声や車の走行音など、特定の音を検出するためのものであってもよいし、音声認識を行うものであってもよい。すなわち、DNN処理は、上述した識別処理に限らず、各種の検出処理など、どのような処理であってもよい。 Note that the processing by DNN to which this technology is applied (DNN processing) may be for detecting a specific sound such as a human voice or a running sound of a car, or is for performing voice recognition. You may. That is, the DNN process is not limited to the above-mentioned identification process, and may be any process such as various detection processes.

 また、本技術を適用したDNNの入力となる時系列データ(入力データ)は、オーディオデータに限らず、例えば加速度センサや脳波センサなどのセンサの出力データ(センサデータ)、映像データ、時系列の特徴量データなど、どのようなものであってもよい。 In addition, the time-series data (input data) that is the input of the DNN to which this technology is applied is not limited to audio data, but is not limited to audio data, for example, output data (sensor data) of sensors such as acceleration sensors and brain wave sensors, video data, and time-series. Any kind of data such as feature amount data may be used.

 例えばオーディオデータから抽出された時系列の特徴量データを1つ目の次元(チャネル)のデータとし、映像データから抽出された時系列の特徴量データを2つ目の次元のデータとする2次元の時系列データが入力データとしてDNNに入力されてもよい。 For example, the time-series feature amount data extracted from the audio data is used as the data of the first dimension (channel), and the time-series feature amount data extracted from the video data is used as the data of the second dimension. The time series data of may be input to the DNN as input data.

 その他、本技術を適用したDNNにおいては、例えばオーディオデータと映像データからなる入力データが入力され、DNNの所定のレイヤまでは、オーディオデータに対するレイヤ処理と、映像データに対するレイヤ処理とが並列に行われるようにしてもよい。そのような場合、例えば、あるレイヤにおいて、オーディオデータに基づき得られた中間データと、映像データから得られた中間データとが統合されて、1つのレイヤ処理の入力とされる。 In addition, in a DNN to which this technology is applied, for example, input data consisting of audio data and video data is input, and layer processing for audio data and layer processing for video data are performed in parallel up to a predetermined layer of the DNN. You may be asked. In such a case, for example, in a certain layer, the intermediate data obtained based on the audio data and the intermediate data obtained from the video data are integrated and used as an input for one layer processing.

 本技術を適用したDNNは、複数のレイヤを有するものに限らず、1つのレイヤのみを有するものであってもよい。さらに、本技術は、DNNに限らず、1または複数の階層(レイヤ)で畳み込み処理等の各種の演算処理を行い、最終的な1つの演算処理結果を出力する装置にも適用可能である。 The DNN to which this technology is applied is not limited to those having a plurality of layers, and may be those having only one layer. Further, this technique is not limited to DNN, and can be applied to a device that performs various arithmetic processes such as convolution processing in one or a plurality of layers (layers) and outputs a final arithmetic processing result.

 例えば16チャネルの入力データを入力として、1つのレイヤで畳み込み処理等のレイヤ処理(演算処理)が行われ、その処理結果として得られた1チャネルのデータがDNNの出力とされる場合においても本技術は適用可能である。 For example, even when the input data of 16 channels is input, layer processing (arithmetic processing) such as convolution processing is performed in one layer, and the data of 1 channel obtained as a result of the processing is used as the output of DNN. The technology is applicable.

 以上のような本技術は、例えば音声認識等の様々なリアルタイム時系列信号処理を行う装置に対して適用することができる。 The above technology can be applied to devices that perform various real-time time-series signal processing such as voice recognition.

〈コンピュータの構成例〉
 ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
<Computer configuration example>
By the way, the series of processes described above can be executed by hardware or software. When a series of processes is executed by software, the programs constituting the software are installed on the computer. Here, the computer includes a computer embedded in dedicated hardware and, for example, a general-purpose personal computer capable of executing various functions by installing various programs.

 図10は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。 FIG. 10 is a block diagram showing a configuration example of computer hardware that executes the above-mentioned series of processes programmatically.

 コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。 In a computer, a CPU (Central Processing Unit) 501, a ROM (Read Only Memory) 502, and a RAM (Random Access Memory) 503 are connected to each other by a bus 504.

 バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、入力部506、出力部507、記録部508、通信部509、及びドライブ510が接続されている。 An input / output interface 505 is further connected to the bus 504. An input unit 506, an output unit 507, a recording unit 508, a communication unit 509, and a drive 510 are connected to the input / output interface 505.

 入力部506は、キーボード、マウス、マイクロフォン、撮像素子などよりなる。出力部507は、ディスプレイ、スピーカなどよりなる。記録部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインターフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体511を駆動する。 The input unit 506 includes a keyboard, a mouse, a microphone, an image pickup device, and the like. The output unit 507 includes a display, a speaker, and the like. The recording unit 508 includes a hard disk, a non-volatile memory, and the like. The communication unit 509 includes a network interface and the like. The drive 510 drives a removable recording medium 511 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.

 以上のように構成されるコンピュータでは、CPU501が、例えば、記録部508に記録されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。 In the computer configured as described above, the CPU 501 loads the program recorded in the recording unit 508 into the RAM 503 via the input / output interface 505 and the bus 504 and executes the above-mentioned series. Is processed.

 コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。 The program executed by the computer (CPU501) can be recorded and provided on a removable recording medium 511 as a package medium or the like, for example. The program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.

 コンピュータでは、プログラムは、リムーバブル記録媒体511をドライブ510に装着することにより、入出力インターフェース505を介して、記録部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記録部508にインストールすることができる。その他、プログラムは、ROM502や記録部508に、あらかじめインストールしておくことができる。 In the computer, the program can be installed in the recording unit 508 via the input / output interface 505 by mounting the removable recording medium 511 in the drive 510. Further, the program can be received by the communication unit 509 and installed in the recording unit 508 via a wired or wireless transmission medium. In addition, the program can be pre-installed in the ROM 502 or the recording unit 508.

 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。 The program executed by the computer may be a program in which processing is performed in chronological order according to the order described in the present specification, in parallel, or at a necessary timing such as when a call is made. It may be a program in which processing is performed.

 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。 Further, the embodiment of the present technology is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present technology.

 例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。 For example, this technology can take a cloud computing configuration in which one function is shared by multiple devices via a network and processed jointly.

 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。 In addition, each step described in the above flowchart can be executed by one device or shared by a plurality of devices.

 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。 Further, when a plurality of processes are included in one step, the plurality of processes included in the one step can be executed by one device or shared by a plurality of devices.

 さらに、本技術は、以下の構成とすることも可能である。 Furthermore, this technology can also have the following configurations.

(1)
 入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置であって、
 入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させる演算処理部を備える
 信号処理装置。
(2)
 前記演算処理部は、前記所定フレームにおいて行われた前記一部の処理の処理結果と、前記未来のフレームの前記データとに基づいて、前記未来のフレームの前記演算処理の処理結果を求める
 (1)に記載の信号処理装置。
(3)
 複数の前記演算処理部を有し、
 前記複数の前記演算処理部のうちの少なくとも1つの前記演算処理部は、前記所定フレームにおいて前記一部の処理を行い、前記一部の処理の処理結果を保持させ、
 前記複数の前記演算処理部のうちの少なくとも1つの前記演算処理部は、前記所定フレームの前記データの一部または全部を保持させ、前記データの一部または全部と前記未来のフレームの前記データとに基づいて、前記未来のフレームの前記演算処理を行う
 (1)または(2)に記載の信号処理装置。
(4)
 前記所定フレームにおいて前記一部の処理を行わせ、前記一部の処理の処理結果を保持させるか、前記所定フレームの前記データの一部または全部を保持させ、前記データの一部または全部と前記未来のフレームの前記データとに基づいて、前記未来のフレームの前記演算処理を行わせるかの切り替えを行う制御部をさらに備える
 (1)乃至(3)の何れか一項に記載の信号処理装置。
(5)
 前記制御部は、前記演算処理部ごとに前記切り替えを行う
 (4)に記載の信号処理装置。
(6)
 前記所定フレームにおける前記一部の処理の処理結果、または前記所定フレームの前記データの一部または全部を保持するメモリをさらに備える
 (3)乃至(5)の何れか一項に記載の信号処理装置。
(7)
 前記1または複数の演算処理には、畳み込み処理、プーリング処理、およびレジデュアル処理の少なくとも1つが含まれる
 (1)乃至(6)の何れか一項に記載の信号処理装置。
(8)
 前記未来のフレームの前記演算処理が、前記所定フレームの前記データの一部または全部と、前記未来のフレームの前記データの少なくとも一部とからなるデータ領域を対象とする畳み込み処理である場合、
 前記演算処理部は、前記データ領域における前記所定フレームの前記データの一部または全部の部分のみを対象とする畳み込み処理を前記一部の処理として行うか、前記データ領域における前記未来のフレームのデータの部分をゼロデータとした畳み込み処理を前記一部の処理として行う
 (1)乃至(7)の何れか一項に記載の信号処理装置。
(9)
 複数の前記演算処理部を有し、前記複数の前記演算処理部によりニューラルネットワークが構成される
 (1)乃至(8)の何れか一項に記載の信号処理装置。
(10)
 前記演算処理における前進数、前記演算処理に用いられるフィルタ係数からなるフィルタのタップ数、前記演算処理において対象とされるデータ領域の大きさ、または前記入力データのフレーム長は、前記入力データのデータ形状に基づいて定められる
 (1)乃至(9)の何れか一項に記載の信号処理装置。
(11)
 前記入力データのデータ形状は、前記入力データの次元数および各次元におけるデータ数により定まる
 (10)に記載の信号処理装置。
(12)
 前記入力データがオーディオデータである場合、前記次元数は前記オーディオデータのチャネル数である
 (11)に記載の信号処理装置。
(13)
 前記入力データは、オーディオデータ、センサデータ、および映像データのうちの少なくとも何れか1つからなるデータである
 (1)乃至(12)の何れか一項に記載の信号処理装置。
(14)
 入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置が、
 入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させる
 信号処理方法。
(15)
 入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置を制御するコンピュータに、
 入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させる
 ステップを含む処理を実行させるプログラム。
(1)
A signal processing device that performs processing consisting of one or more arithmetic processing on an input data in frame units.
An arithmetic processing unit that performs a part of the arithmetic processing of a frame in the future from the predetermined frame based on a part or all of the input data of the predetermined frame and holds the processing result of the partial processing. A signal processing device.
(2)
The arithmetic processing unit obtains the processing result of the arithmetic processing of the future frame based on the processing result of the partial processing performed in the predetermined frame and the data of the future frame (1). ). The signal processing device.
(3)
It has a plurality of the arithmetic processing units, and has a plurality of the arithmetic processing units.
At least one of the plurality of arithmetic processing units performs the partial processing in the predetermined frame, and holds the processing result of the partial processing.
At least one of the plurality of arithmetic processing units has the arithmetic processing unit holding a part or all of the data in the predetermined frame, and a part or all of the data and the data in the future frame. The signal processing apparatus according to (1) or (2), which performs the arithmetic processing of the future frame based on the above.
(4)
The partial processing is performed in the predetermined frame and the processing result of the partial processing is retained, or a part or all of the data in the predetermined frame is retained, and a part or all of the data and the said. The signal processing apparatus according to any one of (1) to (3), further comprising a control unit for switching whether to perform the arithmetic processing of the future frame based on the data of the future frame. ..
(5)
The signal processing device according to (4), wherein the control unit performs the switching for each arithmetic processing unit.
(6)
The signal processing apparatus according to any one of (3) to (5), further comprising a memory for holding a processing result of the partial processing in the predetermined frame or a part or all of the data in the predetermined frame. ..
(7)
The signal processing apparatus according to any one of (1) to (6), wherein the one or more arithmetic processes include at least one of a convolution process, a pooling process, and a resilient process.
(8)
When the arithmetic processing of the future frame is a convolution processing targeting a data area including a part or all of the data of the predetermined frame and at least a part of the data of the future frame.
The arithmetic processing unit either performs a convolution process targeting only a part or all of the data of the predetermined frame in the data area as the partial processing, or the data of the future frame in the data area. The signal processing apparatus according to any one of (1) to (7), wherein the convolution process in which the portion of is zero data is performed as the partial process.
(9)
The signal processing apparatus according to any one of (1) to (8), which has a plurality of the arithmetic processing units and has a neural network configured by the plurality of arithmetic processing units.
(10)
The number of forward movements in the arithmetic processing, the number of taps of the filter consisting of the filter coefficient used in the arithmetic processing, the size of the data area targeted in the arithmetic processing, or the frame length of the input data is the data of the input data. The signal processing apparatus according to any one of (1) to (9), which is determined based on the shape.
(11)
The signal processing apparatus according to (10), wherein the data shape of the input data is determined by the number of dimensions of the input data and the number of data in each dimension.
(12)
The signal processing device according to (11), wherein when the input data is audio data, the dimension number is the number of channels of the audio data.
(13)
The signal processing device according to any one of (1) to (12), wherein the input data is data including at least one of audio data, sensor data, and video data.
(14)
A signal processing device that performs processing consisting of one or more arithmetic processing on an input data in frame units
A signal processing method that performs a part of the arithmetic processing of a frame in the future from the predetermined frame based on a part or all of the input data of the predetermined frame and retains the processing result of the part of the processing. ..
(15)
For a computer that controls a signal processing device that performs processing consisting of one or more arithmetic processing on a frame-by-frame basis for input data.
Includes a step of performing a part of the arithmetic processing of a frame after the predetermined frame based on a part or all of the input data of the predetermined frame and holding the processing result of the part of the processing. A program that executes processing.

 11 信号処理装置, 21-1乃至21-9,21 レイヤ処理部, 22 制御部, 31-1乃至31-5,31 メモリ 11 Signal processing device, 21-1 to 21-9, 21 Layer processing unit, 22 Control unit, 31-1 to 31-5, 31 Memory

Claims (15)

 入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置であって、
 入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させる演算処理部を備える
 信号処理装置。
A signal processing device that performs processing consisting of one or more arithmetic processing on an input data in frame units.
An arithmetic processing unit that performs a part of the arithmetic processing of a frame in the future from the predetermined frame based on a part or all of the input data of the predetermined frame and holds the processing result of the partial processing. A signal processing device.
 前記演算処理部は、前記所定フレームにおいて行われた前記一部の処理の処理結果と、前記未来のフレームの前記データとに基づいて、前記未来のフレームの前記演算処理の処理結果を求める
 請求項1に記載の信号処理装置。
A claim that the arithmetic processing unit obtains a processing result of the arithmetic processing of the future frame based on the processing result of the partial processing performed in the predetermined frame and the data of the future frame. The signal processing apparatus according to 1.
 複数の前記演算処理部を有し、
 前記複数の前記演算処理部のうちの少なくとも1つの前記演算処理部は、前記所定フレームにおいて前記一部の処理を行い、前記一部の処理の処理結果を保持させ、
 前記複数の前記演算処理部のうちの少なくとも1つの前記演算処理部は、前記所定フレームの前記データの一部または全部を保持させ、前記データの一部または全部と前記未来のフレームの前記データとに基づいて、前記未来のフレームの前記演算処理を行う
 請求項1に記載の信号処理装置。
It has a plurality of the arithmetic processing units, and has a plurality of the arithmetic processing units.
At least one of the plurality of arithmetic processing units performs the partial processing in the predetermined frame, and holds the processing result of the partial processing.
At least one of the plurality of arithmetic processing units has the arithmetic processing unit holding a part or all of the data in the predetermined frame, and a part or all of the data and the data in the future frame. The signal processing apparatus according to claim 1, wherein the arithmetic processing of the future frame is performed based on the above.
 前記所定フレームにおいて前記一部の処理を行わせ、前記一部の処理の処理結果を保持させるか、前記所定フレームの前記データの一部または全部を保持させ、前記データの一部または全部と前記未来のフレームの前記データとに基づいて、前記未来のフレームの前記演算処理を行わせるかの切り替えを行う制御部をさらに備える
 請求項1に記載の信号処理装置。
The partial processing is performed in the predetermined frame and the processing result of the partial processing is retained, or a part or all of the data in the predetermined frame is retained, and a part or all of the data and the said. The signal processing apparatus according to claim 1, further comprising a control unit for switching whether to perform the arithmetic processing of the future frame based on the data of the future frame.
 前記制御部は、前記演算処理部ごとに前記切り替えを行う
 請求項4に記載の信号処理装置。
The signal processing device according to claim 4, wherein the control unit performs the switching for each arithmetic processing unit.
 前記所定フレームにおける前記一部の処理の処理結果、または前記所定フレームの前記データの一部または全部を保持するメモリをさらに備える
 請求項3に記載の信号処理装置。
The signal processing apparatus according to claim 3, further comprising a memory for holding a processing result of the partial processing in the predetermined frame or a part or all of the data in the predetermined frame.
 前記1または複数の演算処理には、畳み込み処理、プーリング処理、およびレジデュアル処理の少なくとも1つが含まれる
 請求項1に記載の信号処理装置。
The signal processing apparatus according to claim 1, wherein the one or more arithmetic processes include at least one of a convolution process, a pooling process, and a resilient process.
 前記未来のフレームの前記演算処理が、前記所定フレームの前記データの一部または全部と、前記未来のフレームの前記データの少なくとも一部とからなるデータ領域を対象とする畳み込み処理である場合、
 前記演算処理部は、前記データ領域における前記所定フレームの前記データの一部または全部の部分のみを対象とする畳み込み処理を前記一部の処理として行うか、前記データ領域における前記未来のフレームのデータの部分をゼロデータとした畳み込み処理を前記一部の処理として行う
 請求項1に記載の信号処理装置。
When the arithmetic processing of the future frame is a convolution processing targeting a data area including a part or all of the data of the predetermined frame and at least a part of the data of the future frame.
The arithmetic processing unit either performs a convolution process targeting only a part or all of the data of the predetermined frame in the data area as the partial processing, or the data of the future frame in the data area. The signal processing apparatus according to claim 1, wherein the convolution processing in which the portion of is zero data is performed as the partial processing.
 複数の前記演算処理部を有し、前記複数の前記演算処理部によりニューラルネットワークが構成される
 請求項1に記載の信号処理装置。
The signal processing apparatus according to claim 1, which has a plurality of the arithmetic processing units, and the neural network is configured by the plurality of arithmetic processing units.
 前記演算処理における前進数、前記演算処理に用いられるフィルタ係数からなるフィルタのタップ数、前記演算処理において対象とされるデータ領域の大きさ、または前記入力データのフレーム長は、前記入力データのデータ形状に基づいて定められる
 請求項1に記載の信号処理装置。
The number of forward movements in the arithmetic processing, the number of taps of the filter consisting of the filter coefficient used in the arithmetic processing, the size of the data area targeted in the arithmetic processing, or the frame length of the input data is the data of the input data. The signal processing device according to claim 1, which is determined based on the shape.
 前記入力データのデータ形状は、前記入力データの次元数および各次元におけるデータ数により定まる
 請求項10に記載の信号処理装置。
The signal processing device according to claim 10, wherein the data shape of the input data is determined by the number of dimensions of the input data and the number of data in each dimension.
 前記入力データがオーディオデータである場合、前記次元数は前記オーディオデータのチャネル数である
 請求項11に記載の信号処理装置。
The signal processing device according to claim 11, wherein when the input data is audio data, the number of dimensions is the number of channels of the audio data.
 前記入力データは、オーディオデータ、センサデータ、および映像データのうちの少なくとも何れか1つからなるデータである
 請求項1に記載の信号処理装置。
The signal processing device according to claim 1, wherein the input data is data including at least one of audio data, sensor data, and video data.
 入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置が、
 入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させる
 信号処理方法。
A signal processing device that performs processing consisting of one or more arithmetic processing on an input data in frame units
A signal processing method that performs a part of the arithmetic processing of a frame in the future from the predetermined frame based on a part or all of the input data of the predetermined frame and retains the processing result of the part of the processing. ..
 入力データに対してフレーム単位で1または複数の演算処理からなる処理を行う信号処理装置を制御するコンピュータに、
 入力された所定フレームのデータの一部または全部に基づいて、前記所定フレームよりも未来のフレームの前記演算処理の一部の処理を行い、前記一部の処理の処理結果を保持させる
 ステップを含む処理を実行させるプログラム。
For a computer that controls a signal processing device that performs processing consisting of one or more arithmetic processing on a frame-by-frame basis for input data.
Including a step of performing a part of the arithmetic processing of a frame after the predetermined frame based on a part or all of the input data of the predetermined frame and holding the processing result of the part of the processing. A program that executes processing.
PCT/JP2021/029792 2020-08-27 2021-08-13 Signal processing device and method, and program Ceased WO2022044844A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-143446 2020-08-27
JP2020143446 2020-08-27

Publications (1)

Publication Number Publication Date
WO2022044844A1 true WO2022044844A1 (en) 2022-03-03

Family

ID=80353172

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/029792 Ceased WO2022044844A1 (en) 2020-08-27 2021-08-13 Signal processing device and method, and program

Country Status (1)

Country Link
WO (1) WO2022044844A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12186434B1 (en) 2024-05-13 2025-01-07 King Saud University Surfactin-based lipopeptide for mRNA delivery

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018185724A (en) * 2017-04-27 2018-11-22 Kddi株式会社 Device, program and method for tracking object using pixel change processing image

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018185724A (en) * 2017-04-27 2018-11-22 Kddi株式会社 Device, program and method for tracking object using pixel change processing image

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Computer vision - ECCV 2020 : 16th European conference, Glasgow, UK, August 23-28, 2020 : proceedings", vol. 69, 24 November 2016, SPRINGER INTERNATIONAL PUBLISHING, Cham, ISBN: 978-3-030-58594-5, article SHELHAMER EVAN; RAKELLY KATE; HOFFMAN JUDY; DARRELL TREVOR: "Clockwork Convnets for Video Semantic Segmentation", pages: 852 - 868, XP047566193, DOI: 10.1007/978-3-319-49409-8_69 *
MENGWEI XU; MENGZE ZHU; YUNXIN LIU; FELIX XIAOZHU LIN; XUANZHE LIU: "DeepCache: Principled Cache for Mobile Deep Vision", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 1 December 2017 (2017-12-01), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081630306, DOI: 10.1145/3241539.3241563 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12186434B1 (en) 2024-05-13 2025-01-07 King Saud University Surfactin-based lipopeptide for mRNA delivery
US12251477B1 (en) 2024-05-13 2025-03-18 King Saud University Surfactin-based lipopeptide for mRNA delivery
US12257353B1 (en) 2024-05-13 2025-03-25 King Saud University Surfactin-based lipopeptide for mRNA delivery

Similar Documents

Publication Publication Date Title
EP4238089B1 (en) Deep-learning based speech enhancement
US11521039B2 (en) Method and apparatus with neural network performing convolution
JP2023545565A (en) Image detection method, model training method, image detection device, training device, equipment and program
CN110136744B (en) Audio fingerprint generation method, equipment and storage medium
KR102144381B1 (en) Learning method and device for image segmentation and image segmentation method and device using the same
EP3480740A1 (en) Method and apparatus with neural network performing deconvolution
GB2609708A (en) Method and apparatus for video recognition
KR20190039459A (en) Learning method and learning device for improving performance of cnn by using feature upsampling networks, and testing method and testing device using the same
KR20200067631A (en) Image processing apparatus and operating method for the same
JP2021512407A (en) Object prediction methods and devices, electronic devices and storage media
CN114238904B (en) Identity recognition method, and training method and device of dual-channel hyper-resolution model
CN111598891A (en) Plaque stability identification method, device, device and storage medium
KR20200095300A (en) Method and apparatus for processing convolution operation of neural network
WO2022044844A1 (en) Signal processing device and method, and program
EP3745312A1 (en) Neural network processing device and method, and program
CN112106080B (en) Electronic device and control method thereof
CN110462637B (en) Neural network data processing device and method
KR20220037764A (en) Image processing apparatus and operating method for the same
EP4083874A1 (en) Image processing device and operating method therefor
CN113344827A (en) Image denoising method, image denoising network operation unit and device
CN119380415A (en) Video action recognition method, device, electronic device and storage medium
CN117940970A (en) Method, system and medium for computer vision using 2D convolution of 4D video data tensors
US20230129845A1 (en) Method and electronic device for performing deep neural network operation
CN112489687B (en) Voice emotion recognition method and device based on sequence convolution
CN113870191A (en) Neckline detection method, system, terminal device and storage medium

Legal Events

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

Ref document number: 21861272

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21861272

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP