WO2024142897A1 - 情報処理装置、及び情報処理方法 - Google Patents

情報処理装置、及び情報処理方法 Download PDF

Info

Publication number
WO2024142897A1
WO2024142897A1 PCT/JP2023/044343 JP2023044343W WO2024142897A1 WO 2024142897 A1 WO2024142897 A1 WO 2024142897A1 JP 2023044343 W JP2023044343 W JP 2023044343W WO 2024142897 A1 WO2024142897 A1 WO 2024142897A1
Authority
WO
WIPO (PCT)
Prior art keywords
feature
data
compression
unit
prediction
Prior art date
Application number
PCT/JP2023/044343
Other languages
English (en)
French (fr)
Inventor
武文 名雲
卓也 北村
義基 小野
敦 大和
Original Assignee
ソニーセミコンダクタソリューションズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーセミコンダクタソリューションズ株式会社 filed Critical ソニーセミコンダクタソリューションズ株式会社
Publication of WO2024142897A1 publication Critical patent/WO2024142897A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Definitions

  • This disclosure relates to an information processing device and an information processing method, and in particular to an information processing device and an information processing method that enable more reliable machine learning inference.
  • An information processing device includes a pre-analysis unit that analyzes a neural network before performing inference using the neural network and generates control information for controlling compression and decoding of features processed by the neural network, a calculation unit that performs inference using input data and the neural network and outputs the processing result of the features obtained from the input data as a calculation result, a compression unit that compresses the features input from the calculation unit based on the control information and records the compressed features in memory, which are the compressed features, and a decoding unit that decodes the compressed features temporarily recorded in the memory based on the control information and outputs the decoded features to the calculation unit.
  • An information processing method is an information processing method in which an information processing device analyzes a neural network before performing inference using the neural network, generates control information for controlling compression and decoding of features processed by the neural network, performs inference using input data and the neural network, outputs the processing results of the features obtained from the input data as the calculation result, compresses the input features based on the control information, records compressed features that are the compressed features in memory, and decodes the compressed features temporarily recorded in memory based on the control information, and outputs the decoded features.
  • the neural network before performing inference using the neural network, the neural network is analyzed, control information for controlling compression and decoding of features processed by the neural network is generated, inference is performed using input data and the neural network, the processing results of the features obtained from the input data are output as the calculation results, the input features are compressed based on the control information, the compressed features that are the compressed features are recorded in memory, the compressed features temporarily recorded in memory are decoded based on the control information, and the decoded features are output.
  • An information processing device includes a pre-analysis unit that generates control information for controlling compression of image data based on sample data of the image data, and a compression unit that compresses the input image data based on the control information, and the pre-analysis unit selects a non-linear conversion table for performing non-linear conversion according to a result of analyzing the statistical values of the sample data of the image data, and selects a residual non-linear conversion table for performing residual non-linear conversion according to a result of analyzing the statistical values of the sample data based on sample data of a prediction residual, which is the difference between the sample data of the image data and a prediction value of the sample data of the image data,
  • the control information includes identification information for the nonlinear transformation table and the residual nonlinear transformation table
  • the compression unit uses a compression method for compressing the image data by generating a predicted value for the input image data and entropy encoding difference information obtained from the difference between the image data and the predicted value, performs nonlinear transformation on the
  • control information for controlling compression of the image data is generated based on sample data of the image data, and the input image data is compressed based on the control information.
  • a nonlinear conversion table is selected for performing nonlinear conversion according to the result of analyzing the statistical value of the sample data of the image data
  • a residual nonlinear conversion table is selected for performing residual nonlinear conversion according to the result of analyzing the statistical value of the sample data based on sample data of a prediction residual which is the difference between the sample data of the image data and the prediction value of the sample data of the image data
  • identification information of the selected nonlinear conversion table and the residual nonlinear conversion table is included in the control information
  • a compression method is used to compress the image data by generating a prediction value for the input image data and entropy encoding difference information obtained from the difference between the image data and the prediction value, and a nonlinear conversion is performed on the input image data according to the nonlinear conversion table, and a residual nonlinear conversion is performed
  • inference is performed using input data and a neural network, a processing result obtained by processing a feature obtained from the input data is output as a calculation result, the input feature is compressed, the compressed feature is recorded in a memory, the compressed feature temporarily recorded in the memory is decoded, and the decoded feature is output.
  • the feature is three-dimensional data in which feature values in an xy plane are configured for each channel in the z direction, and a compression method is used to compress the feature by generating a predicted value for the input feature data and entropy-encoding difference information obtained from the difference between the feature data and the predicted value, and when a compression method for packing the feature data in a second direction corresponding to the z direction is set as the compression method for the feature, the predicted value is generated by prediction in a first direction corresponding to the xy plane of the same channel as the feature data, and the difference information obtained from the difference between the feature data and the predicted value is packed in the second direction.
  • the information processing device of one aspect of the present disclosure may be an independent device or an internal block constituting a single device.
  • FIG. 1 is a diagram illustrating an example of the configuration of a conventional machine learning inference device.
  • FIG. 11 is a diagram showing the relationship between the amount of data required for processing for each layer and the memory size.
  • FIG. 1 is a diagram illustrating an example of a data configuration of features of a DNN.
  • FIG. 13 is a diagram illustrating an example of a data access method for DNN processing.
  • FIG. 1 is a diagram illustrating an example of the configuration of an embodiment of a machine learning inference device to which the present disclosure is applied.
  • FIG. 6 is a diagram illustrating an example of the configuration of the network pre-analyzer of FIG. 5 .
  • FIG. 1 is a diagram illustrating an example of a network configuration of a DNN.
  • FIG. 11 is a diagram illustrating an example of the data size of weight data.
  • FIG. 11 is a diagram illustrating an example of the data size of a feature map.
  • 10 is a flowchart showing a flow of calculation of a compression ratio of a feature amount.
  • FIG. 13 is a diagram illustrating an example of calculating the data size of a feature map required in each layer.
  • FIG. 13 is a diagram illustrating an example of the data size of a feature map required in each layer.
  • FIG. 13 is a diagram illustrating an example of the maximum target rate for each layer.
  • FIG. 13 is a diagram illustrating an example of a target rate for each layer.
  • FIG. 13 is a diagram illustrating an example of calculating a target rate for each feature map.
  • FIG. 13 is a diagram illustrating an example of a target rate for each feature map.
  • FIG. 13 is a diagram illustrating an example of DNN processing.
  • FIG. 1 is a diagram showing compression methods suitable for each process of the DNN processing.
  • 10 is a flowchart showing a procedure for determining a compression method for a feature amount.
  • FIG. 13 is a diagram illustrating an example of a decision table for determining a compression method for a feature amount.
  • FIG. 13 is a diagram illustrating an example of a decision table for determining a compression method for a feature amount.
  • FIG. 13 is a diagram illustrating an example of a decision table for determining a compression method for a feature amount.
  • FIG. 13 is a diagram illustrating an example of a decision table for determining a compression method for a feature amount.
  • FIG. 13 is a diagram illustrating an example of a decision table for determining a compression method for a feature amount.
  • FIG. 11 is a diagram illustrating a first example of a case in which the frequency bias of feature amount data is asymmetric.
  • FIG. 11 is a diagram illustrating a second example of a case in which the frequency bias of feature amount data is asymmetric.
  • FIG. 11 is a diagram illustrating a first example in which the frequency distribution of feature amount data is symmetrical.
  • FIG. 11 is a diagram illustrating a second example in which the frequency bias of feature amount data is symmetrical.
  • FIG. 13 is a diagram illustrating an example of pre-processing introduced on the encoding side.
  • FIG. 13 illustrates an example of post-processing introduced on the decoding side.
  • FIG. 13 illustrates an example of compression parameter determination by a network pre-analyzer.
  • FIG. 13 is a diagram showing post-processing for asymmetry in the post-processing unit.
  • FIG. 13 is a diagram showing preprocessing for symmetry in the preprocessing unit.
  • FIG. 13 is a diagram showing post-processing for symmetry in the post-processing unit.
  • FIG. 13 is a diagram illustrating an example of a refinement process.
  • FIG. 13 illustrates another exemplary configuration of the compression unit.
  • FIG. 13 is a diagram illustrating another exemplary configuration of the decoding unit.
  • FIG. 13 is a diagram illustrating an example of the configuration of a compressed stream when quantized data includes non-zero values.
  • FIG. 13 is a diagram showing an example of the configuration of a compressed stream when all quantized data is zero.
  • FIG. 1 is a block diagram illustrating an example of the configuration of a computer.
  • the machine learning inference unit 11 is a computing unit that performs machine learning inference.
  • the machine learning inference unit 11 performs machine learning inference processing such as deep learning based on the network information and input data input thereto, and outputs the resulting calculation results to the outside.
  • a neural network that is adapted to deep learning and has four or more layers is called a deep neural network (DNN).
  • the input data is image data and other data.
  • DNN features are often expressed as three-dimensional data as shown in Figure 3.
  • the xy plane indicates the spatial position of the feature
  • the z direction indicates the channel direction of the feature.
  • feature f is three-dimensional data that configures the features in the xy plane for each channel in the z direction, and is composed of features f10 to f16 corresponding to channels #0 to #6.
  • the network pre-analyzer 110 analyzes the network information input thereto, and outputs the encoding control information obtained as a result of the analysis to the machine learning calculator 111.
  • the network information is information about neural networks such as deep neural networks (DNNs) used in machine learning inference.
  • the encoding control information is control information for controlling the compression and decoding of features processed by machine learning.
  • the network pre-analyzer 110 analyzes the network information used in the machine learning, and inputs the encoding control information obtained as a result of the analysis to the machine learning calculator 111. Then, in the machine learning calculator 111, when the calculator 121 performs the machine learning inference process, the features processed by the neural network such as DNN are temporarily recorded in the memory 124, and the features recorded in the memory 124 are compressed by the compressor 122 and decoded by the decoder 123 based on the encoding control information as necessary.
  • the compression ratio calculation unit 142 calculates and outputs the compression ratio of the feature based on the detection result from the detection unit 141.
  • the optimum compression ratio is calculated using information such as the network configuration of the neural network and the available memory size in the memory 124 in addition to the data size of the weight and the data size of the feature.
  • the optimum compression ratio calculated here can be specified as the target compression rate in the compression process by the compression unit 122, and is therefore hereinafter also referred to as the target rate. Details of the calculation of the compression ratio of the feature will be described later with reference to Figures 7 to 16.
  • the memory 124 in the machine learning calculator 111 is configured as SRAM, and the available memory size is 32 kilobytes (KB).
  • the network information input to the network pre-analyzer 110 is explained using the DNN network configuration shown in Figure 7.
  • a feature map is processed as a feature amount.
  • One of the DNN techniques is CNN (Convolutional Neural Network), and here we will explain the case where CNN is used.
  • the detection unit 141 detects the data sizes of the weights and feature maps shown in Figs. 8 and 9. Note that the weights and the pre-compression feature map are each 8-bit/sample data.
  • Figure 11 shows an example of calculating the data size of the feature maps required for each layer.
  • pixel wise conv-1 inputs feature map1 of 19,200 bytes and outputs feature map2 of 9,600 bytes, so the total data size of the feature maps is 28,800 bytes.
  • Depth wise conv inputs feature map2 of 9,600 bytes and outputs feature map3 of 38,400 bytes, so the total data size of the feature maps is 48,000 bytes.
  • FIG. 17 shows the processing concepts of depth-wise convolution and pixel-wise convolution used in MobileNet and the like.
  • MobileNet is a lightweight, highly accurate CNN architecture that can be used even with limited resources such as mobile terminals.
  • the final decision table will be as shown in Figure 26. That is, as shown in the decision table in Figure 26, feature maps 1 and 5 are uncompressed, feature map 2 is compressed using a spatial direction combined compression method, feature map 3 is compressed using a depth direction combined compression method, and feature map 4 is compressed using a spatial direction combined compression method.
  • FIG. 28 is a diagram illustrating an example of the configuration of the compression unit 122 in FIG.
  • the compression unit 122 Based on the encoding control information from the network pre-analyzer 110, the compression unit 122 generates compressed features by compressing the features input from the calculation unit 121 and outputs them as a compressed stream, or outputs uncompressed features as an uncompressed stream.
  • the stream for each feature, including the compressed stream or uncompressed stream, is output from the compression unit 122 to the memory 124, where the data is temporarily recorded.
  • the compression unit 122 has a data extraction unit 161, a switch 162, an adder 163, a quantizer 164, an entropy coding unit 165, an inverse quantizer 166, an adder 167, a work buffer 168, and a predicted value generator 169.
  • the coding control information input to the compression unit 122 includes a target rate and a compression method for each feature, and each part of the compression unit 122 is dynamically controlled according to this information (parameters).
  • the data extraction unit 161 receives feature data from the calculation unit 121.
  • the data extraction unit 161 reads out the input feature (feature in 3D tensor format) in two-dimensional compression units according to the compression method input thereto, and outputs it to the switch 162 as blocked feature.
  • the feature input to the data extraction unit 161 is represented as a 3D tensor, and is read out in two-dimensional compression units according to a compression method such as spatial direction summarization or depth direction summarization.
  • the neural network is analyzed in advance to generate coding control information including a compression rate of features that matches the available memory size, making it possible to control the work buffer size required for temporarily recording features processed in inference processing using a neural network to be equal to or less than the available memory size. Furthermore, in the first configuration of the present disclosure, because control is performed using the compression rate of the features, the stream size after compression does not depend on the input data, and the feasibility of inference does not change.
  • the nonlinear conversion table selection unit 321 selects the optimal nonlinear conversion table for each channel of the feature sample based on the sample data of feature #N input thereto, and outputs the nonlinear conversion table ID, which is its identification information. Details of the nonlinear conversion table selection unit 321 will be described later with reference to Figures 36 and 37.
  • x, y represent the spatial position of the feature to be coded
  • i represents the channel to be coded
  • j represents the channel to be predicted
  • P x,y,i represents the predicted value of feature x,y,i .
  • f x,y,j represents the value of feature x,y,j that has already been coded.
  • offset 0 , offset 1 , and Scale are parameters for generating the predicted value.
  • x, y represent the spatial position of the feature to be coded
  • i represents the channel to be coded
  • j represents the channel to be predicted
  • f x,y,j represents the values of the features x,y,j that have already been coded
  • offset 0 , offset 1 , and Scale are parameters for generating predicted values.
  • P x,y,i represents the predicted values of the features x,y,i .
  • min() is a function that returns the minimum numerical value
  • max() is a function that returns the maximum numerical value.
  • inter-channel prediction can be used to perform inter-channel references, or as shown in FIG. 40, spatial direction prediction and inter-channel prediction can be used to perform bidirectional spatial direction references and inter-channel references.
  • the histogram calculation unit 462-0 calculates a histogram of channel #0 of prediction residual #N based on sample data of channel #0 of prediction residual #N, and outputs it to the conversion table ID calculation unit 463-0.
  • the conversion table ID calculation unit 463-0 calculates the residual nonlinear conversion table ID of channel #0 of prediction residual #N based on the histogram from the histogram calculation unit 462-0.
  • histogram matching is performed between the histogram of channel #0 of prediction residual #N and the histogram used to define the residual nonlinear conversion table. The most likely histogram is detected from this histogram matching, and the ID of the residual nonlinear conversion table calculated from the most likely histogram is output.
  • the residual nonlinear conversion table ID for each channel is calculated based on the histogram calculated from the sample data of each channel of prediction residual #N.
  • residual nonlinear conversion table IDs for four channels of prediction residual #N, channels #0 to #3 are output. Note that residual nonlinear conversion tables are prepared in advance and recorded in internal memory, etc., and the ID of the residual nonlinear conversion table selected from them is output.
  • Fig. 45 shows examples of variations in residual nonlinear transformation.
  • Fig. 45 shows examples of histograms and residual nonlinear transformation tables for sample data for each channel of prediction residuals.
  • B of Figure 45 shows a case where sample data p11 of channel #1 of prediction residual #N has a prediction residual like an image with only edge components extracted, as in B of Figure 37, and the frequency of prediction residual values in sample data p11 is represented by line c1. Therefore, for sample data p11, a residual nonlinear conversion table is selected in which the relationship between pre-conversion and post-conversion is as shown by line d1, so as to protect specific prediction residual values.
  • C in Figure 45 shows a case where sample data p12 of channel #2 of prediction residual #N has a prediction residual like a binarized black and white image, as in C in Figure 37, and the frequency of the prediction residual values in sample data p12 is represented by line c2. Therefore, for sample data p12, a residual nonlinear conversion table is selected in which the relationship between pre-conversion and post-conversion is as shown by line d2, so as to protect a specific number of prediction residual values.
  • the nonlinear transformation and inverse nonlinear transformation of the prediction residual are performed by the residual nonlinear transformation unit 265 ( Figure 48) and residual inverse nonlinear transformation unit 269 ( Figure 48) of the compression unit 222, and the residual inverse nonlinear transformation unit 284 ( Figure 49) of the decoding unit 223, respectively, as will be described in detail below.
  • Figure 46 is a diagram showing an example of entropy coding table selection by the entropy coding table selection unit 328 of Figure 35.
  • the entropy coding table selection unit 328 selects which entropy coding table should be used for each channel of the prediction residual, and outputs a Table ID according to the selection result.
  • FIG. 48 is a diagram showing an example of the configuration of the compression unit 222 shown in FIG.
  • the compression unit 222 Based on the encoding control information from the network pre-analyzer 210, the compression unit 222 generates compressed features by compressing the features input from the calculation unit 221 and outputs them as a compressed stream, or outputs uncompressed features as an uncompressed stream.
  • the stream for each feature, including the compressed stream or uncompressed stream, is output from the compression unit 222 to the memory 224, where the data is temporarily recorded.
  • the compression unit 222 has a data extraction unit 261, a switch 262, a nonlinear transformation unit 263, an addition unit 264, a residual nonlinear transformation unit 265, a quantization unit 266, an entropy coding unit 267, an inverse quantization unit 268, a residual inverse nonlinear transformation unit 269, an addition unit 270, a work buffer 271, and a prediction value generation unit 272.
  • the coding control information input to the compression unit 222 includes a target rate, a compression method, and control parameters for each feature, and each unit of the compression unit 222 is dynamically controlled according to this information (parameters).
  • the data extraction unit 261 receives feature data from the calculation unit 221.
  • the data extraction unit 261 reads out the input feature data (feature data in 3D tensor format) in two-dimensional compression units according to the compression method input thereto, and outputs the feature data to the switch 262 as blocked feature data.
  • the switch 262 switches the output destination of the blocked features from the data extraction unit 261 according to the compression method input thereto. That is, when a compression method is specified, the switch 262 is connected to the lower terminal and outputs the blocked features to the nonlinear conversion unit 263. On the other hand, when the specified compression method is non-compression, the switch 262 is connected to the upper terminal and outputs the blocked features as is as a non-compressed stream.
  • the quantization unit 266 quantizes the prediction residual to which nonlinear transformation has been applied from the residual nonlinear transformation unit 265 according to the target rate input thereto, and outputs the quantized prediction residual to the entropy coding unit 267 and the inverse quantization unit 268.
  • the entropy encoding unit 267 performs entropy encoding on the quantized prediction residual from the quantization unit 266 according to the entropy encoding table specified by the entropy encoding table ID input thereto, generates a compressed stream, and outputs it to the outside.
  • the residual inverse nonlinear transformation unit 269 performs an inverse nonlinear transformation on the inverse quantized prediction residual from the inverse quantization unit 268 according to the residual nonlinear transformation table specified by the residual nonlinear transformation table ID input thereto, and outputs the resulting inverse quantized prediction residual after the inverse nonlinear transformation has been applied to the addition unit 270.
  • the adder 270 receives the inverse quantized prediction residual after inverse nonlinear transformation applied from the residual inverse nonlinear transformation unit 269 and the predicted value from the predicted value generation unit 272.
  • the adder 270 adds the inverse quantized prediction residual after inverse nonlinear transformation applied and the predicted value to generate local decoded data, and outputs it to the work buffer 271.
  • the work buffer 271 temporarily records the local decoded data from the adder 270, and outputs it to the predicted value generation unit 272 as necessary.
  • the prediction value generation unit 272 generates a prediction value from the locally decoded data from the work buffer 271 according to the compression method, reference channel ID, reference parameters, and prediction method input thereto, and outputs the prediction value to the addition unit 264 and the addition unit 270.
  • nonlinear conversion tables multiple nonlinear conversion tables, residual nonlinear conversion tables, and entropy coding tables are prepared in advance and recorded in an internal memory, etc.
  • the nonlinear conversion unit 263, residual nonlinear conversion unit 265, entropy coding unit 267, and residual inverse nonlinear conversion unit 269 can read and use a table corresponding to the ID as necessary.
  • FIG. 49 is a diagram showing an example of the configuration of the decoding unit 223 shown in FIG.
  • the decoding unit 223 reconstructs features from the stream (compressed stream or uncompressed stream) for each feature temporarily recorded in the memory 224 based on the encoding control information input from the network pre-analyzer 210, and outputs the reconstructed features to the calculation unit 221. Note that the reconstructed features may be output after the decoding of the entire feature is completed, or the partially reconstructed results may be output sequentially.
  • the decoding unit 223 has a switch 281, an entropy decoding unit 282, an inverse quantization unit 283, a residual inverse nonlinear transformation unit 284, an addition unit 285, an inverse nonlinear transformation unit 286, a data sorting unit 287, a work buffer 288, and a prediction value generation unit 289.
  • the coding control information input to the decoding unit 223 includes a target rate, a compression method, and control parameters for each feature, and each unit of the decoding unit 223 is dynamically controlled according to this information (parameters).
  • Switch 281 switches the output destination of the input stream according to the compression method input thereto. That is, when the compression method specified is non-compression, switch 281 is connected to the upper terminal and outputs the input non-compressed stream to data sorting unit 287. When a compression method is specified, switch 281 is connected to the lower terminal and outputs the input compressed stream to entropy decoding unit 282.
  • the inverse quantization unit 283 performs inverse quantization of the quantized prediction residual from the entropy decoding unit 282 according to the target rate input thereto, and outputs the resulting inverse quantized prediction residual to the residual inverse nonlinear transformation unit 284.
  • the adder 285 receives the inverse quantized prediction residual after inverse nonlinear transformation applied from the residual inverse nonlinear transformation unit 284 and the predicted value from the predicted value generation unit 289.
  • the adder 285 adds the inverse quantized prediction residual after inverse nonlinear transformation applied and the predicted value to generate locally decoded data, and outputs it to the inverse nonlinear transformation unit 286 and the work buffer 288.
  • the data sorting unit 287 receives blocked features input as an uncompressed stream via the switch 281, or blocked features input from the inverse nonlinear transformation unit 286 as locally decoded data to which an inverse nonlinear transformation has been applied.
  • the data sorting unit 287 remaps the blocked feature data into the original feature format, which is a tensor format (3D tensor format), and outputs the resulting feature data.
  • the work buffer 288 temporarily records the locally decoded data from the adder 285, and outputs it to the predicted value generator 289 as necessary.
  • the predicted value generator 289 generates a predicted value from the locally decoded data from the work buffer 288 according to the compression method, reference channel ID, reference parameters, and prediction method input thereto, and outputs it to the adder 285.
  • nonlinear transformation tables multiple nonlinear transformation tables, residual nonlinear transformation tables, and entropy coding tables are prepared in advance and recorded in an internal memory, etc., and the entropy decoding unit 282, residual inverse nonlinear transformation unit 284, and inverse nonlinear transformation unit 286 can read and use a table corresponding to the ID as necessary.
  • the encoding control information generated by the network pre-analyzer 210 by analyzing the neural network in advance can include a compression rate, a compression method, and control parameters for each channel of the feature.
  • the control parameters can include a nonlinear conversion table ID, a residual nonlinear conversion table ID, an entropy encoding table ID, and prediction calculation parameters including a reference channel ID, a reference parameter, and a prediction method.
  • Figure 50 is a schematic diagram of a deep neural network (DNN). As shown in Figure 50, in a DNN, a calculation result (recognition result) is calculated by repeating multiple calculation layers, which may be as many as 100 or more layers. The calculation result of each layer is called a feature map.
  • DNN deep neural network
  • FIG 51 is a diagram showing the configuration of each layer of a DNN.
  • each layer of a DNN is composed of linear filtering processing, which performs convolution and product-sum processing using weight data on the feature map from the previous layer, and activation function processing, which performs nonlinear mapping of the result to generate a feature map.
  • the type and characteristics of the activation function are determined by parameters specific to each layer.
  • Figure 52 shows the ReLU (Rectified Linear Unit) function as an example of an activation function.
  • One method of implementing DNNs is the layer-by-layer calculation method, in which after processing a certain layer (n-1 layer), the calculation result, a feature map, is temporarily stored in memory, and this data is then used to proceed to the next layer (n layer), as shown in Figure 53.
  • n-1 layer the layer-by-layer calculation method
  • the same calculations are repeated within a layer, making it computationally efficient.
  • the amount of memory can be reduced by discarding feature map areas that have been used and reserving new areas as needed.
  • the size of the feature map varies depending on the layer, and it can be larger than the input to the DNN. Therefore, with the layer-by-layer calculation method, it is necessary to reserve an area in memory that is equal to or larger than the largest feature map.
  • the flowchart in Figure 54 shows the flow of conventional DNN processing.
  • the DNN network is analyzed using the DNN Parser (S51).
  • the input data is written to memory (S52), and 1 is set as the initial value of n (S53).
  • n is a variable indicating the layer to be processed, and the value indicating the last layer to be processed is N.
  • n > N is found by repeating steps S54 to S57 (S54: No), the data is read from memory as output data (S58) and the process ends.
  • the feature map stored in memory is overwritten for each layer of processing, so the amount of memory does not increase simply. Note that the analysis of the DNN network (S51) can also be performed offline in advance.
  • FIG 55 shows the configuration and operation of a DNN system that executes conventional DNN processing.
  • a CPU Central Processing Unit
  • DMAC Direct Memory Access Controller
  • DRAM Dynamic Random Access Memory
  • the CPU 31 controls the DNN processor 34 to execute the processing.
  • the following processing is executed in a loop for the number of layers. That is, the CPU 31 reads the DNN parameters and internal memory address information of the desired layer from the ROM and sets them in the DNN processor 34.
  • the CPU 31 starts the DNN processor 34 with a start pulse, and when the processing is completed, the DNN processor 34 returns a finish pulse.
  • the CPU 31 issues a command to the DMAC 32 and transfers the calculation results in the internal memory of the DNN processor 34 to the DRAM 33.
  • DPCM Differential Pulse-Code Modulation
  • FIG. 57 An example of compression in DPCM mode is shown in FIG. 57.
  • input data is quantized, and then the difference between the predicted value (Pred: Prediction) is obtained, and variable length coding (VLC: Variable Length Coding) and refinement are performed to output a bit stream.
  • VLC Variable Length Coding
  • FIG. 58 input data (A in FIG. 58) with a constant probability is used to obtain the difference between adjacent data (prediction value), and the resulting differential data (B in FIG. 58) has a bias in frequency.
  • DNN feature data is generally channel interleaved.
  • HW hardware
  • Figure 59 is a diagram showing an example of rearrangement of channel-interleaved data.
  • the channel-interleaved data in the upper row is rearranged by channel in the lower row.
  • FIG. 60 is a diagram showing an example of compression using direct compression mode.
  • the input data feature data
  • VLC variable length coding
  • refinement are performed directly to output a bit stream. Note that in the following explanation, the features that are input and output are quantized to 8 bits.
  • the present disclosure introduces pre-processing and post-processing. That is, on the compression (encoding) side, the pre-processing and the encoding part are paired, while on the decoding (decompression) side, the decoding part and the post-processing are paired.
  • the third configuration of the present disclosure can adopt a configuration corresponding to the second configuration of the present disclosure (configuration of FIG. 33) described above.
  • a pre-processing unit 511 is provided in the compression unit 222 (FIG.
  • step S74 By repeating the processing of steps S74 to S82, if n > N (S74: No), and the data of Layer N is compressed (S83: Yes), the data in memory is expanded using the compression parameters of Layer N and read as output data (S84). On the other hand, if the data of Layer N is not compressed (S83: No), the data is read directly from memory as output data (S85). When step S84 or S85 is completed, the series of processes ends. Note that the analysis of the DNN network (S71) can also be performed offline in advance.
  • FIG. 70 shows the configuration and operation of a DNN system that executes DNN processing.
  • the CPU 501 issues a command to the DMAC 502, and transfers data from the DRAM 503 to the internal memory of the DNN processor 504.
  • the quantization unit 551 quantizes the feature data (input: 0 to 255) input thereto according to the quantization step determined by the quantization step determination unit 553, and outputs the result to the subtraction unit 554 and the refinement code processing unit 557.
  • the quantization unit 552 quantizes the feature data (median: 128) input thereto according to the quantization step determined by the quantization step determination unit 553, and outputs the result to the subtraction unit 554.
  • the quantization step determination unit 553 may determine the quantization step based on a target rate (compression ratio) included in the encoding control information.
  • the addition unit 565 performs addition by adding the decoded data (quantized data) from the variable length decoding unit 562 and the quantized data from the quantization unit 564, and outputs the calculation result to the inverse quantization unit 566.
  • the inverse quantization unit 566 inverse quantizes the decoded data from the addition unit 565 according to the quantization step from the separation unit 561, and outputs it to the combination unit 568.
  • the refinement decoding processing unit 567 performs refinement decoding processing on the encoded data from the separation unit 561 and outputs the result to the combination unit 568.
  • the combination unit 568 combines the inverse quantized decoded data from the inverse quantization unit 566 with the decoded data from the refinement decoding processing unit 567, and outputs the resulting feature data (output: 0 to 255).
  • the compression unit 222 has a preprocessing unit 511, an asymmetric encoder 512A (FIG. 73), a symmetric encoder 512B (FIG. 77), and a switch 513.
  • the compression parameters of the nth layer determined by the network pre-analyzer 210 are input.
  • correction value information is input to the preprocessing unit 511, and switching information is input to the switch 513.
  • Switch 524 selects the output of asymmetric decoder 521A according to the encoding mode included in the switching information if the encoding mode is asymmetric, and selects the output of symmetric decoder 521B if the encoding mode is symmetric.
  • Post-processing unit 522 corrects the feature data input via switch 524 based on the correction value included in the correction value information, and outputs the corrected feature data.
  • FIG. 87 is a diagram showing an example of refinement processing performed in refinement encoding processing and refinement decoding processing.
  • block-shaped data to be coded is shown as a bit image.
  • the horizontal direction indicates the block width
  • the vertical direction indicates the bit depth
  • the upper side is the most significant bit (MSB)
  • the lower side is the least significant bit (LSB).
  • MSB most significant bit
  • LSB least significant bit
  • the dot pattern part below line L is coded as the bit image itself without being converted to VLC.
  • This dot pattern part is called refinement.
  • the total number of bits is calculated for each data block. It is the desired bit amount (bps x block size) minus the code amount and header information transmitted by VLC.
  • the transmission order of refinement is performed in bit planes, starting from the MSB side. There is no particular regulation for the transmission order in the bit plane, but it needs to be correctly aligned on the coding side and the decoding side.
  • Switch 514 selects the output of asymmetric encoder 512A according to the encoding mode included in the switching information if the encoding mode is asymmetric, and selects the output of symmetric encoder 512B if the encoding mode is symmetric.
  • the output of the encoder selected by switch 514 is output as compressed feature data.
  • the decoding unit 223 (FIG. 82) in the machine learning calculator 211 has a configuration in which one common post-processing unit 522 is provided for each of the asymmetric decoder 521A and the symmetric decoder 521B, but the post-processing units 522 may be provided separately for each decoder and switched between them.
  • FIG. 89 is a diagram showing another example configuration of the decoding unit 223.
  • the decoding unit 223 has an asymmetric decoder 521A, a symmetric decoder 521B, an asymmetric post-processing unit 522A, a symmetric post-processing unit 522B, a switch 525, and a switch 526.
  • the quantized data is variable length coded (VLC), but since there are many cases where the quantized data is all zero, more efficient compression can be achieved by specifying an all-zero flag and applying it to the compressed stream. If the quantized data is zero, the all-zero flag is set to "1" and the VLC portion is not transmitted. On the other hand, if the quantized data contains non-zero values, the all-zero flag is set to "0" and the VLC portion is transmitted. However, if the frequency bias is symmetrical, the quantized median is subtracted from the quantized data, but this can also be applied in this case.
  • VLC variable length coded
  • Figure 90 is a diagram showing an example of the configuration of a compressed stream when the quantized data contains non-zero values.
  • the all-zero flag following the quantization step becomes "0", and the VLC part is transmitted. Refinement is also transmitted.
  • Figure 91 is a diagram showing an example of the configuration of a compressed stream when the quantized data is all zero. In Figure 91, the all-zero flag becomes "1", and the VLC part is not transmitted.
  • compression parameters are used to switch between multiple encoding methods (decoding methods) and pre-processing and post-processing, enabling efficient compression.
  • an encoding method is proposed that, when compressing a feature map of a DNN, switches between multiple combinations of different compression methods and corresponding data preprocessing depending on the data distribution of the features.
  • the different compression methods can be switched between at least the following two compression methods.
  • the first compression method is a compression method suitable for a model (first compression model) in which the frequency distribution of data is high near the minimum value and decreases as the value increases.
  • the second compression method is a compression method suitable for a model (second compression model) in which the frequency distribution of data is high in the middle of the value and decreases as the value increases or decreases from the middle.
  • a decoding method is proposed that, when decoding a feature map of a DNN, switches between multiple combinations of different decoding methods (decompression methods) and corresponding post-processing of the data according to the data distribution of the features.
  • the different decoding methods can be switched between at least the following two decoding methods.
  • the first decoding method is a decoding method suitable for a model (first compression model) in which the frequency distribution of data is high near the minimum value and decreases as the value increases.
  • the second decoding method is a decoding method suitable for a model (second compression model) in which the frequency distribution of data is high in the middle of the value and decreases as the value increases or decreases from the middle.
  • the data distribution is not the input itself at the time of DNN inference, but a compression parameter according to the distribution is determined in advance in offline processing and used at the time of DNN inference. That is, the network pre-analyzer 210 analyzes sample data of the feature and generates compression parameters including switching information for switching between multiple compression models of the feature and correction value information for adapting the feature to each compression model, and the generated compression parameters can be included in the control information.
  • the compression model includes direct compression, which is a compression model that allows compression without taking a difference with a predicted value.
  • the compression unit 222 corrects the input feature based on the correction value information, performs pre-processing to adapt it to the first compression model or the second compression model, performs encoding according to the first compression model or the second compression model for the corrected feature corrected in the pre-processing, and selects the compressed feature obtained by encoding according to the first compression model or the second compression model based on the switching information and records it in the memory 224.
  • the decoding unit 223 performs decoding according to the first compression model or the second compression model on the compressed features temporarily stored in the memory 224, selects the corrected features obtained by the decoding according to the first compression model or the second compression model based on the switching information, and performs post-processing to return the selected corrected features to the features before correction based on the correction value information.
  • the machine learning inference device 100 (FIG. 5) and the machine learning inference device 200 (FIG. 33) are shown as devices to which the present disclosure is applied, but the functions of the machine learning inference device 100 (FIG. 5) and the machine learning inference device 200 (FIG. 33) can be installed and executed in an information processing device such as a surveillance camera, a workstation, or a server.
  • the network pre-analyzer 110 and the machine learning calculator 111 in the machine learning inference device 100 (FIG. 5) may be configured as separate devices.
  • a first device including the network pre-analyzer 110 and a second device including the machine learning calculator 111 may be connected via a network.
  • the network pre-analyzer 210 and the machine learning calculator 211 in the machine learning inference device 200 (FIG. 33) may also be configured as separate devices.
  • the compression unit 122 (FIG. 5) and the compression unit 222 (FIG. 33) may use other compression methods as long as the compression method is applicable to the encoding control information.
  • the decoding unit 123 (FIG. 5) and the decoding unit 223 (FIG. 33) may use other decoding methods as long as the decoding method is applicable to the encoding control information.
  • the encoding control information may include at least one of the information (parameters) of the compression ratio, the compression method, and the control parameters.
  • the control parameters may include at least one of the information (parameters) of the nonlinear transformation table ID, the prediction calculation parameters, the residual nonlinear transformation table ID, and the entropy encoding table ID.
  • the prediction calculation parameters may include at least one of the information (parameters) of the reference channel ID, the reference parameters, and the prediction method.
  • the features processed by the neural network can also be considered as intermediate data.
  • the compression and decoding of image data as intermediate data may be controlled using encoding control information.
  • a nonlinear conversion table and a residual nonlinear conversion table may be applied to the image data.
  • the network pre-analyzer 210 and the machine learning calculator 211 may be configured, for example, as follows.
  • the network pre-analyzer 210 generates encoding control information for controlling the compression of the image data based on the sample data of the image data. More specifically, in the network pre-analyzer 210, the non-linear conversion table selection unit 321 selects a non-linear conversion table for performing non-linear conversion according to the result of analyzing the statistical values of the sample data of the image data. In addition, the residual non-linear conversion table selection unit 326 selects a residual non-linear conversion table for performing residual non-linear conversion according to the result of analyzing the statistical values of the sample data based on the sample data of the prediction residual, which is the difference between the sample data of the image data and the predicted value of the sample data of the image data. As a result, the encoding control information includes control parameters including the non-linear conversion table ID and the residual non-linear conversion table ID.
  • the residual nonlinear conversion unit 265 performs residual nonlinear conversion on the prediction residual after nonlinear conversion has been applied, which is the difference between the image data after nonlinear conversion and the predicted value generated for the image data after nonlinear conversion, according to the residual nonlinear conversion table. In this way, by performing two-stage nonlinear conversion on the image data using the nonlinear conversion table and the residual nonlinear conversion table, it is possible to protect particularly important parts using data distribution characteristics, etc.
  • depth-wise access and pixel-wise access were described as data access methods for DNN processing, but the calculation unit 121 ( Figure 5) can of course perform calculations using both access methods, and can also perform calculations using only one of the access methods.
  • the depth-direction consolidation compression method is effective, but in this case, there is no need to switch the compression method between spatial direction consolidation and depth direction consolidation, and it is sufficient to fix it to the depth-direction consolidation compression method.
  • Fig. 92 is a block diagram showing an example of the hardware configuration of a computer that executes the above-mentioned series of processes by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input/output interface 1005 is further connected to the bus 1004.
  • An input unit 1006, an output unit 1007, a memory unit 1008, a communication unit 1009, and a drive 1010 are connected to the input/output interface 1005.
  • the input unit 1006 includes a keyboard, a mouse, a microphone, etc.
  • the output unit 1007 includes a display, a speaker, etc.
  • the storage unit 1008 includes a hard disk, a non-volatile memory, etc.
  • the communication unit 1009 includes a network interface, etc.
  • the drive 1010 drives a removable recording medium 1011 such as a semiconductor memory, a magnetic disk, an optical disk, or a magneto-optical disk.
  • the program executed by the computer (CPU 1001) can be provided by being recorded on a removable recording medium 1011 such as a package medium, 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.
  • a program can be installed in the storage unit 1008 via the input/output interface 1005 by inserting the removable recording medium 1011 into the drive 1010.
  • the program can also be received by the communication unit 1009 via a wired or wireless transmission medium and installed in the storage unit 1008.
  • the program can be pre-installed in the ROM 1002 or storage unit 1008.
  • the processing performed by a computer according to a program includes processing that is executed in parallel or individually (for example, parallel processing or processing by objects).
  • a program may be processed by one computer (processor), or may be distributed among multiple computers.
  • a pre-analysis unit that analyzes the neural network before performing inference using the neural network and generates control information for controlling compression and decoding of features processed by the neural network; a calculation unit that performs inference using input data and the neural network, processes the feature amount obtained from the input data, and outputs the result as a calculation result; a compression unit that compresses the feature input from the calculation unit based on the control information and records the compressed feature in a memory; a decoding unit that decodes the compressed feature temporarily stored in the memory based on the control information, and outputs the decoded feature to the calculation unit.
  • the pre-analysis unit determines a compression method for the features in a compression unit corresponding to the data access method based on the features processed in each layer of the neural network and a data access method in the processing of each layer of the neural network, and includes the determined compression method in the control information.
  • the feature amount is three-dimensional data obtained by configuring feature amounts in an xy plane for each channel in a z direction,
  • the information processing device described in (6) wherein, when the second compression method is specified, the compression unit generates the first predicted value by predicting in the first direction of the same channel as the feature data, and packs the difference information obtained from the difference between the feature data and the first predicted value in the second direction.
  • the pre-analysis unit analyzes features to be processed by the neural network based on sample data of the features, generates parameters for controlling compression and decoding of the features, and includes the generated parameters in the control information.
  • the pre-analysis unit switches the reference channel, the reference parameters, and the prediction method for each channel.
  • the pre-analysis unit is selecting a nonlinear conversion table for performing nonlinear conversion according to a result of analyzing a statistical value of the sample data for each channel based on the sample data of the feature amount; Identification information of the selected nonlinear conversion table is included in the control parameters, The information processing device according to (11), wherein the compression unit performs nonlinear conversion on the input data of the feature amount in accordance with the nonlinear conversion table. (17) The information processing device according to (16), wherein the pre-analysis unit switches the nonlinear conversion table for each channel.
  • the compression section includes: performing pre-processing by correcting the input feature amount based on the correction value information to make the feature amount conform to a first compression model or a second compression model; encoding the corrected feature amount corrected in the preprocessing according to the first compression model or the second compression model;
  • the information processing device according to (21) or (22), further comprising: selecting the compressed features obtained by encoding according to the first compression model or the second compression model based on the switching information; and recording the compressed features in the memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

本開示は、より確実に、機械学習の推論を行うことができるようにする情報処理装置、及び情報処理方法に関する。 ニューラルネットワークを用いた推論を行う前にニューラルネットワークを解析して、ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報を生成する事前解析部と、入力データとニューラルネットワークを用いた推論を行い、入力データから得られる特徴量を処理した処理結果を、演算結果として出力する演算部と、制御情報に基づいて、演算部から入力される特徴量を圧縮して、圧縮した特徴量である圧縮特徴量をメモリに記録する圧縮部と、制御情報に基づいて、メモリに一時的に記録された圧縮特徴量を復号して、復号した特徴量を演算部に出力する復号部とを備える情報処理装置が提供される。本開示は、例えば、機械学習推論器に適用することができる。

Description

情報処理装置、及び情報処理方法
 本開示は、情報処理装置、及び情報処理方法に関し、特に、より確実に、機械学習の推論を行うことができるようにした情報処理装置、及び情報処理方法に関する。
 近年、ニューラルネットワーク(neural network)等の機械学習の研究開発が活発に行われている。機械学習の推論処理を行う機械学習演算器では、入力データとネットワーク情報を取得して推論を行い、その処理結果を演算結果として外部に出力する。この種の機械学習演算器は、演算部とメモリを含んで構成して、演算部で処理される特徴量等のデータをメモリに一時的に記録することで、記録したデータを次の処理等で読み出して演算に用いることができる。
 機械学習演算器においては、演算部で処理するデータのデータサイズが増加する傾向にあり、その結果として、メモリの使用量、及び演算部とメモリとの間のデータ通信量が大きくなっている。これらの対策として、演算部とメモリの間に圧縮部と復号部を設けて、データ量を削減する手法が提案されている。例えば、特許文献1には、ニューラルネットワークの搬送データを圧縮する際に、非圧縮と圧縮のデータを比較して、圧縮の利得があった場合にのみ圧縮を適用する手法が開示されている。
特開2021-111320号公報
 従来の手法であると、圧縮したデータのデータサイズがメモリサイズよりも小さい場合には、演算部で推論処理を行うことができるが、圧縮や復号の方式によっては、推論処理を行うことができないときがあり、機械学習の推論を確実に行うための提案が求められていた。
 特に、特許文献1に開示されている手法は、データの圧縮率が動的に変化する圧縮方式を用いているが、圧縮後のデータサイズを規定できないため、入力データによって推論可能なケースと推論不可能なケースが存在することになる。このように、特許文献1に開示されている手法はでは、入力データによって推論の可否が変わってしまうため、確実に推論処理を行うことができない。
 本開示はこのような状況に鑑みてなされたものであり、より確実に、機械学習の推論を行うことができるようにするものである。
 本開示の一側面の情報処理装置は、ニューラルネットワークを用いた推論を行う前に前記ニューラルネットワークを解析して、前記ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報を生成する事前解析部と、入力データと前記ニューラルネットワークを用いた推論を行い、前記入力データから得られる前記特徴量を処理した処理結果を、演算結果として出力する演算部と、前記制御情報に基づいて、前記演算部から入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録する圧縮部と、前記制御情報に基づいて、前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を前記演算部に出力する復号部とを備える情報処理装置である。
 本開示の一側面の情報処理方法は、情報処理装置が、ニューラルネットワークを用いた推論を行う前に前記ニューラルネットワークを解析して、前記ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報を生成し、入力データと前記ニューラルネットワークを用いた推論を行い、前記入力データから得られる前記特徴量を処理した処理結果を、演算結果として出力し、前記制御情報に基づいて、入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録し、前記制御情報に基づいて、前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を出力する情報処理方法である。
 本開示の一側面の情報処理装置、及び情報処理方法においては、ニューラルネットワークを用いた推論を行う前に前記ニューラルネットワークが解析されて、前記ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報が生成され、入力データと前記ニューラルネットワークを用いた推論が行われ、前記入力データから得られる前記特徴量を処理した処理結果が、演算結果として出力され、前記制御情報に基づいて、入力される前記特徴量が圧縮されて、圧縮した前記特徴量である圧縮特徴量がメモリに記録され、前記制御情報に基づいて、前記メモリに一時的に記録された前記圧縮特徴量が復号されて、復号した前記特徴量が出力される。
 本開示の一側面の情報処理装置は、画像データのサンプルデータに基づいて、前記画像データの圧縮を制御するための制御情報を生成する事前解析部と、前記制御情報に基づいて、入力される前記画像データを圧縮する圧縮部とを備え、前記事前解析部は、前記画像データのサンプルデータの統計値を解析した結果に応じた非線形変換を行うための非線形変換テーブルを選定し、前記画像データのサンプルデータと前記画像データのサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、サンプルデータの統計値を解析した結果に応じた残差非線形変換を行うための残差非線形変換テーブルを選定し、選定した前記非線形変換テーブルと前記残差非線形変換テーブルの識別情報を前記制御情報に含め、前記圧縮部は、入力される前記画像データに対し予測値を生成して、前記画像データと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記画像データを圧縮する圧縮方式を用いており、前記非線形変換テーブルに従い、入力される前記画像データに対し、非線形変換を行い、前記残差非線形変換テーブルに従い、非線形変換適用済みの前記画像データと、非線形変換適用済みの前記画像データに対して生成した前記予測値との差分である非線形変換適用済みの予測残差に対し残差非線形変換を行う情報処理装置である。
 本開示の一側面の情報処理装置においては、画像データのサンプルデータに基づいて、前記画像データの圧縮を制御するための制御情報が生成され、前記制御情報に基づいて、入力される前記画像データが圧縮される。また、前記画像データのサンプルデータの統計値を解析した結果に応じた非線形変換を行うための非線形変換テーブルが選定され、前記画像データのサンプルデータと前記画像データのサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、サンプルデータの統計値を解析した結果に応じた残差非線形変換を行うための残差非線形変換テーブルが選定され、選定された前記非線形変換テーブルと前記残差非線形変換テーブルの識別情報が前記制御情報に含められ、入力される前記画像データに対し予測値を生成して、前記画像データと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記画像データを圧縮する圧縮方式が用いられており、前記非線形変換テーブルに従い、入力される前記画像データに対し、非線形変換が行われ、前記残差非線形変換テーブルに従い、非線形変換適用済みの前記画像データと、非線形変換適用済みの前記画像データに対して生成した前記予測値との差分である非線形変換適用済みの予測残差に対し残差非線形変換が行われる。
 本開示の一側面の情報処理装置は、入力データとニューラルネットワークを用いた推論を行い、前記入力データから得られる特徴量を処理した処理結果を、演算結果として出力する演算部と、前記演算部から入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録する圧縮部と、前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を前記演算部に出力する復号部とを備え、前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、前記圧縮部は、入力される前記特徴量のデータに対し予測値を生成して、前記特徴量のデータと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式を用いており、前記特徴量の圧縮方法として、前記特徴量のデータをz方向に対応した第2の方向にまとめる圧縮方法が設定された場合、前記特徴量のデータと同じチャンネルのxy平面に対応した第1の方向の予測により前記予測値を生成し、前記特徴量のデータと前記予測値との差分から得られる前記差分情報を、前記第2の方向にパッキングする情報処理装置である。
 本開示の一側面の情報処理装置においては、入力データとニューラルネットワークを用いた推論が行われ、前記入力データから得られる特徴量を処理した処理結果が、演算結果として出力され、入力される前記特徴量が圧縮されて、圧縮した前記特徴量である圧縮特徴量がメモリに記録され、前記メモリに一時的に記録された前記圧縮特徴量が復号されて、復号した前記特徴量が出力される。また、前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、入力される前記特徴量のデータに対し予測値を生成して、前記特徴量のデータと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式が用いられ、前記特徴量の圧縮方法として、前記特徴量のデータをz方向に対応した第2の方向にまとめる圧縮方法が設定された場合、前記特徴量のデータと同じチャンネルのxy平面に対応した第1の方向の予測により前記予測値が生成され、前記特徴量のデータと前記予測値との差分から得られる前記差分情報が、前記第2の方向にパッキングされる。
 なお、本開示の一側面の情報処理装置は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。
従来の機械学習推論器の構成例を示す図である。 レイヤごとの処理に必要なデータ量とメモリサイズとの関係を示す図である。 DNNの特徴量のデータ構成例を示す図である。 DNN処理のデータアクセス方法の例を示す図である。 本開示を適用した機械学習推論器の一実施の形態の構成例を示す図である。 図5のネットワーク事前解析器の構成例を示す図である。 DNNのネットワーク構成例を示す図である。 ウェイトデータのデータサイズの例を示す図である。 特徴マップのデータサイズの例を示す図である。 特徴量の圧縮率の算出の流れを示すフローチャートである。 各レイヤで必要な特徴マップのデータサイズの算出例を示す図である。 各レイヤで必要な特徴マップのデータサイズの例を示す図である。 各レイヤの最大ターゲットレートの例を示す図である。 各レイヤのターゲットレートの例を示す図である。 特徴マップごとのターゲットレートの算出例を示す図である。 特徴マップごとのターゲットレートの例を示す図である。 DNN処理の例を示す図である。 DNN処理の各処理に適した圧縮方法を示す図である。 特徴量の圧縮方法の決定の流れを示すフローチャートである。 特徴量の圧縮方法を決定する判定表の例を示す図である。 特徴量の圧縮方法を決定する判定表の例を示す図である。 特徴量の圧縮方法を決定する判定表の例を示す図である。 特徴量の圧縮方法を決定する判定表の例を示す図である。 アクセス方法の優先度の例を示す図である。 特徴量の圧縮方法を決定する判定表の例を示す図である。 最終的な判定表の例を示す図である。 符号化制御情報の例を示す図である。 図5の圧縮部の構成例を示す図である。 空間方向まとめの圧縮方法を用いる場合の特徴量圧縮の例を示す図である。 デプス方向まとめの圧縮方法を用いる場合の特徴量圧縮の例を示す図である。 図5の復号部の構成例を示す図である。 図31のデータ並び替え部によるデータの並び替え処理の例を示す図である。 本開示を適用した機械学習推論器の一実施の形態の他の構成例を示す図である。 図33のネットワーク事前解析器の構成例を示す図である。 図34の制御パラメータ生成部の構成例を示す図である。 図35の非線形変換テーブル選定部の構成例を示す図である。 非線形変換のバリエーションの例を示す図である。 図35の予測算出パラメータ算出部の構成例を示す図である。 チャンネル間予測を用いる場合の予測値生成とパッキングの例を示す図である。 空間方向予測とチャンネル間予測を用いる場合の予測値生成の例を示す図である。 予測算出パラメータの例を示す図である。 チャンネルごとに異なる参照チャンネルと予測方法の例を示す図である。 空間方向予測とチャンネル間予測を用いる場合の予測値生成とパッキングの例を示す図である。 図35の残差非線形変換テーブル選定部の構成例を示す図である。 残差非線形変換のバリエーションの例を示す図である。 図35のエントロピ符号化テーブル選定部によるエントロピ符号化テーブルの選定の例を示す図である。 符号化制御情報の例を示す図である。 図33の圧縮部の構成例を示す図である。 図33の復号部の構成例を示す図である。 DNNを模式的に表した図である。 DNNの各層の構成を示す図である。 活性化関数の例を示す図である。 DNNの実装方法として特徴マップをメモリに一旦格納する例を示す図である。 従来のDNN処理の流れを示すフローチャートである。 従来のDNN処理を実行するDNNシステムの構成と動作を示す図である。 特徴マップを圧縮してメモリに格納する例を示す図である。 DPCMモードによる圧縮の例を示す図である。 DPCMモードにおける入力データと差分データの頻度を示す図である。 チャンネルインタリーブを施したデータの並び替えの例を示す図である。 ダイレクト圧縮モードによる圧縮の例を示す図である。 特徴量データの頻度の偏りが非対称となる場合の第1の例を示す図である。 特徴量データの頻度の偏りが非対称となる場合の第2の例を示す図である。 特徴量データの頻度の偏りが対称となる場合の第1の例を示す図である。 特徴量データの頻度の偏りが対称となる場合の第2の例を示す図である。 符号化側に導入される前処理の例を示す図である。 復号側に導入される後処理の例を示す図である。 ネットワーク事前解析器による圧縮パラメータの決定の例を示す図である。 機械学習演算器による推論処理の例を示す図である。 機械学習演算器によるDNN処理の流れを示すフローチャートである。 DNN処理を実行するDNNシステムの構成と動作を示す図である。 ネットワーク事前解析器による圧縮パラメータ決定処理の流れを示すフローチャートである。 特徴量データの最頻値と最小値を示す図である。 非対称符号化器の構成例を示す図である。 図73の可変長符号テーブルの例を示す図である。 非対称復号器の構成例を示す図である。 図75の可変長符号テーブルの例を示す図である。 対称符号化器の構成例を示す図である。 図77の可変長符号テーブルの例を示す図である。 対称復号器の構成例を示す図である。 図79の可変長符号テーブルの例を示す図である。 圧縮部の構成例を示す図である。 復号部の構成例を示す図である。 前処理部における非対称用の前処理を示す図である。 後処理部における非対称用の後処理を示す図である。 前処理部における対称用の前処理を示す図である。 後処理部における対称用の後処理を示す図である。 リファインメント処理の例を示す図である。 圧縮部の他の構成例を示す図である。 復号部の他の構成例を示す図である。 量子化したデータに非ゼロが含まれる場合の圧縮ストリームの構成例を示す図である。 量子化したデータが全てゼロになる場合の圧縮ストリームの構成例を示す図である。 コンピュータの構成例を示すブロック図である。
<従来の構成>
 図1は、従来の機械学習推論器の構成例を示す図である。
 図1において、機械学習推論器11は、機械学習の推論を行う演算器である。機械学習推論器11は、そこに入力されるネットワーク情報と入力データに基づいて、ディープラーニング(deep learning)等の機械学習の推論処理を行い、その結果得られる演算結果を外部に出力する。ニューラルネットワークをディープラーニングに対応させて4層以上に層を深くしたものを、ディープニューラルネットワーク(DNN:deep neural network)という。入力データは、画像データ等のデータである。
 機械学習推論器11は、演算部21、圧縮部22、復号部23、及びメモリ24を有する。演算部21は、ディープラーニング等の機械学習の推論処理を行う場合に、各レイヤの特徴マップ(feature map)等の特徴量を、メモリ24に一時的に記録する。演算部21は、メモリ24に記録された特徴量を、次のレイヤの処理等で読み出して演算に用いることができる。メモリ24は、SRAM(static random access memory)等で構成されて演算部21の内部に組み込まれたり、DRAM(dynamic random access memory)等で構成されて演算部21に外部接続されたりして構成される。
 近年、ディープラーニング等の機械学習の推論処理では、特徴量のデータサイズが大きく、モバイル・エッジ等での処理を想定した場合におけるコスト増加の要因になるケースがある。メモリ24を、演算部21の内部に組み込むか、あるいは演算部21に外部接続するかのいずれであっても、メモリ24の使用量、及び演算部21とメモリ24との間のデータ通信量が問題となる。このような問題を解決するために、機械学習推論器11では、演算部21とメモリ24との間に、圧縮部22と復号部23を設けて、データ量を削減している。
 圧縮部22は、演算部21から入力される特徴量を圧縮し、圧縮特徴量としてメモリ24に書き込んで一時的に記録する。復号部23は、メモリ24に記録された圧縮特徴量を読み出して復号し、復号した特徴量を演算部21に出力する。
 ここで、所定の有限のメモリサイズを有するメモリ24に対し、利用可能なメモリサイズを超えるデータサイズの特徴量が発生するディープニューラルネットワーク(DNN)があった場合を想定する。一般的には、特徴量のデータサイズがメモリサイズを超える場合、推論処理を行うことができない。一方で、機械学習推論器11では、圧縮部22と復号部23を設けているため、圧縮後の特徴量のデータサイズがメモリサイズを下回る場合には、演算部21での推論処理を行うことができる。
 図2は、レイヤごとの処理に必要なデータ量とメモリサイズとの関係を示す図である。図2では、横軸はDNNのレイヤ、縦軸は各レイヤの処理に必要なデータ量を表す。また、図中の横方向の破線は、メモリ24のメモリサイズを表す。図2においては、横軸の方向に進むほど、より後段のレイヤであることを表しているが、棒グラフで示すように、後段のレイヤは、前段のレイヤと比べて、処理に必要なデータ量が少なくなる傾向にある。このとき、圧縮部22による圧縮で用いられる圧縮率を一律に設定してしまうと、メモリサイズを下回るデータ量となる後段のレイヤの処理で不要な圧縮を行ったり、メモリサイズを超えるデータ量となる前段のレイヤの処理で適切な圧縮を適用できなかったりする場合が出てくる。
 上述した特許文献1に開示されている手法のように、非圧縮と圧縮のデータを比較して、圧縮の利得があった場合にのみ圧縮を適用する手法であると、データの圧縮率が動的に変化する圧縮方式となるが、圧縮後のデータサイズを規定できないため、入力データによって推論可能なケースと推論不可能なケースが存在することになる。入力データによって、推論の可否が変化する手法は、実用上不便であって改善する必要がある。
 また、DNNの特徴量が持つデータの性質及び利用方法を考慮して、適切な圧縮方法を選択することで、より適切な特徴量の圧縮を行うことができる。一般に、DNNの特徴量は、図3に示すような3次元のデータとして表現されることが多い。図3において、xy平面は、特徴量の空間方向の位置を示し、z方向は、特徴量のチャンネル方向を示す。図3において、特徴量fは、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、チャンネル#0~#6の各チャンネルに対応した特徴量f10~f16から構成される。
 一般に、DNNの推論処理(以下、DNN処理ともいう)で圧縮の対象となる特徴量は、DNN処理の初期で発生する特徴である場合が多く、この場合、xy空間方向の相関は高いが、z方向の相関は低い。しかし、z方向は完全に無相関ではなく、一部の特徴量のチャンネル間には緩い相関が存在するケースがある。しかし、特徴量を利用する際に、動的に特徴量間の相関を判断することは、処理コストの観点から困難であり、z方向の相関利用には改善の余地がある。加えて、DNN処理で利用可能なデータアクセス方法として、複数種類の方法が存在している。
 図4は、DNN処理のデータアクセス方法の例を示す図である。例えば、図4のAに示すような、画像データのように、空間方向にデータをread/writeするdepth wise accessがある。図4のAにおいては、図中の矢印sで示すように、チャンネルを固定して、チャンネル単位で空間方向にデータがアクセスされる。また、図4のBに示すような、空間的な座標を固定してチャンネル方向にデータをread/writeするpixel wise accessがある。図4のBにおいては、図中の矢印dで示すように、画像データの場合には画素(ピクセル)を固定して、チャンネル方向にデータがアクセスされる。なお、pixel wise accessは、point wise accessとも呼ばれる。
 このように、従来の構成では、演算部21とメモリ24との間に、圧縮部22と復号部23を設けることで、圧縮したデータのデータサイズがメモリサイズよりも小さい場合には、演算部21で推論処理を行うことができるが、圧縮や復号の方式によっては、推論処理を行うことができないときがある。また、圧縮部22による圧縮を適用する際には、DNNの特徴量が持つ空間方向の相関を利用しつつ、DNN処理のデータアクセス方法を考慮した圧縮方法を適切に選択することで、より適切な特徴量の圧縮を行うことができる。そこで、本開示では、従来の構成を改善した構成を提案する。
<<本開示の第1の構成>>
<機械学習推論器の構成>
 図5は、本開示を適用した機械学習推論器の一実施の形態の構成例を示す図である。図5において、機械学習推論器100は、ネットワーク事前解析器110と、機械学習演算器111とから構成される。
 ネットワーク事前解析器110は、そこに入力されるネットワーク情報を解析し、解析の結果得られる符号化制御情報を、機械学習演算器111に出力する。ネットワーク情報は、機械学習の推論で用いられるディープニューラルネットワーク(DNN)等のニューラルネットワークに関する情報である。符号化制御情報は、機械学習で処理される特徴量の圧縮と復号を制御するための制御情報である。
 機械学習演算器111は、ディープラーニング等の機械学習の推論を行う演算器である。機械学習演算器111は、そこに入力されるネットワーク情報と入力データに基づいて、機械学習の推論処理を行い、その結果得られる演算結果を外部に出力する。入力データは、画像データ等のデータである。
 機械学習演算器111は、演算部121、圧縮部122、復号部123、及びメモリ124を有する。演算部121は、ディープラーニング等の機械学習の推論処理を行い、入力データから得られる特徴量を処理した処理結果を、演算結果として出力する演算ユニットである。演算部121は、ディープラーニングの推論処理(DNN処理)を行う場合に、ディープニューラルネットワーク(DNN)で処理される各レイヤの特徴マップ(feature map)等の特徴量を適宜、メモリ124に一時的に記録(保持)させる。
 演算部121とメモリ124との間には、圧縮部122と復号部123が設けられる。圧縮部122と復号部123には、ネットワーク事前解析器110からの符号化制御情報が入力される。メモリ124は、演算部121の内部に組み込まれるSRAM等で構成されるか、演算部121に外部接続されるDRAM等で構成される。
 圧縮部122は、特徴マップ等の特徴量を圧縮する圧縮処理を行う圧縮器である。圧縮部122は、ネットワーク事前解析器110からの符号化制御情報に基づいて、演算部121から入力される特徴量を圧縮する。圧縮部122は、圧縮した特徴量である圧縮特徴量を、圧縮ストリームとしてメモリ124に書き込む。また、圧縮部122は、特徴量を圧縮しない場合、特徴量を、非圧縮ストリームとしてメモリ124に書き込む。これにより、メモリ124には、圧縮ストリームと非圧縮ストリームのデータが一時的に記録される。
 復号部123は、圧縮部122により圧縮された圧縮特徴量を特徴量に復号する復号処理を行う復号器である。復号部123は、メモリ124に一時的に記録された圧縮ストリーム又は非圧縮ストリームのデータを適宜読み出す。復号部123は、ネットワーク事前解析器110からの符号化制御情報に基づいて、メモリ124から読み出した圧縮ストリームを、圧縮特徴量から特徴量に復号する。復号部123は、圧縮特徴量から復号した特徴量、又は非圧縮ストリームとして読み出した特徴量を演算部121に出力する。
 以上のように、機械学習推論器100においては、機械学習演算器111で機械学習の推論処理が実施される前に、ネットワーク事前解析器110が、機械学習で用いられるネットワーク情報の解析を実施して、その解析の結果得られる符号化制御情報を、機械学習演算器111に入力する。そして、機械学習演算器111においては、演算部121により機械学習の推論処理を実施する際に、DNN等のニューラルネットワークで処理される特徴量をメモリ124に一時的に記録するが、メモリ124に記録される特徴量は、必要に応じて、符号化制御情報に基づき、圧縮部122により圧縮され、復号部123により復号される。
<ネットワーク事前解析器の構成>
 図6は、図5のネットワーク事前解析器110の構成例を示す図である。図6において、ネットワーク事前解析器110は、検出部141、圧縮率算出部142、及び圧縮方法決定部143を有する。
 検出部141は、そこに入力されるネットワーク情報を解析(パース)することで、ニューラルネットワークで処理されるウェイトのデータサイズと、特徴量のデータサイズを検出し、その検出結果を圧縮率算出部142に出力する。
 圧縮率算出部142は、検出部141からの検出結果に基づいて、特徴量の圧縮率を算出して出力する。特徴量の圧縮率の算出に際しては、ウェイトのデータサイズと、特徴量のデータサイズの他に、ニューラルネットワークのネットワーク構成や、メモリ124における利用可能なメモリサイズ等の情報を用いることで、最適な圧縮率が算出される。ここで算出する最適な圧縮率は、圧縮部122による圧縮処理で、圧縮のターゲットとなるレートとして指定可能であるため、以下、ターゲットレートともいう。特徴量の圧縮率の算出の詳細は、図7乃至図16を参照して後述する。
 圧縮方法決定部143には、ネットワーク情報と、圧縮率算出部142からの特徴量の圧縮率が入力される。圧縮方法決定部143は、ネットワーク情報と特徴量の圧縮率に基づいて、特徴量の圧縮方法を決定して出力する。特徴量の圧縮方法の決定に際しては、特徴量の圧縮率を用いることで圧縮の有無が決定され、ネットワーク情報を解析することでDNN処理に最適な圧縮方法が決定される。特徴量の圧縮方法の決定の詳細は、図17乃至図27を参照して後述する。
 以上のように、ネットワーク事前解析器110においては、特徴量#0~#Nの特徴量ごとに、圧縮率算出部142により算出される圧縮率(ターゲットレート)と、圧縮方法決定部143により決定される圧縮方法とが得られ、符号化制御情報として出力される。
<特徴量の圧縮率の算出>
 図6の圧縮率算出部142による特徴量の圧縮率の算出例を、図7乃至図16を参照しながら説明する。
 この例では、機械学習演算器111においてメモリ124がSRAMで構成され、利用可能なメモリサイズが32キロバイト(KB)である場合を説明する。また、この例では、ネットワーク事前解析器110に入力されるネットワーク情報を、図7に示したDNNのネットワーク構成を用いて説明する。図7のネットワーク構成では、特徴量として、特徴マップが処理される。DNNの手法の1つとして、CNN(Convolutional Neural Network)があるが、ここでは、CNNが用いられる場合を例示する。
 図7において、DNNは、pixel wise conv-1, depth wise conv, pixel wise conv-2, add の4つのレイヤを含んで構成される。なお、「conv」は、「convolution」の略である。pixel wise conv-1のウェイトは、weight1であり、depth wise convのウェイトは、weight2であり、pixel wise conv-2のウェイトは、weight3である。feature map1 ~ feature map5は、特徴マップを表す。
 pixel wise conv-1は、そこに入力されるfeature map1に、weight1を用いたレイヤ処理(pixel wise convolution)を行い、その結果得られるfeature map2を出力する。pixel wise conv-1から出力されるfeature map2は、depth wise convとaddに入力される。depth wise convは、そこに入力されるfeature map2に、weight2を用いたレイヤ処理(depth wise convolution)を行い、その結果得られるfeature map3を出力する。depth wise convから出力されるfeature map3は、pixel wise conv-2に入力される。
 pixel wise conv-2は、そこに入力されるfeature map3に、weight3を用いたレイヤ処理(pixel wise convolution)を行い、その結果得られるfeature map4を出力する。pixel wise conv-2から出力されるfeature map4は、addに入力される。addは、そこに入力されるfeature map2とfeature map4を加算する加算処理を行い、その結果得られるfeature map5を出力する。
 また、この例では、検出部141によって、図8と図9に示したウェイトと特徴マップのデータサイズが検出された場合を説明する。なお、ウェイトと圧縮前の特徴マップは、それぞれ8 bit/sampleのデータとされる。
 図8は、ウェイトのデータサイズの例を示す図である。図8に示すように、weight1, weight2, weight3のデータサイズは、それぞれのテンソルで表されたカーネルサイズから、128バイト、288バイト、256バイトであり、その合計は、672バイトとなる。
 図9は、特徴マップのデータサイズの例を示す図である。図9に示すように、feature map1, feature map2, feature map3, feature map4, feature map5のデータサイズは、それぞれのテンソルで表されたサイズから、19200バイト、9600バイト、38400バイト、9600バイト、9600バイトとなる。
 図10のフローチャートは、圧縮率算出部142により行われる特徴量の圧縮率の算出の流れを示している。
 まず、圧縮率算出部142は、メモリ124の利用可能なメモリサイズと、ウェイトのデータサイズから、ワークバッファサイズを算出する(S11)。ワークバッファサイズは、メモリ124において、特徴量を一時的に記録するために実際に利用可能なメモリサイズであり、例えば、次の式(1)により算出される。
Figure JPOXMLDOC01-appb-M000001
 式(1)において、totalRAMSizeは、メモリ124の利用可能なメモリサイズを表し、weightDataSizeは、ウェイトのデータサイズを表す。この例では、totalRAMSizeが32キロバイト、weightDataSizeが672バイトであり、式(1)を適用することで、workBufferSize = 32000 - 672 = 31328バイトが算出される。よって、ワークバッファサイズは、31328バイトとなる。また、ウェイトで利用するメモリサイズを予め確保しておくことができる。
 次に、圧縮率算出部142は、各レイヤで必要な特徴マップのデータサイズを求める(S12)。ここでは、各レイヤに対する入力と出力の特徴マップのデータサイズ、レイヤ処理時にスキップされている特徴マップのデータサイズを算出する。該当のレイヤへの入出力時の特徴マップのデータサイズ、及び該当のレイヤ処理時にスキップされている特徴マップのデータサイズの合計値が、非圧縮時の特徴マップのデータサイズとなる。
 図11は、各レイヤで必要な特徴マップのデータサイズの算出例を示す図である。図11に示すように、pixel wise conv-1は、19200バイトのfeature map1が入力され、9600バイトのfeature map2が出力されるため、特徴マップのデータサイズの合計値は、28800バイトとなる。depth wise convは、9600バイトのfeature map2が入力され、38400バイトのfeature map3が出力されるため、特徴マップのデータサイズの合計値は、48000バイトとなる。
 pixel wise conv-2は、38400バイトのfeature map3が入力され、9600バイトのfeature map4が出力され、9600バイトのfeature map2をスキップするため、特徴マップのデータサイズの合計値は、57600バイトとなる。addは、9600バイトのfeature map2と9600バイトのfeature map4が入力され、9600バイトのfeature map5が出力されるため、特徴マップのデータサイズの合計値は、28800バイトとなる。
 次に、圧縮率算出部142は、各レイヤで必要な特徴マップのデータサイズ、及びワークバッファサイズから、各レイヤのターゲットレートを算出する(S13)。ここでは、圧縮後のターゲットレートを、特徴マップのデータサイズとワークバッファサイズとの比から算出する。また、ターゲットレートが非圧縮時のレートを超える場合、すなわち、非圧縮時のデータサイズを超える場合には、圧縮の必要がないと判断して、元のデータサイズをアサインする。さらに、ターゲットレートの圧縮率に小数部が含まれる場合、レート制御の演算を簡略化する目的で整数部にアサインしてその整数値を用いる。これにより、各レイヤ処理に必要な圧縮率を定義することができる。
 この例では、各レイヤで必要な特徴マップのデータサイズは、図12に示すように、pixel wise conv-1が28800バイト、depth wise convが48000バイト、pixel wise conv-2が57600バイト、addが28800バイトであり、次の式(2)を適用することで、図13に示すような、各レイヤの最大ターゲットレートを求めることができる。
Figure JPOXMLDOC01-appb-M000002
 また、式(2)で求めた最大ターゲットレートに対し、次の式(3)を適用することで、図14に示すような、各レイヤのターゲットレートを求めることができる。
Figure JPOXMLDOC01-appb-M000003
 なお、式(3)において、int()は、小数部を切り捨てて整数にする関数である。min()は、最小の数値を返す関数であり、各レイヤのターゲットレートが8 bit/sampleを超えることはない。
 この例では、図12乃至図14に示したように、レイヤごとのターゲットレート(単位:bit/sample)は、次のように求められる。すなわち、pixel wise conv-1は、必要な特徴マップのデータサイズが28800バイトであるので、最大ターゲットレートは8.702222222となり、ターゲットレートは8となる。depth wise convは、必要な特徴マップのデータサイズが48000バイトであるので、最大ターゲットレートは5.221333333となり、ターゲットレートは5となる。pixel wise conv-2は、必要な特徴マップのデータサイズが57600バイトとなるので、最大ターゲットレートは4.351111111となり、ターゲットレートは4となる。addは、必要な特徴マップのデータサイズが28800バイトであるので、最大ターゲットレートは8.702222222となり、ターゲットレートは8となる。
 次に、圧縮率算出部142は、各レイヤのターゲットレートから、特徴量ごとのターゲットレートを算出する(S14)。ここでは、上述のステップS13により、各レイヤの処理を実行可能なターゲットレートが算出されたが、特徴マップは複数のレイヤで用いられるため、処理全体を通じて最小のターゲットレートで処理する必要がある。例えば、図7のネットワーク構成に示したように、feature map2は、pixel wise conv-1, depth wise conv, add の3箇所のレイヤで用いられる。このとき、図14に示したように、それぞれのレイヤに設定されたターゲットレートは、8, 5, 4, 8 bit/sampleであるが、これらの最小値である4を選択することで、特徴マップに対するターゲットレートを算出することができる。
 図15は、特徴マップごとのターゲットレートの算出例を示す図である。図15においては、各特徴マップについて、該当のレイヤに入力又は出力しない場合を、「非参照」と記載している。ただし、pixel wise conv-2はfeature map2をスキップするので、feature map2では、これを考慮している。
 feature map1は、pixel wise conv-1で用いられるため、その最小値である8 bit/sampleであるターゲットレートが、特徴量のターゲットレートとなる。feature map2は、pixel wise conv-1, depth wise conv, pixel wise conv-2, add で用いられるため、その最小値である4 bit/sampleが、特徴量のターゲットレートとなる。
 feature map3は、depth wise conv, pixel wise conv-2 で用いられるため、その最小値である4 bit/sampleが、特徴量のターゲットレートとなる。feature map4は、pixel wise conv-2, addで用いられるため、その最小値である4 bit/sampleが、特徴量のターゲットレートとなる。feature map5は、addで用いられるため、その最小値である8 bit/sampleが、特徴量のターゲットレートとなる。
 図10のステップS14が終了すると処理は終了する。このように、図10のフローチャートに示した処理が行われることで、図16に示すように、feature map1 ~ feature map5である特徴マップに対し、8, 4, 4, 4, 8 bit/sampleであるターゲットレートが算出される。
<特徴量の圧縮方法の決定>
 図6の圧縮方法決定部143による特徴量の圧縮方法の決定例を、図17乃至図27を参照しながら説明する。
 演算部121により実行されるDNN処理では適用される処理ごとにデータのアクセス方法が異なる。図17は、MobileNet等で利用されるdepth wise convolutionとpixel wise convolutionの処理概念を示している。MobileNetは、モバイル端末等の限られたリソースでも利用可能な軽量かつ高精度なCNNのアーキテクチャである。なお、pixel wise convolutionは、point wise convolutionとも称される。
 図17に示すように、RGBの3チャンネルの特徴量が入力される場合に、depth wise convolutionとpixel wise convolutionのどちらの処理も入力された特徴量の全てを参照するものの、参照順序が、空間内のデータを連続して読むか、空間位置を固定してチャンネル方向(デプス方向)を優先として読むかで異なっている。そのため、本開示で適用される圧縮方法についても、各処理のデータのアクセス方法に従った圧縮方法とするのが好適である。
 例えば、DNN処理としてdepth wise convolutionが行われる場合、空間方向に連続したアクセス順となるため、図18のAにおいて、xy方向の平面的な四角s1乃至s4で示すように、空間方向のデータをまとめた圧縮方法(以下、「空間方向まとめの圧縮方法」ともいう)が有効となる。一方で、DNN処理としてpixel wise convolutionが行われる場合、デプス方向のデータアクセス順となるため、図18のBにおいて、z方向の立体的な四角d1乃至d4で示すように、デプス方向のデータをまとめた圧縮方法(以下、「デプス方向まとめの圧縮方法」ともいう)が有効となる。
 図19のフローチャートは、圧縮方法決定部143により行われる特徴量の圧縮方法の決定の流れを示している。
 まず、圧縮方法決定部143は、圧縮率算出部142により算出された特徴マップの圧縮率から、特徴マップに圧縮を行う必要があるかどうかを判定する(S21)。ここでは、特徴マップごとに算出された圧縮率が所定値以上となるかどうかにより、特徴マップの圧縮の必要性の有無を判定することができる。
 ステップS21において圧縮を行う必要がないと判定した場合、圧縮方法決定部143は、特徴マップの圧縮方法として、非圧縮を選択してその決定結果を出力する(S22)。すなわち、ターゲットレートが非圧縮時のレートを超える場合には圧縮の必要性はなく、該当する特徴マップには非圧縮が指定される。非圧縮を指定して不要な圧縮を行わないことで、例えば消費電力を削減することができる。
 一方で、ステップS21において圧縮を行う必要があると判定した場合、圧縮方法決定部143は、特徴マップの圧縮方法を選択してその決定結果を出力する(S23)。ここでは、各特徴マップを参照するレイヤごとのデータのアクセス方法に従い、圧縮方法として、空間方向まとめ又はデプス方向まとめが指定される。
 ステップS22,S23が終了すると、処理は終了する。すなわち、特徴マップごとに、圧縮方法として、非圧縮、空間方向まとめ、又はデプス方向まとめが指定される。
 この例では、図16に示したように、特徴量の圧縮率の算出によって、feature map1 ~ feature map5である特徴マップに対し、8, 4, 4, 4, 8 bit/sampleであるターゲットレートが算出されており、これらのターゲットレートに従い、圧縮又は非圧縮の選択を行う。ここで、図20乃至図23,図25に示した判定表と図24に示したテーブルを便宜的に用いながら、各特徴マップに対し、最適な圧縮方法を決定するまでの手順を説明する。
 feature map1とfeature map5は、ターゲットレートが8 bit/sampleであり、非圧縮時のデータサイズを超えるため、圧縮する必要はない。そのため、図20の判定表に示すように、feature map1とfeature map5の圧縮方法は、「非圧縮」と記載する。
 次に、図21の判定表に示すように、pixel wise conv-1, depth wise conv, pixel wise conv-2, add の各列に、希望するアクセス方法を記載する。例えば、pixel wise conv-2 の場合、feature map3を入力として読み込む。この場合、直接参照しないfeature map1, 2, 4, 5に対しては斜線を記載し、feature map3に対しては、pixel wise conv-2でアクセス効率が良い「pixel-wise」と記載する。
 各列に対しても同様の判断を適用することで、pixel wise conv-1では、feature map1に対して「pixel-wise」が記載され、feature map2, 3, 4, 5に対して斜線が記載される。depth wise convでは、feature map2に対して「depth-wise」が記載され、feature map1, 3, 4, 5に対して斜線が記載される。特徴マップの各要素を加算するadd の場合、feature map2とfeature map4を入力として読み込むが、「depth-wise」と「pixel-wise」のどちらも容易に対応可能である。そのため、feature map2 ,4に対し、「don't care」と記載し、feature map1, 3, 5に対して斜線が記載される。
 次に、図22,図23の判定表により、feature map2, 3の圧縮方法の決定方法を説明する。ここでの圧縮方法の決定に関しては、判定表の列単位に判別を行う。
 まず、1つのレイヤ処理からのみ参照され、優位な圧縮方法を一意に特定可能な特徴マップから決定する。図22の判定表に示すように、1つのレイヤ処理からのみ参照される特徴マップは、feature map3とfeature map4がある。feature map3は、pixel wise conv-2のみから参照され、デプス方向まとめの圧縮方法が有効となるため、決定した圧縮方法を「デプス方向まとめ」と一意に特定することができる。feature map4は、add のみから参照されるが、add のアクセス方法は、「don't care」であるため、feature map4の圧縮方法は未定のままとする。
 次に、2つ以上のレイヤ処理から参照される特徴マップに対し、圧縮方法を決定する。図23の判定表に示すように、feature map2は、depth wise convとaddの2つのレイヤ処理から参照される。それぞれ最適なアクセス方法は、「depth-wise」と「don't care」であるため、図24のアクセス方法の優先度に従って、より優先度の高い「depth-wise」を選択する。図24のテーブルにおいては、優先度を表す数値によって、「depth-wise」と「pixel-wise」が、「don't care」よりも優先度が高いことが管理されている。
 そして、図23の判定表に示すように、feature map2におけるaddの「don't care」を、「depth-wise」に上書きし、決定した圧縮方法に「空間方向まとめ」と記載する。なお、この例では存在しないが、「depth-wise」と「pixel-wise」のように、アクセス方法の優先度が同じ場合も想定され、その場合には、例えば、ネットワーク全体の処理順序や演算器の特性などから、適宜最適なアクセス方法が選択されることが望ましい。
 最後に、図25の判定表により、feature map4のように、アクセスするレイヤ処理が1つしかないが、「don't care」などのようにアクセス方法が一意に定まらない場合を説明する。
 ここで、図25の判定表において、addの列を確認すると、図23の判定表に示した直前の手順により、feature map2におけるaddの「don't care」が「depth-wise」に置き換わったことを確認することができる。このように、同じ列に「don't care」以外の設定がされていた場合、feature map2におけるaddの「depth-wise」を参照して、feature map4におけるaddの「don't care」を「depth-wise」に上書きし、決定した圧縮方法に「空間方向まとめ」と記載する。
 なお、ここでも、「depth-wise」と「pixel-wise」のように、アクセス方法の優先度が同じ場合や、「don't care」しか存在しない場合も想定されるが、その場合には、例えば、ネットワーク全体の処理順序や演算器の特性などから、適宜最適なアクセス方法が選択されることが望ましい。
 以上をまとめると、最終的に作成される判定表は、図26の判定表のようになる。すなわち、図26の判定表に示すように、feature map1, 5は非圧縮、feature map2は空間方向まとめの圧縮方法、feature map3はデプス方向まとめの圧縮方法、feature map4は空間方向まとめの圧縮方法となる。
 ネットワーク事前解析器110においては、圧縮率算出部142により算出された圧縮率(ターゲットレート)と、圧縮方法決定部143により決定された圧縮方法とが、特徴マップ等の特徴量ごとに得られるので、それらを集約して符号化制御情報として出力する。図27は、符号化制御情報の例を示す図である。図27の符号化制御情報では、図16のターゲットレートと、図26の圧縮方法を集約して、feature map1 ~ feature map5である特徴マップごとに、ターゲットレートと圧縮方法が対応付けられる。
 より具体的には、feature map1は、ターゲットレートが8 bit/sampleで、圧縮方法が「非圧縮」となる。また、feature map2は、ターゲットレートが4 bit/sampleで、圧縮方法が「空間方向まとめ」となり、feature map3は、ターゲットレートが4 bit/sampleで、圧縮方法が「デプス方向まとめ」となる。また、feature map4は、ターゲットレートが4 bit/sampleで、圧縮方法が「空間方向まとめ」となり、feature map5は、ターゲットレートが8 bit/sampleで、圧縮方法が「非圧縮」となる。
<圧縮部の構成>
 図28は、図5の圧縮部122の構成例を示す図である。
 圧縮部122は、ネットワーク事前解析器110からの符号化制御情報に基づいて、演算部121から入力された特徴量を圧縮した圧縮特徴量を生成して圧縮ストリームとして出力するか、圧縮していない特徴量を非圧縮ストリームとして出力する。圧縮ストリーム又は非圧縮ストリームを含む特徴量ごとのストリームは、圧縮部122からメモリ124に出力され、そのデータが一時的に記録される。
 図28において、圧縮部122は、データ取り出し部161、スイッチ162、加算部163、量子化部164、エントロピ符号化部165、逆量子化部166、加算部167、ワークバッファ168、及び予測値生成部169を有する。圧縮部122に入力される符号化制御情報は、特徴量ごとのターゲットレートと圧縮方法を含み、それらの情報(パラメータ)に従って、圧縮部122の各部が動的に制御される。
 ターゲットレートは、量子化部164と逆量子化部166に入力される。圧縮方法は、データ取り出し部161と、スイッチ162と、予測値生成部169に入力される。図28において、圧縮部122には、特徴量#Nのデータと、特徴量#Nの符号化制御情報が入力されている。
 データ取り出し部161には、演算部121からの特徴量のデータが入力される。データ取り出し部161は、そこに入力される圧縮方法に従い、入力された特徴量(3Dテンソル形式の特徴量)を2次元の圧縮単位で読み出し、ブロック化特徴量としてスイッチ162に出力する。例えば、データ取り出し部161に入力される特徴量は3Dテンソルで表され、空間方向まとめやデプス方向まとめ等の圧縮方法に従って、2次元の圧縮単位で読み出される。
 スイッチ162は、そこに入力される圧縮方法に従い、データ取り出し部161からのブロック化特徴量の出力先を切り替える。すなわち、スイッチ162は、圧縮方法が指定されている場合、下側の端子に接続され、ブロック化特徴量を加算部163に出力する。また、スイッチ162は、圧縮方法の指定が非圧縮である場合、上側の端子に接続され、ブロック化特徴量を、非圧縮ストリームとしてそのまま外部に出力する。
 加算部163には、スイッチ162を介してデータ取り出し部161からのブロック化特徴量と、予測値生成部169からの予測値が入力される。加算部163は、ブロック化特徴量と予測値との差分から予測残差を生成し、量子化部164に出力する。
 量子化部164は、そこに入力されるターゲットレートに従い、加算部163からの予測残差を量子化し、量子化予測残差としてエントロピ符号化部165及び逆量子化部166に出力する。
 エントロピ符号化部165は、量子化部164からの量子化予測残差に対し、エントロピ符号化を行って圧縮ストリームを生成し、外部に出力する。なお、ここでは、エントロピ符号化を行う場合を例示したが、量子化予測残差を固定長で符号化するなどしてもよい。
 逆量子化部166は、そこに入力されるターゲットレートに従い、量子化部164からの量子化予測残差に対し、予測残差の逆量子化を行い、その結果得られる逆量子化予測残差を、加算部167に出力する。
 加算部167には、逆量子化部166からの逆量子化予測残差と、予測値生成部169からの予測値が入力される。加算部167は、逆量子化予測残差と予測値を加算して局所復号データを生成し、ワークバッファ168に出力する。ワークバッファ168は、加算部167からの局所復号データを一時的に記録し、必要に応じて予測値生成部169に出力する。
 予測値生成部169は、そこに入力される圧縮方法に従い、ワークバッファ168からの局所復号データから予測値を生成し、加算部163及び加算部167に出力する。予測値生成部169では、空間方向まとめやデプス方向まとめ等の圧縮方法に従い、予測値の生成方法が適切に切り替えられる。
 ここで、圧縮部122において、圧縮方法に従って動的に制御される各部(データ取り出し部161、予測値生成部169等)の動作の例を説明する。図29は、空間方向まとめの圧縮方法を用いる場合の特徴量圧縮の例を示す図である。図29に示すように、圧縮方法として空間方向まとめが指定されている場合、xy方向の平面的な四角s1乃至s4で示すように、空間方向のデータをまとめて、チャンネル単位で符号化が行われる。
 予測に際しても同様に、チャンネル単位で予測を行い、予測値を生成することができる。例えば、符号化が適用されてローカルデコードバッファに記録されたデータを参照して、予測値生成部169が予測を行うケースを想定する。特に、符号化対象の特徴量の空間位置の左側に隣接する隣接位置のデータを参照値とするとき、次の式(4)を用いて、特徴量の予測値を生成することができる。
Figure JPOXMLDOC01-appb-M000004
 なお、式(4)において、x, yは、符号化対象の特徴量のxy平面の空間位置、iは、z方向の符号化対象のチャンネルを表す。Px,y,iは、符号化対象の特徴量x,y,iの予測値を表す。fx,y,iは、既に符号化済みの特徴量x,y,iの値を表す。
 このように、空間方向まとめの圧縮方法を用いる場合には、同じチャンネル内の空間方向の予測で得られた特徴量の予測値と、現在の特徴量のデータとの差分データを、空間方向にまとめてパッキングして符号化することで、特徴量を圧縮することができる。このようなパッキングを行うことで、復号部123では、空間方向にまとめて圧縮した特徴量を復号することになる。
 図30は、デプス方向まとめの圧縮方法を用いる場合の特徴量圧縮の例を示す図である。図30に示すように、圧縮方法としてデプス方向まとめの圧縮方法が指定されている場合、特徴量の予測値を同じチャンネルのデータから生成する一方で、差分データのパッキングをデプス方向(チャンネル方向)に行うため、予測値生成時の参照面と、符号化時のデータのパッキング面が異なっている。図30においては、各チャンネルの特徴量のxy平面の空間位置を、左上の位置を原点としてp(x, y)で表している。
 まず、図30のAに示すように、各チャンネルにおけるp(0, 0)の特徴量のデータを符号化する(図中の立体的な四角d1)。ここでは、参照データが存在しないため、PCM(Pulse Code Modulation)や、予め定められた初期値から予測を実施する。次に、図30のBに示すように、各チャンネルのp(0, 0)の特徴量のデータを、その右隣のp(1, 0)の予測用に保存する。p(1, 0)の特徴量のデータは、保存したp(0, 0)の特徴量のデータを予測値として用いて差分データを生成する(矢印r1)。
 次に、差分データに対し、エントロピ符号化を適用する。また、図30のCに示すように、デプス方向にデータをパッキングして、圧縮データを生成する(立体的な四角d2)。その後は、図30のDに示すように、各チャンネルのp(1, 0)の特徴量のデータを保存し、その右隣のp(2, 0)の予測に用いる(矢印r2)。図30のA乃至Dに示した一連の処理を繰り返すことで、特徴量の全てのデータを圧縮することができる。
 このように、デプス方向まとめの圧縮方法を用いる場合には、空間方向の予測で得られた特徴量の予測値と、現在の特徴量のデータとの差分データを符号化して、デプス方向にまとめてパッキングすることで、特徴量を圧縮することができる。このようなパッキングを行うことで、復号部123では、デプス方向にまとめて圧縮した特徴量を復号することになる。
 以上のように、圧縮部122においては、入力される特徴量のデータに対し予測値を生成して、特徴量のデータと予測値との差分から得られる差分情報をエントロピ符号化することで、特徴量を圧縮する圧縮方式を用いている。また、圧縮部122においては、符号化制御情報が入力され、量子化部164と逆量子化部166が、圧縮率(ターゲットレート)に従い、予測残差の量子化と、予測残差を量子化した量子化予測残差の逆量子化を行うことで、指定された圧縮率に特徴量が圧縮されるようにしている。圧縮部122においては、データ取り出し部161が圧縮方法に従い、入力される特徴量からデータを取り出し、予測値生成部169が圧縮方法に従い、予測値を生成することで、DNN処理におけるデータアクセス方法に対応した圧縮単位でデータが処理されるようにしている。
<復号部の構成>
 図31は、図5の復号部123の構成例を示す図である。
 復号部123は、ネットワーク事前解析器110から入力される符号化制御情報に基づいて、メモリ124に一時的に記録された特徴量ごとのストリーム(圧縮ストリーム又は非圧縮ストリーム)から特徴量を再構成し、演算部121に出力する。なお、再構成された特徴量は、特徴量全体の復号が完了した後に出力しても、部分的に再構成された結果を順次出力してもよい。
 図31において、復号部123は、スイッチ181、エントロピ復号部182、逆量子化部183、加算部184、データ並び替え部185、ワークバッファ186、及び予測値生成部187を有する。復号部123に入力される符号化制御情報は、特徴量ごとのターゲットレートと圧縮方法を含み、それらの情報(パラメータ)に従って、復号部123の各部が動的に制御される。
 ターゲットレートは、逆量子化部183に入力される。圧縮方法は、スイッチ181と、データ並び替え部185と、予測値生成部187に入力される。図31において、復号部123には、特徴量#Nのデータと、特徴量#Nの符号化制御情報が入力されている。
 スイッチ181には、メモリ124に一時的に記録された特徴量のストリームが入力される。スイッチ181は、そこに入力される圧縮方法に従い、入力されたストリームの出力先を切り替える。すなわち、スイッチ181は、圧縮方法の指定が非圧縮である場合、上側の端子に接続され、入力された非圧縮ストリームをデータ並び替え部185に出力する。また、スイッチ181は、圧縮方法が指定されている場合、下側の端子に接続され、入力された圧縮ストリームをエントロピ復号部182に出力する。
 エントロピ復号部182は、スイッチ181を介して入力される圧縮ストリームに対し、エントロピ復号を行って量子化予測残差を再構成し、逆量子化部183に出力する。
 逆量子化部183は、そこに入力されるターゲットレートに従い、エントロピ復号部182からの量子化予測残差に対し、予測残差の逆量子化を行い、その結果得られる逆量子化予測残差を加算部184に出力する。
 加算部184には、逆量子化部183からの逆量子化予測残差と、予測値生成部187からの予測値が入力される。加算部184は、逆量子化予測残差と予測値を加算して局所復号データを生成し、データ並び替え部185及びワークバッファ186に出力する。
 データ並び替え部185には、スイッチ181を介して非圧縮ストリームとして入力されるブロック化特徴量、又は加算部184から局所復号データとして入力されるブロック化特徴量が入力される。データ並び替え部185は、ブロック化特徴量のデータを、元の特徴量形式であるテンソル形式(3Dテンソル形式)に再マッピングを行い、その結果得られる特徴量のデータを出力する。
 ワークバッファ186は、加算部184からの局所復号データを一時的に記録し、必要に応じて予測値生成部187に出力する。予測値生成部187は、そこに入力される圧縮方法に従い、ワークバッファ186からの局所復号データから予測値を生成し、加算部184に出力する。
 図32は、図31のデータ並び替え部185によるデータの並び替え処理の例を示す図である。図32に示すように、データ並び替え部185に入力されたブロック化特徴量bfのデータは、空間方向まとめの圧縮方法が指定されている場合、空間方向に並べられることで、元の特徴量の形式に再マッピングされる(xy方向の平面的な四角s1)。また、ブロック化特徴量bfのデータは、デプス方向まとめの圧縮方法が指定されている場合、デプス方向に並べられることで、元の特徴量の形式に再マッピングされる(z方向の立体的な四角d1)。
 以上のように、復号部123においては、入力される圧縮特徴量のデータをエントロピ復号して得られる差分情報と加算する予測値を生成して、差分情報と予測値を加算することで、圧縮特徴量を復号する復号方式を用いている。また、復号部123においては、符号化制御情報が入力され、逆量子化部183が圧縮率(ターゲットレート)に従い、量子化した予測残差の逆量子化を行うことで、指定された圧縮率に圧縮された圧縮特徴量から特徴量に復号されるようにしている。復号部123においては、予測値生成部187が圧縮方法に従い、予測値を生成し、データ並び替え部185が圧縮方法に従い、予測値を差分情報に加算して得られる特徴量を並び替えることで、DNN処理におけるデータアクセス方法に対応した圧縮単位でデータが処理されるようにしている。
 本開示の第1の構成では、ネットワーク事前解析器110により事前にニューラルネットワークを解析して生成した符号化制御情報に基づいて、演算部121とメモリ124の間に設けられた圧縮部122と復号部123を制御することで、演算部121によるニューラルネットワークを用いた推論処理を確実に行うことができる。
 より具体的には、従来では、演算で必要とするワークバッファサイズが、搭載されたメモリサイズを超える場合、演算部による推論処理を行うことができなかった。また、特許文献1に開示されている手法のように、圧縮の利得があった場合にのみ圧縮を適用する手法であると、圧縮後のストリームサイズが入力データ依存となり、入力データによって推論の可否が変化してしまい、確実に推論処理を行うことができない。
 それに対し、本開示の第1の構成では、事前にニューラルネットワークを解析して、利用可能なメモリサイズに適合した特徴量の圧縮率を含む符号化制御情報を生成することで、ニューラルネットワークを用いた推論処理で処理される特徴量を一時的に記録するために必要なワークバッファサイズを、利用可能なメモリサイズ以下に制御することができる。また、本開示の第1の構成では、特徴量の圧縮率を用いた制御を行うため、圧縮後のストリームサイズが入力データ依存となることはなく、推論の可否が変化することもない。
 これにより、従来演算が不可能となっていた、搭載されたメモリ容量が少ない機械学習推論器においても、確実に推論処理を実施することができる。また、DNNのレイヤでは、前段のレイヤから後段のレイヤに向かうほど、処理に必要なデータ量が少なくなる傾向にあるのは先に述べた通りであるが、符号化制御情報に含まれる特徴量の圧縮率を用いた制御を行うことで、後段のレイヤの処理で不要な圧縮を行ったり、前段のレイヤの処理で適切な圧縮を適用できなかったりすることはない。
 また、本開示の第1の構成では、事前にニューラルネットワークを解析して、DNN処理のデータアクセス方法に適合した特徴量の圧縮方法を含む符号化制御情報を生成することで、DNNの特徴量が持つ空間方向の相関を利用しつつ、DNN処理のデータアクセス方法を考慮した圧縮方法を適切に選択して、より適切な特徴量の圧縮を行うことができる。
<<本開示の第2の構成>>
<機械学習推論器の構成>
 図33は、本開示を適用した機械学習推論器の一実施の形態の他の構成例を示す図である。図33において、機械学習推論器200は、ネットワーク事前解析器210と、機械学習演算器211とから構成される。
 ネットワーク事前解析器210は、そこに入力される機械学習のネットワーク情報と、サンプルデータ群を解析し、解析の結果得られる符号化制御情報を、機械学習演算器211に出力する。サンプルデータ群は、制御パラメータ生成用のサンプルデータを含む。符号化制御情報には、圧縮率(ターゲットレート)と圧縮方法のほかに、特徴量を効率的に圧縮するための制御パラメータが含まれる。
 機械学習演算器211は、そこに入力されるネットワーク情報と入力データに基づいて、ディープラーニング等の機械学習の推論処理を行い、その結果得られる演算結果を外部に出力する。機械学習演算器211は、演算部221、圧縮部222、復号部223、及びメモリ224を有する。演算部221は、演算部121(図5)と同様に構成される演算ユニットであり、ディープラーニングの推論処理を行う場合に、DNNの各レイヤの特徴マップ等の特徴量をメモリ224に適宜記録させる。メモリ224は、メモリ124(図5)と同様に、SRAM, DRAM等で構成される。
 演算部221とメモリ224との間には、圧縮部222と復号部223が設けられる。圧縮部222と復号部223には、ネットワーク事前解析器210からの符号化制御情報が入力される。
 圧縮部222は、特徴マップ等の特徴量を圧縮する圧縮処理を行う圧縮器である。圧縮部222は、ネットワーク事前解析器210からの符号化制御情報に基づいて、演算部221からの特徴量を圧縮し、圧縮特徴量を圧縮ストリームとしてメモリ224に書き込む。また、圧縮部222は、特徴量を圧縮しない場合、特徴量を非圧縮ストリームとしてメモリ224に書き込む。
 復号部223は、圧縮部222により圧縮された圧縮特徴量を特徴量に復号する復号処理を行う復号器である。復号部223は、メモリ224に一時的に記録された圧縮ストリーム又は非圧縮ストリームのデータを適宜読み出す。復号部223は、ネットワーク事前解析器210からの符号化制御情報に基づいて、メモリ224から読み出した圧縮ストリームを、圧縮特徴量から特徴量に復号する。復号部223は、圧縮特徴量から復号した特徴量、又は非圧縮ストリームとして読み出した特徴量を演算部221に出力する。
 以上のように、機械学習推論器200においては、機械学習演算器211で機械学習の推論処理が実施される前に、ネットワーク事前解析器210が、ネットワーク情報とサンプルデータ群の解析を実施して、その解析の結果得られる符号化制御情報を、機械学習演算器211に入力する。そして、機械学習演算器211では、演算部221により機械学習の推論処理を実施する際に、DNN等のニューラルネットワークで処理される特徴量をメモリ224に一時的に記録するが、メモリ224に記録される特徴量は、必要に応じて、符号化制御情報に基づき、圧縮部222により圧縮され、復号部223により復号される。
<ネットワーク事前解析器の構成>
 図34は、図33のネットワーク事前解析器210の構成例を示す図である。図34において、ネットワーク事前解析器210は、検出部241、圧縮率算出部242、圧縮方法決定部243、特徴量サンプル抽出部244、制御パラメータ生成部245-0乃至245-N(N:1以上の整数)を有する。
 検出部241は、そこに入力されるネットワーク情報を解析(パース)することで、ニューラルネットワークで処理されるウェイトのデータサイズと、特徴量のデータサイズを検出し、その検出結果を圧縮率算出部242に出力する。
 圧縮率算出部242は、検出部141からの検出結果に基づいて、特徴量の圧縮率(ターゲットレート)を算出して出力する。ここでの特徴量の圧縮率の算出に際しては、例えば、図7乃至図16を参照して説明した算出方法を用いることができる。ここでは、特徴量#0~#Nの特徴量ごとに圧縮率が算出され、圧縮方法決定部243には、特徴量#0~#Nの圧縮率が出力され、制御パラメータ生成部245-0乃至245-Nのそれぞれには、特徴量#0~#Nのうちの対応する番号の特徴量の圧縮率が出力される。
 圧縮方法決定部243には、ネットワーク情報と、圧縮率算出部242からの特徴量の圧縮率が入力される。圧縮方法決定部243は、ネットワーク情報と特徴量の圧縮率に基づいて、特徴量の圧縮方法を決定して出力する。特徴量の圧縮方法の決定に際しては、例えば、図17乃至図27を参照して説明した決定方法を用いることができる。ここでは、特徴量#0~#Nの特徴量ごとに圧縮方法が決定され、制御パラメータ生成部245-0乃至245-Nのそれぞれには、特徴量#0~#Nのうちの対応する番号の特徴量の圧縮方法が出力される。
 特徴量サンプル抽出部244は、そこに入力されるネットワーク情報とサンプルデータ群に基づいて、DNN等のニューラルネットワークの各レイヤの特徴量のサンプルデータを生成する。入力されるサンプルデータ群の数に規定はないが、特徴量の統計データ等を利用するため、十分なサンプルデータ数を用意するのが望ましい。ここでは、特徴量#0~#Nの特徴量ごとにサンプルデータが生成され、制御パラメータ生成部245-0乃至245-Nのそれぞれには、特徴量#0~#Nのうちの対応する番号の特徴量のサンプルデータが出力される。
 制御パラメータ生成部245-0には、圧縮率算出部242からの特徴量#0の圧縮率と、圧縮方法決定部243からの特徴量#0の圧縮方法と、特徴量サンプル抽出部244からの特徴量#0のサンプルデータが入力される。制御パラメータ生成部245-0は、特徴量#0の圧縮率、特徴量#0の圧縮方法、及び特徴量#0のサンプルデータに基づいて、特徴量#0に対する制御パラメータとして、特徴量#0の圧縮率と圧縮方法に最適な制御パラメータを生成して出力する。
 制御パラメータ生成部245-Nは、制御パラメータ生成部245-0と同様に、そこに入力される特徴量#Nの圧縮率、特徴量#Nの圧縮方法、及び特徴量#Nのサンプルデータに基づいて、特徴量#Nに対する制御パラメータとして、特徴量#Nの圧縮率と圧縮方法に最適な制御パラメータを生成して出力する。
 なお、説明が繰り返しになるので、制御パラメータ生成部245-1乃至245-N-1については図示を省略しているが、制御パラメータ生成部245-0乃至245-Nによって、特徴量#0~#Nの制御パラメータが生成されて出力される。
 以上のように、ネットワーク事前解析器210においては、特徴量#0~#Nの特徴量ごとに、圧縮率算出部242により算出される圧縮率(ターゲットレート)と、圧縮方法決定部243により決定される圧縮方法と、制御パラメータ生成部245-0乃至245-Nにより生成される制御パラメータとが得られ、符号化制御情報として出力される。
 図35は、図34の制御パラメータ生成部245-Nの構成例を示す図である。図35において、制御パラメータ生成部245-Nは、非線形変換テーブル選定部321、非線形変換部322、予測算出パラメータ算出部323、簡易予測値生成部324、差分部325、残差非線形変換テーブル選定部326、残差非線形変換部327、及びエントロピ符号化テーブル選定部328を有する。
 非線形変換テーブル選定部321は、そこに入力される特徴量#Nのサンプルデータに基づいて、特徴量サンプルの各チャンネル単位で、最適な非線形変換テーブルを選定し、その識別情報である非線形変換テーブルIDを出力する。非線形変換テーブル選定部321の詳細は、図36、図37を参照して後述する。
 非線形変換部322には、特徴量#Nのサンプルデータと、非線形変換テーブル選定部321からの非線形変換テーブルIDが入力される。非線形変換部322は、非線形変換テーブルIDにより特定される非線形変換テーブルに従い、特徴量#Nのサンプルデータに対し非線形変換を行い、その結果得られる非線形変換適用済み特徴量#Nサンプルデータを、予測算出パラメータ算出部323、簡易予測値生成部324、及び差分部325に出力する。
 予測算出パラメータ算出部323には、圧縮率算出部242(図34)からの特徴量#Nのターゲットレートと、圧縮方法決定部243(図34)からの特徴量#Nの圧縮方法と、非線形変換部322からの非線形変換適用済み特徴量#Nサンプルデータが入力される。予測算出パラメータ算出部323は、ターゲットレートと圧縮方法に基づいて、非線形変換適用済み特徴量#Nサンプルデータから、予測値算出用の予測算出パラメータを算出して出力する。ここでは、特徴量内の相関の強いチャンネルの算出や、参照時の補正パラメータの算出などが行われる。予測算出パラメータ算出部323の詳細は、図38乃至図43を参照して後述する。
 簡易予測値生成部324には、圧縮率算出部242(図34)からの特徴量#Nのターゲットレートと、圧縮方法決定部243(図34)からの特徴量#Nの圧縮方法と、非線形変換部322からの非線形変換適用済み特徴量#Nサンプルデータと、予測算出パラメータ算出部323からの予測算出パラメータが入力される。簡易予測値生成部324は、ターゲットレート、圧縮方法、及び予測算出パラメータに基づいて、非線形変換適用済み特徴量#Nサンプルデータから予測値を生成し、差分部325に出力する。ここでは、正確な予測残差の算出を実施してもよいが、コストに制限がある場合などには、簡易的な近似処理を行っても構わない。
 差分部325には、非線形変換部322からの非線形変換適用済み特徴量#Nサンプルデータと、簡易予測値生成部324からの予測値が入力される。差分部325は、非線形変換適用済み特徴量#Nサンプルデータと予測値との差分から、予測残差#Nのサンプルを算出し、残差非線形変換テーブル選定部326及び残差非線形変換部327に出力する。
 残差非線形変換テーブル選定部326は、差分部325からの予測残差#Nサンプルデータに基づいて、予測残差に適用する残差用の予測変換テーブルである残差非線形変換テーブルを選定し、その識別情報である残差非線形変換テーブルIDを出力する。残差非線形変換テーブル選定部326の詳細は、図44、図45を参照して後述する。
 残差非線形変換部327には、差分部325からの予測残差#Nサンプルデータと、残差非線形変換テーブル選定部326からの残差非線形変換テーブルIDが入力される。残差非線形変換部327は、残差非線形変換テーブルIDにより特定される残差非線形変換テーブルに従い、予測残差#Nサンプルデータに対し非線形変換を行い、その結果得られる非線形変換適用済み予測残差サンプルデータを、エントロピ符号化テーブル選定部328に出力する。
 エントロピ符号化テーブル選定部328は、残差非線形変換部327からの非線形変換適用済み予測残差サンプルデータに基づいて、統計値を算出してエントロピ符号化テーブルを選定し、その識別情報であるエントロピ符号化テーブルIDを出力する。ここでは、非線形変換を実施した予測残差に最適なVLC(variable length code)テーブルの番号が出力される。エントロピ符号化テーブル選定部328の詳細は、図46を参照して後述する。
 以上のように、制御パラメータ生成部245-Nにおいては、特徴量#Nの各チャンネルに対し、非線形変換テーブルID、予測算出パラメータ、残差非線形変換テーブルID、及びエントロピ符号化テーブルIDが生成され、制御パラメータとして出力される。なお、図35では、制御パラメータ生成部245-Nの構成を代表して説明したが、制御パラメータ生成部245-0乃至245-N-1(図34)についても同様に構成される。
 図36は、図35の非線形変換テーブル選定部321の構成例を示す図である。図36において、非線形変換テーブル選定部321は、チャンネル分割部421、ヒストグラム算出部422-0乃至422-3、及び変換テーブルID算出部423-0乃至423-3を有する。なお、図36においては、説明を簡略化するため、チャンネル数がM=4である場合を示す。
 チャンネル分割部421は、そこに入力される特徴量#Nのサンプルデータ群を、チャンネルごとに分割する。チャンネル分割部421は、特徴量#Nのチャンネル#0のサンプルデータ(f10,…,f60)をヒストグラム算出部422-0、特徴量#Nのチャンネル#1のサンプルデータ(f11,…,f61)をヒストグラム算出部422-1、特徴量#Nのチャンネル#2のサンプルデータ(f12,…,f62)をヒストグラム算出部422-2、特徴量#Nのチャンネル#3のサンプルデータ(f13,…,f63)をヒストグラム算出部422-3にそれぞれ出力する。
 ヒストグラム算出部422-0は、特徴量#Nのチャンネル#0のサンプルデータに基づいて、特徴量#Nのチャンネル#0のヒストグラムを算出し、変換テーブルID算出部423-0に出力する。変換テーブルID算出部423-0は、ヒストグラム算出部422-0からのヒストグラムに基づいて、特徴量#Nのチャンネル#0の非線形変換テーブルIDを算出する。ここでは、特徴量#Nのチャンネル#0のヒストグラムと、非線形変換テーブルの定義に利用したヒストグラムとの間で、ヒストグラムマッチングを行う。このヒストグラムマッチングの中で最尤なヒストグラムを検出し、最尤なヒストグラムから算出された非線形変換テーブルのIDを出力する。
 ヒストグラム算出部422-1と変換テーブルID算出部423-1、ヒストグラム算出部422-2と変換テーブルID算出部423-2、及びヒストグラム算出部422-3と変換テーブルID算出部423-3においては、ヒストグラム算出部422-0と変換テーブルID算出部423-0と同様に、特徴量#Nの各チャンネルのサンプルデータから算出したヒストグラムに基づいて、各チャンネルの非線形変換テーブルIDが算出される。これにより、特徴量#Nのチャンネル#0~#3の4チャンネル分の非線形変換テーブルIDが出力される。なお、非線形変換テーブルは、予め複数用意されて内部メモリ等に記録され、その中から選定された非線形変換テーブルのIDが出力される。
 図37は、非線形変換のバリエーションの例を示す図である。図37においては、特徴量のチャンネルごとのサンプルデータについて、ヒストグラムと非線形変換テーブルの例を示している。
 図37のAにおいて、特徴量#Nのチャンネル#0のサンプルデータf10は、通常の画像のような特徴量を有し、特に重要な部分が存在しないため、サンプルデータf10における特徴量の値の頻度は線a0で表される。そのため、サンプルデータf10に対しては、予め用意された非線形変換テーブルの中から、変換前と変換後の関係が、線b0で示すような関係となる非線形変換テーブルを選定する。
 図37のBにおいて、特徴量#Nのチャンネル#1のサンプルデータf11は、エッジ成分のみを抜き出した画像のような特徴量を有し、特定の特徴量の値にヒストグラムピークが集中するため、サンプルデータf11における特徴量の値の頻度は線a1で表される。そのため、サンプルデータf11に対しては、特定の特徴量の値を保護するように、変換前と変換後の関係が、線b1で示すような関係となる非線形変換テーブルを選定する。
 図37のCにおいて、特徴量#Nのチャンネル#2のサンプルデータf12は、白黒に2値化された画像のような特徴量を有し、特定の複数の特徴量の値にヒストグラムピークが集中するため、サンプルデータf12における特徴量の値の頻度は線a2で表される。そのため、サンプルデータf12に対しては、特定の複数の特徴量の値を保護するように、変換前と変換後の関係が、線b2で示すような関係となる非線形変換テーブルを選定する。
 ここで、非線形変換を適用する対象データである特徴量は、畳み込み演算やアクティベーションにより様々な性質を持つデータとなる。例えば、通常の画像のような特徴量(図37のA)、エッジ成分のみを抜き出した画像のような特徴量(図37のB)、白黒に2値化された画像のような特徴量(図37のC)など様々な性質を有する。通常の画像のように、非線形変換による圧縮を適用することが期待されるが、このような異なる性質のデータに対し、一律に同じ処理を適用することは、深刻な認識性能の劣化を引き起こす可能性がある。そのため、本開示では、事前にネットワーク情報を解析する際に、特徴量のデータ分布特性及びその後の利用方法を解析することで、最適な非線形変換による圧縮を適用することを可能にしている。
 なお、特徴量の非線形変換と逆非線形変換は、圧縮部222の非線形変換部263(図48)と、復号部223の逆非線形変換部286(図49)でそれぞれ実施されるが、その詳細は後述する。
 図38は、図35の予測算出パラメータ算出部323の構成例を示す図である。図38において、予測算出パラメータ算出部323は、参照チャンネル算出部441、参照パラメータ算出部442、及び予測方法決定部443を有する。
 参照チャンネル算出部441には、予測算出パラメータ算出のターゲットとなるチャンネルのチャンネルIDと、非線形変換部322(図35)からの非線形変換適用済み特徴量#Nサンプルデータが入力される。参照チャンネル算出部441は、非線形変換適用済み特徴量#Nサンプルデータに基づいて、チャンネルIDにより指定されたチャンネル(ターゲットチャンネル)に対し、チャンネル間での参照予測を行う場合における参照チャンネルIDを算出して出力する。
 ここでは、探索範囲をチャンネル#0~#M-1とし、予測に用いるチャンネルは正規化相関などを用いて算出することができる。例えば、ターゲットチャンネルに対し、チャンネル#0との正規化相関を全サンプルデータに対して算出してその平均値を求める。そして、これらの演算をチャンネル#0~#M-1の全てに対して実施して、最も正規化相関の平均値の高いチャンネルのIDを、ターゲットチャンネルの参照チャンネルIDとして求めることができる。
 参照パラメータ算出部442には、予測算出パラメータ算出のターゲットとなるチャンネルのチャンネルIDと、非線形変換部322(図35)からの非線形変換適用済み特徴量#Nサンプルデータと、参照チャンネル算出部441からの参照チャンネルIDが入力される。参照パラメータ算出部442は、非線形変換適用済み特徴量#Nサンプルデータ群に基づいて、参照チャンネルIDで指定されたチャンネルから、チャンネルIDで指定されたターゲットチャンネルの予測値を生成するための参照パラメータ(フィッティングパラメータ)を算出して出力する。
 ここでは、例えば、次の式(5)により、特徴量#Nの予測値を算出する場合、参照パラメータとして、Scale, offset0, offset1などのパラメータを、最小二乗法などを用いて算出する。
Figure JPOXMLDOC01-appb-M000005
 なお、式(5)において、x, yは、符号化対象の特徴量の空間位置、iは、符号化対象のチャンネル、jは、予測対象のチャンネルを表す。Px,y,iは、特徴量x,y,iの予測値を表す。fx,y,jは、既に符号化済みの特徴量x,y,jの値を表す。offset0, offset1, Scaleは、予測値生成のためのパラメータである。
 予測方法決定部443には、予測算出パラメータ算出のターゲットとなるチャンネルのチャンネルIDと、非線形変換部322(図35)からの非線形変換適用済み特徴量#Nサンプルデータ群と、参照チャンネル算出部441からの参照チャンネルIDと、参照パラメータ算出部442からの参照パラメータが入力される。予測方法決定部443は、非線形変換適用済み特徴量#Nサンプルデータに基づいて、チャンネルIDで指定されたターゲットチャンネルの予測値を、参照チャンネルIDと参照パラメータを用いて予測する場合の予測方法を決定して出力する。詳細は後述するが、予測方法には、チャンネル間予測、双方向予測、空間方向予測などがあり、例えば、チャンネル間予測を実施できない場合には、空間方向予測が実施されるようにする。
 以上のように、予測算出パラメータ算出部323においては、指定されたターゲットチャンネルに対し、有効な参照チャンネルのIDである参照チャンネルIDと、参照時の補正パラメータとなる参照パラメータと、最終的に決定される予測方法を含む予測算出パラメータが算出される。なお、予測算出パラメータ算出部323では、先頭のチャンネル(チャンネル#0)を除いた全てのチャンネルをターゲットチャンネルとして処理が実施され、チャンネル数から1を減算した数のチャンネル分の予測算出パラメータが算出される。
 ここで、図39を参照しながら、pixel wiseに限定して、圧縮部222における予測値生成とパッキングの例を説明する。予測は、既に符号化が完了しているチャンネルのデータを参照して行う。参照チャンネルは、事前にネットワーク事前解析器210(参照チャンネル算出部441)により算出されている。このとき、参照チャンネルを、1つのチャンネルに限定してもよいし、圧縮部222が複数候補のチャンネルから選択してもよい。また、この例では、符号化方向は、矢印eの方向、すなわち、手前のチャンネルから奥のチャンネルに向かう方向としている。
 また、異なるチャンネル間の予測は、上記の式(5)を用いて、offsetとScaleの調整を実施して行うことができる。式(5)において、Px,y,iは特徴量x,y,iの予測値、fx,y,jは既に符号化済みの特徴量x,y,jの値を表している。この調整に用いられるoffset0, offset1, Scaleを含む参照パラメータは、事前にネットワーク事前解析器210(参照パラメータ算出部442)により算出されている。また、事前にネットワーク事前解析器210(予測方法決定部443)により、チャンネル間予測である予測方法が決定されている。
 図39においては、符号化方向が矢印eの方向となるので、特徴量f10~f13がチャンネル#0~#3の特徴量に対応している場合、例えば、矢印r1で示すように、チャンネル#3が符号化対象のチャンネル、チャンネル#1が予測対象のチャンネルとなり、i=3,j=1として予測値を生成することができる。また、pixel wiseの場合、圧縮方法としてデプス方向まとめが指定されるため、デプス方向にデータをまとめて符号化する(立体的な四角d1)。
 次に、図40を参照しながら、空間方向とチャンネル方向の双方のデータを参照して、あるチャンネルの予測値を生成する例を説明する。すなわち、この例では、事前にネットワーク事前解析器210(予測方法決定部443)により、双方向予測である予測方法が決定されている。
 例えば、図40において、特徴量f10~f13がチャンネル#0~#3の特徴量に対応している場合に、チャンネル#3の特徴量f13における特徴量Xの予測値を生成する場合を想定する。特徴量Xは、矢印r1で示すように、同じチャンネル#3内の隣接位置の特徴量のデータから算出された予測値Cと、矢印r2で示すように、参照チャンネルであるチャンネル#1の特徴量f11における同じ位置の特徴量のデータから算出された予測値Bと、予測値Bを算出した特徴量の位置の隣接位置の特徴量のデータから算出された予測値Aを用いて、予測値を生成することができる。
 予測値A, B, Cは、次の式(6)を用いて、符号化済みの特徴量のデータから算出することができる。また、次の式(6)を用いて算出された予測値A, B, Cの値を、式(7)に示した条件式に適用することで、特徴量Xの予測値を求めることができる。
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
 なお、式(6)において、x, yは、符号化対象の特徴量の空間位置、iは、符号化対象のチャンネル、jは、予測対象のチャンネルを表す。fx,y,jは、既に符号化済みの特徴量x,y,jの値を表す。offset0, offset1, Scaleは、予測値生成のためのパラメータである。また、式(7)において、Px,y,iは、特徴量x,y,iの予測値を表す。min()は、最小の数値を返す関数であり、max()は、最大の数値を返す関数である。
 このように、予測値の生成に際しては、例えば、図39に示したように、チャンネル間予測を用いてチャンネル間での参照を行ったり、図40に示したように、空間方向予測とチャンネル間予測を用いて空間方向の参照とチャンネル間での参照を双方向に行ったりできる。
 図41は、予測算出パラメータ算出部323から出力される予測算出パラメータの例を示す図である。図41において、予測算出パラメータは、参照チャンネル、参照パラメータ、及び予測方法であるパラメータを含む。参照チャンネルは、参照チャンネルIDにより指定される。参照パラメータは、参照式として用いられる式(5)や式(6)におけるoffset0, offset1, Scaleが指定される。予測方法は、空間方向予測、チャンネル間予測、又は双方向予測のいずれかの予測タイプが指定される。
 参照パラメータは、チャンネル単位で指定される。そのため、参照チャンネルや予測方法は、チャンネルごとに異なる。図42は、チャンネルごとに異なる参照チャンネルと予測方法の例を示す図である。図42において、特徴量f10~f13がチャンネル#0~#3の特徴量に対応している場合に、例えば、チャンネル#0の予測方法として、空間方向予測が指定されるときを想定する。このとき、チャンネル#0の特徴量f10における特徴量X0の予測値は、矢印r1で示すように、同じチャンネル#0内の隣接位置の特徴量のデータから算出した予測値を用いて生成することができる。
 また、チャンネル#1の予測方法として、双方向予測が指定されるとき、チャンネル#1の特徴量f11における特徴量X1の予測値は、矢印r2で示すように、同じチャンネル#1内の隣接位置の特徴量のデータから算出した予測値と、矢印r3で示すように、チャンネル#0の特徴量f10における同じ位置の特徴量のデータから算出した予測値を用いて生成することができる。チャンネル#2の予測方法として、チャンネル間予測が指定されるとき、チャンネル#2の特徴量f12における特徴量X2の予測値は、矢印r4で示すように、チャンネル#1の特徴量f11における同じ位置の特徴量のデータから算出した予測値を用いて生成することができる。チャンネル#3の予測方法として、双方向予測が指定されるとき、チャンネル#3の特徴量f13における特徴量X3の予測値は、矢印r5で示すように、同じチャンネル#3内の隣接位置の特徴量のデータから算出した予測値と、矢印r6で示すように、チャンネル#1の特徴量f11における同じ位置の特徴量のデータから算出した予測値を用いて生成することができる。
 次に、図43を参照しながら、空間方向とチャンネル方向の双方のデータを参照する場合における予測値生成とパッキングの例を説明する。図43においては、各チャンネルの特徴量のxy平面の位置を、左上の位置を原点としてp(x, y)で表している。
 まず、図43のAに示すように、各チャンネルにおけるp(0, 0)の特徴量のデータを符号化する。ここでは、参照データが存在しないため、PCMや予め定められた初期値から予測を実施する。また、矢印r1で示すように、各チャンネルのp(0, 0)では、チャンネル間予測を実施する。次に、図43のBに示すように、各チャンネルのp(0, 0)の特徴量のデータを、その隣のp(1, 0)の予測用に保存する。p(1, 0)は、同じチャンネル内のp(0, 0)の特徴量のデータと、別のチャンネルで既に符号化済みの同じ位置の特徴量のデータを参照して予測値を生成する(矢印r2,r3)。これにより、p(1, 0)について、特徴量のデータと予測値との差分データを生成する。
 次に、差分データに対し、後述する残差非線形変換及びエントロピ符号化を適用する。また、図43のCに示すように、デプス方向(チャンネル方向)にデータをパッキングして、圧縮データを生成する(立体的な四角d2)。その後は、図43のDに示すように、各チャンネルのp(1, 0)の特徴量のデータを保存し、その隣のp(2, 0)の予測に用いる。ここでも、空間方向とチャンネル方向の双方向予測が実施される(矢印r4,r5)。図43のA乃至Dに示した一連の処理を繰り返すことで、特徴量の全てのデータを圧縮することができる。
 このように、空間方向とチャンネル方向の双方向予測で得られた特徴量の予測値と、現在の特徴量のデータとの差分データを符号化して、デプス方向にまとめてパッキングすることで、特徴量を圧縮することができる。圧縮部222によってこのようなパッキングを行うことで、復号部223では、デプス方向にまとめて圧縮した特徴量を復号することになる。
 図44は、図35の残差非線形変換テーブル選定部326の構成例を示す図である。図44において、残差非線形変換テーブル選定部326は、チャンネル分割部461、ヒストグラム算出部462-0乃至462-3、及び変換テーブルID算出部463-0乃至463-3を有する。なお、図44においては、説明を簡略化するため、チャンネル数がM=4である場合を示す。
 チャンネル分割部461は、そこに入力される予測残差#Nのサンプルデータ群をチャンネルごとに分割する。チャンネル分割部461は、予測残差#Nのチャンネル#0のサンプルデータ(p10,…,p60)をヒストグラム算出部462-0、予測残差#Nのチャンネル#1のサンプルデータ(p11,…,p61)をヒストグラム算出部462-1、予測残差Nのチャンネル#2のサンプルデータ(p12,…,p62)をヒストグラム算出部462-2、予測残差#Nのチャンネル#3のサンプルデータ(p13,…,p63)をヒストグラム算出部462-3にそれぞれ出力する。
 ヒストグラム算出部462-0は、予測残差#Nのチャンネル#0のサンプルデータに基づいて、予測残差#Nのチャンネル#0のヒストグラムを算出し、変換テーブルID算出部463-0に出力する。変換テーブルID算出部463-0は、ヒストグラム算出部462-0からのヒストグラムに基づいて、予測残差#Nのチャンネル#0の残差非線形変換テーブルIDを算出する。ここでは、予測残差#Nのチャンネル#0のヒストグラムと、残差非線形変換テーブルの定義に利用したヒストグラムとの間で、ヒストグラムマッチングを行う。このヒストグラムマッチングの中で最尤なヒストグラムを検出し、最尤なヒストグラムから算出された残差非線形変換テーブルのIDを出力する。
 ヒストグラム算出部462-1と変換テーブルID算出部463-1、ヒストグラム算出部462-2と変換テーブルID算出部463-2、及びヒストグラム算出部462-3と変換テーブルID算出部463-3においては、ヒストグラム算出部462-0と変換テーブルID算出部463-0と同様に、予測残差#Nの各チャンネルのサンプルデータから算出したヒストグラムに基づいて、各チャンネルの残差非線形変換テーブルIDが算出される。これにより、予測残差#Nのチャンネル#0~#3の4チャンネル分の残差非線形変換テーブルIDが出力される。なお、残差非線形変換テーブルは予め用意されて内部メモリ等に記録され、その中から選定された残差非線形変換テーブルのIDが出力される。
 図45は、残差非線形変換のバリエーションの例を示す図である。図45においては、予測残差のチャンネルごとのサンプルデータについて、ヒストグラムと残差非線形変換テーブルの例を示している。
 図45のAは、予測残差#Nのチャンネル#0のサンプルデータp10が、図37のAと同様に通常の画像のような予測残差を有する場合を示し、サンプルデータp10における予測残差の値の頻度は線c0で表される。そのため、サンプルデータp10に対しては、予め用意された残差非線形変換テーブルの中から、変換前と変換後の関係が、線d0で示すような関係となる残差非線形変換テーブルを選定する。
 図45のBにおいては、予測残差#Nのチャンネル#1のサンプルデータp11が、図37のBと同様にエッジ成分のみを抜き出した画像のような予測残差を有する場合を示し、サンプルデータp11における予測残差の値の頻度は線c1で表される。そのため、サンプルデータp11に対しては、特定の予測残差の値を保護するように、変換前と変換後の関係が、線d1で示すような関係となる残差非線形変換テーブルを選定する。
 図45のCにおいては、予測残差#Nのチャンネル#2のサンプルデータp12が、図37のCと同様に白黒に2値化された画像のような予測残差を有する場合を示し、サンプルデータp12における予測残差の値の頻度は線c2で表される。そのため、サンプルデータp12に対しては、特定の複数の予測残差の値を保護するように、変換前と変換後の関係が、線d2で示すような関係となる残差非線形変換テーブルを選定する。
 なお、予測残差の非線形変換と逆非線形変換は、圧縮部222の残差非線形変換部265(図48)及び残差逆非線形変換部269(図48)と、復号部223の残差逆非線形変換部284(図49)でそれぞれ実施されるが、その詳細は後述する。なお、非線形変換テーブルを用いた変換処理(図36、図37等で説明した特徴量の非線形変換と逆非線形変換)と、残差非線形変換テーブルを用いた変換処理(図44、図45等で説明した予測残差の非線形変換と逆非線形変換)は、両方の変換処理を行うことは勿論、少なくとも一方の変換処理が行われればよい。
 図46は、図35のエントロピ符号化テーブル選定部328によるエントロピ符号化テーブルの選定の例を示す図である。図46においては、Table ID =0,1,2,3により識別される4種類のVLCテーブルを予め用意している。VLCテーブルは、それぞれ0を中心とした分布となっており、それぞれが異なる予測残差に対して最適化されている。エントロピ符号化テーブル選定部328は、予測残差のチャンネルごとに、どのエントロピ符号化テーブルを用いるべきかを選定し、その選定結果に応じたTable IDを出力する。
 図47は、符号化制御情報の例を示す図である。図47の符号化制御情報では、特徴量のチャンネルごとに、圧縮率(ターゲットレート)と、圧縮方法と、制御パラメータが対応付けられる。制御パラメータは、非線形変換テーブルID、予測算出パラメータ、残差非線形変換テーブルID、及びエントロピ符号化テーブルIDを含む。予測算出パラメータは、参照チャンネルID、参照パラメータ、及び予測方法を含む。図47においては、feature map2である特徴マップの符号化制御情報として、チャンネル#0~#7のチャンネルIDごとのターゲットレートと、圧縮方法と、制御パラメータが含まれる。ここでは、feature map2である特徴マップの符号化制御情報を例示しているが、feature map1等の他の特徴マップについても同様に、チャンネルごとに、ターゲットレートと、圧縮方法と、制御パラメータが含まれる。
<圧縮部の構成>
 図48は、図33の圧縮部222の構成例を示す図である。
 圧縮部222は、ネットワーク事前解析器210からの符号化制御情報に基づいて、演算部221から入力された特徴量を圧縮した圧縮特徴量を生成して圧縮ストリームとして出力するか、圧縮していない特徴量を非圧縮ストリームとして出力する。圧縮ストリーム又は非圧縮ストリームを含む特徴量ごとのストリームは、圧縮部222からメモリ224に出力され、そのデータが一時的に記録される。
 図48において、圧縮部222は、データ取り出し部261、スイッチ262、非線形変換部263、加算部264、残差非線形変換部265、量子化部266、エントロピ符号化部267、逆量子化部268、残差逆非線形変換部269、加算部270、ワークバッファ271、及び予測値生成部272を有する。圧縮部222に入力される符号化制御情報は、特徴量ごとのターゲットレートと圧縮方法と制御パラメータを含み、それらの情報(パラメータ)に従って、圧縮部222の各部が動的に制御される。
 ターゲットレートは、量子化部266と逆量子化部268に入力される。圧縮方法は、データ取り出し部261と、スイッチ262と、予測値生成部272に入力される。制御パラメータのうち、非線形変換テーブルIDは非線形変換部263、残差非線形変換テーブルIDは残差非線形変換部265と残差逆非線形変換部269、エントロピ符号化テーブルIDはエントロピ符号化部267にそれぞれ入力される。また、制御パラメータのうち、予測算出パラメータに含まれる参照チャンネルID、参照パラメータ、及び予測方法は、予測値生成部272に入力される。図48において、圧縮部222には、特徴量#Nのデータと、特徴量#Nの符号化制御情報が入力されている。
 データ取り出し部261には、演算部221からの特徴量のデータが入力される。データ取り出し部261は、そこ入力される圧縮方法に従い、入力された特徴量(3Dテンソル形式の特徴量)を2次元の圧縮単位で読み出し、ブロック化特徴量としてスイッチ262に出力する。
 スイッチ262は、そこに入力される圧縮方法に従い、データ取り出し部261からのブロック化特徴量の出力先を切り替える。すなわち、スイッチ262は、圧縮方法が指定されている場合、下側の端子に接続され、ブロック化特徴量を非線形変換部263に出力する。また、スイッチ262は、圧縮方法の指定が非圧縮である場合、上側の端子に接続され、ブロック化特徴量を、非圧縮ストリームとしてそのまま出力する。
 非線形変換部263は、そこに入力される非線形変換テーブルIDにより特定される非線形変換テーブルに従い、スイッチ262を介してデータ取り出し部261から入力されるブロック化特徴量に対し非線形変換を行い、その結果得られる非線形変換適用済みブロック化特徴量を、加算部264に出力する。
 加算部264には、非線形変換部263からの非線形変換適用済みブロック化特徴量と、予測値生成部272からの予測値が入力される。加算部264は、非線形変換適用済みブロック化特徴量と予測値との差分から予測残差を生成し、残差非線形変換部265に出力する。
 残差非線形変換部265は、そこに入力される残差非線形変換テーブルIDにより特定される残差非線形変換テーブルに従い、加算部264からの予測残差に対し非線形変換を行い、その結果得られる非線形変換適用済み予測残差を量子化部266に出力する。
 量子化部266は、そこに入力されるターゲットレートに従い、残差非線形変換部265からの非線形変換適用済み予測残差を量子化し、量子化予測残差としてエントロピ符号化部267及び逆量子化部268に出力する。
 エントロピ符号化部267は、そこに入力されるエントロピ符号化テーブルIDにより特定されるエントロピ符号化テーブルに従い、量子化部266からの量子化予測残差に対し、エントロピ符号化を行って圧縮ストリームを生成し、外部に出力する。
 逆量子化部268は、そこに入力されるターゲットレートに従い、量子化部266からの量子化予測残差に対し、予測残差の逆量子化を行い、その結果得られる逆量子化予測残差を、残差逆非線形変換部269に出力する。
 残差逆非線形変換部269は、そこに入力される残差非線形変換テーブルIDにより特定される残差非線形変換テーブルに従い、逆量子化部268からの逆量子化予測残差に対し逆非線形変換を行い、その結果得られる逆非線形変換適用済み逆量子化予測残差を加算部270に出力する。
 加算部270には、残差逆非線形変換部269からの逆非線形変換適用済み逆量子化予測残差と、予測値生成部272からの予測値が入力される。加算部270は、逆非線形変換適用済み逆量子化予測残差と予測値を加算して局所復号データを生成し、ワークバッファ271に出力する。ワークバッファ271は、加算部270からの局所復号データを一時的に記録し、必要に応じて予測値生成部272に出力する。
 予測値生成部272は、そこに入力される圧縮方法、参照チャンネルID、参照パラメータ、及び予測方法に従い、ワークバッファ271からの局所復号データから予測値を生成し、加算部264及び加算部270に出力する。
 なお、非線形変換テーブル、残差非線形変換テーブル、及びエントロピ符号化テーブルは、予め複数用意されて内部メモリ等に記録されており、非線形変換部263、残差非線形変換部265、エントロピ符号化部267、及び残差逆非線形変換部269は、必要に応じてIDに応じたテーブルを読み出して用いることができる。
<復号部の構成>
 図49は、図33の復号部223の構成例を示す図である。
 復号部223は、ネットワーク事前解析器210から入力される符号化制御情報に基づいて、メモリ224に一時的に記録された特徴量ごとのストリーム(圧縮ストリーム又は非圧縮ストリーム)から特徴量を再構成し、演算部221に出力する。なお、再構成された特徴量は、特徴量全体の復号が完了した後に出力しても、部分的に再構成された結果を順次出力してもよい。
 図49において、復号部223は、スイッチ281、エントロピ復号部282、逆量子化部283、残差逆非線形変換部284、加算部285、逆非線形変換部286、データ並び替え部287、ワークバッファ288、及び予測値生成部289を有する。復号部223に入力される符号化制御情報は、特徴量ごとのターゲットレートと圧縮方法と制御パラメータを含み、それらの情報(パラメータ)に従って、復号部223の各部が動的に制御される。
 ターゲットレートは、逆量子化部283に入力される。圧縮方法は、スイッチ281と、データ並び替え部287と、予測値生成部289に入力される。制御パラメータのうち、非線形変換テーブルIDは逆非線形変換部286、残差非線形変換テーブルIDは残差逆非線形変換部284、エントロピ符号化テーブルIDはエントロピ復号部282にそれぞれ入力される。また、制御パラメータのうち、予測算出パラメータに含まれる参照チャンネルID、参照パラメータ、及び予測方法は、予測値生成部289に入力される。図49において、復号部223には、特徴量#Nのデータと、特徴量#Nの符号化制御情報が入力されている。
 スイッチ281には、メモリ224に一時的に記録された特徴量のストリームが入力される。スイッチ281は、そこに入力される圧縮方法に従い、入力されたストリームの出力先を切り替える。すなわち、スイッチ281は、圧縮方法の指定が非圧縮だった場合、上側の端子に接続され、入力された非圧縮ストリームをデータ並び替え部287に出力する。また、スイッチ281は、圧縮方法が指定されている場合、下側の端子に接続され、入力された圧縮ストリームをエントロピ復号部282に出力する。
 エントロピ復号部282は、そこに入力されるエントロピ符号化テーブルIDにより特定されるエントロピ符号化テーブルに従い、スイッチ281を介して入力される圧縮ストリームに対し、エントロピ復号を行って量子化予測残差を再構成し、逆量子化部283に出力する。
 逆量子化部283は、そこに入力されるターゲットレートに従い、エントロピ復号部282からの量子化予測残差に対し、予測残差の逆量子化を行い、その結果得られる逆量子化予測残差を残差逆非線形変換部284に出力する。
 残差逆非線形変換部284は、そこに入力される残差非線形変換テーブルIDにより特定される残差非線形変換テーブルに従い、逆量子化部283からの逆量子化予測残差に対し逆非線形変換を行い、その結果得られる逆非線形変換適用済み逆量子化予測残差を加算部285に出力する。
 加算部285には、残差逆非線形変換部284からの逆非線形変換適用済み逆量子化予測残差と、予測値生成部289からの予測値が入力される。加算部285は、逆非線形変換適用済み逆量子化予測残差と予測値を加算して局所復号データを生成し、逆非線形変換部286及びワークバッファ288に出力する。
 逆非線形変換部286は、そこに入力される非線形変換テーブルIDにより特定される非線形変換テーブルに従い、加算部285からの局所復号データに対し逆非線形変換を行い、その結果得られる逆非線形変換適用済み局所復号データを、データ並び替え部287に出力する。
 データ並び替え部287には、スイッチ281を介して非圧縮ストリームとして入力されるブロック化特徴量、又は逆非線形変換部286から逆非線形変換適用済み局所復号データとして入力されるブロック化特徴量が入力される。データ並び替え部287は、ブロック化特徴量のデータを、元の特徴量形式であるテンソル形式(3Dテンソル形式)に再マッピングを行い、その結果得られる特徴量のデータを出力する。
 ワークバッファ288は、加算部285からの局所復号データを一時的に記録し、必要に応じて予測値生成部289に出力する。予測値生成部289は、そこに入力される圧縮方法、参照チャンネルID、参照パラメータ、及び予測方法に従い、ワークバッファ288からの局所復号データから予測値を生成し、加算部285に出力する。
 なお、非線形変換テーブル、残差非線形変換テーブル、及びエントロピ符号化テーブルは、予め複数用意されて内部メモリ等に記録されており、エントロピ復号部282、残差逆非線形変換部284、及び逆非線形変換部286は、必要に応じてIDに応じたテーブルを読み出して用いることができる。
 本開示の第2の構成では、ネットワーク事前解析器210が事前にニューラルネットワークを解析して生成する符号化制御情報に、特徴量のチャンネルごとに、圧縮率と、圧縮方法と、制御パラメータを含めることができる。また、制御パラメータには、非線形変換テーブルIDと、残差非線形変換テーブルIDと、エントロピ符号化テーブルIDと、参照チャンネルID、参照パラメータ、及び予測方法を含む予測算出パラメータを含めることができる。
 制御パラメータを用いることで、より効率的に特徴量を圧縮することができる。例えば、非線形変換テーブルIDにより特定される非線形変換テーブルに従った非線形変換や逆非線形変換と、残差非線形変換テーブルIDにより特定される残差非線形変換テーブルに従った非線形変換や逆非線形変換を行うことで、畳み込み演算等により様々な性質を持つデータである特徴量と予測残差に対し、データ分布特性等を用いて特に重要な部分を保護することができる。これにより、圧縮率の向上による認識率の低減を回避することができる。また、予測算出パラメータを用いた予測値の生成を行うことで、事前に予測方法などが限定されることにより符号化演算量を低減することができる。
<<本開示の第3の構成>>
<DNNの概要と従来の問題点>
 図50は、ディープニューラルネットワーク(DNN)を模式的に表した図である。図50に示すように、DNNでは、多い場合には100層以上の多層の計算レイヤ(Layer)を繰り返すことにより、演算結果(認識結果)を算出する。この各層(レイヤ)の計算結果を、特徴マップ(feature map)と呼んでいる。
 図51は、DNNの各層の構成を示す図である。図51に示すように、DNNの各層は、前層からの特徴マップに対して重み(Weight)データを用いて畳み込みや積和などを施す線形フィルタ処理と、その結果を非線形マッピングして特徴マップを生成する活性化関数処理とから構成される。活性化関数は、各層固有のパラメータ(Parameter)によってその種類や特性が規定される。図52は、活性化関数の一例として、ReLU(Rectified Linear Unit)関数を示している。
 DNNの実装方法として、図53に示すように、ある層(n-1層)の処理を行った後にその計算結果である特徴マップをメモリに一旦格納し、そのデータを用いて次の層(n層)に進むという層ごとの演算方法がある。この種の演算方法では、層内は同じ計算の繰り返しからなるので、演算効率が良い。また、層が進む際に、使用済みとなった特徴マップ領域を廃棄して必要な領域を新たに確保することで、メモリ量を削減できる。しかしながら、特徴マップは各層により大きさが異なり、DNNの入力よりも大きくなる場合がある。そのため、層ごとの演算方法では、最大の特徴マップ分の以上の領域をメモリ上に確保する必要がある。
 図54のフローチャートは、従来のDNN処理の流れを示している。まず、DNNパーサ(DNN Parser)でDNNネットワークを解析する(S51)。続いて、入力データをメモリに書き込んで(S52)、nの初期値として、1を設定する(S53)。そして、nが、N以下であるかとなるかどうかが判定される(S54)。n ≦ N となる場合(S54:Yes)には、以降の処理が繰り返される。すなわち、メモリからデータを読み出して、Layer(n)のパラメータで、n層の処理を実行し(S55)、その演算結果をメモリに書き込み(S56)、nの値をインクリメントする(S57)。なお、nは処理対象の層を示す変数であり、処理対象の最後の層を示す値がNとなる。
 ステップS54乃至S57の処理を繰り返すことで、n > N となった場合(S54:No)、出力データとしてメモリからデータを読み出して(S58)、一連の処理は終了する。DNN処理では、各層(Layer)の処理ごとに、メモリに格納する特徴マップを上書きするため、メモリ量は単純増加するものではない。なお、DNNネットワークの解析(S51)は、予めオフラインで実行しておくことも可能である。
 図55は、従来のDNN処理を実行するDNNシステムの構成と動作を示す図である。図55においては、CPU(Central Processing Unit)31が、DMAC(Direct Memory Access Controller)32にコマンドを発行し、DRAM(Dynamic Random Access Memory)33のデータをDNNプロセッサ34の内部メモリに転送する。
 続いて、CPU31が、DNNプロセッサ34を制御することで処理を実行する。ここでは、次の処理を層数分ループで実行する。すなわち、CPU31が、所望の層のDNNパラメータと内部メモリアドレス情報をROMから読み出してDNNプロセッサ34にセットする。次に、CPU31が、startパルスでDNNプロセッサ34を起動し、DNNプロセッサ34は、処理終了したとき、finishパルスを返す。これらの処理が層数分ループして実行された後に、CPU31が、DMAC32にコマンドを発行し、DNNプロセッサ34の内部メモリの演算結果を、DRAM33に転送する。
 メモリ消費量の多い特徴マップに、EBC(Embedded Block Coding)のようなメモリ圧縮技術を施すことで、メモリ量を削減することができる。図56に示すように、メモリに対して圧縮部(Enc)と復号部(Dec)を設けることで、圧縮された特徴マップ(Compressed Feature Map)を、メモリに格納することが可能となる。この場合の圧縮には、高速性やランダムアクセス性を重視した固定長サイズの非可逆圧縮と、認識性能を重視したロスレス(Lossless)の可逆圧縮がある。非可逆圧縮は、より圧縮歪を少なくして、認識性能の劣化を減らすことが求められる。一方で、可逆圧縮は、圧縮後のサイズをより小さくすることが求められる。
<本開示の概要>
 画像信号圧縮では、隣接するデータとの相関が強いため、差分パルス符号変調(DPCM:Differential Pulse-Code Modulation)を用いて隣接するデータとの差分を求めることで、差分データの頻度に偏りをつくって圧縮を行うのが一般的である。DPCMモードによる圧縮の例を、図57に示している。図57においては、入力データを量子化(Quantize)した後に、予測(Pred:Prediction)した予測値との差分を求めて、可変長符号化(VLC:Variable Length Coding)とリファインメント(Refinement)を実施することで、ビットストリームが出力される。ここでは、図58に示すように、頻度(Probability)が一定となる入力データ(図58のA)を、隣接データ(予測値)との差分を取ることで、それにより得られる差分データ(図58のB)では、頻度に偏りが生じている。
 DNNの特徴量データでは、処理の関係上、チャンネルインタリーブが施されるのが一般的である。チャンネルインタリーブが施されている場合、相関のある同一チャンネルのデータを得るためには、並び替えを行う必要があり、そのためのメモリ等のハードウェア(HW)が必要となる。図59は、チャンネルインタリーブを施したデータの並び替えの例を示す図である。図59においては、上段のチャンネルインタリーブが施されたデータが、下段ではチャンネルごとに並び替えられている。
 DNNの特徴量データでは、隣接データとの差分を取らずとも、特徴量自身にデータの頻度の偏りがあるため、そのまま可変長符号化等の統計的性質を用いた圧縮が可能となる。以下、この圧縮方法をダイレクト圧縮(Direct Compression)と呼ぶ。図60は、ダイレクト圧縮モードによる圧縮の例を示す図である。図60においては、入力データ(特徴量データ)を量子化(Quantize)した後に、そのまま可変長符号化(VLC)とリファインメントを実施することで、ビットストリームを出力している。なお、以下の説明では、入出力される特徴量は、8ビットに量子化したものを用いて説明する。
 DNNの特徴量データにおける頻度の偏りには、少なくとも非対称のものと対称のものがある。非対称のものは、最頻値に対して、正(又は負)にのみ分布があり、最頻値から離れるにしたがって頻度が下がる。特徴量データの頻度の偏りが非対称となる場合の例を、図61、図62に示している。図61は、縦軸を頻度(Probability)、横軸を値(Value)とした場合のヒストグラムを示しており、最頻値に対して正にのみ分布が存在し、横軸の値が最頻値から離れるにしたがって、縦軸の頻度が低下している。図62においても同様である。
 一方で、対称のものは、形状が完全に左右対称とは限らないが、最頻値に対して正負双方に分布があり、最頻値から離れるにしたがって頻度が下がる。特徴量データの頻度の偏りが対称となる場合の例を、図63、図64に示している。図63は、縦軸を頻度、横軸を値とした場合のヒストグラムを示しており、最頻値に対して正負双方に分布が存在し、横軸の値が最頻値から離れるにしたがって、縦軸の頻度が低下している。図64においても同様である。
 そのため、ダイレクト圧縮を実施するに際しては、これらの2つのパターンに対応する必要がある。ここで、これらの最頻値の値は固定ではなく、ネットワークモデル、またその層ごとに異なっているため、それを考慮する必要がある。これは、特徴量を量子化する手法やデータ自身の形状などに起因するものである。
 これらの問題を解決するために、本開示では、前処理と後処理を導入する。すなわち、圧縮(符号化)側では、前処理と符号化部分を組(ペア)にする一方で、復号(伸張)側では、復号部分と後処理を組(ペア)にする。具体的には、本開示の第3の構成は、上述した本開示の第2の構成(図33の構成)に対応した構成を採用することができる。例えば、図33の構成に対応した構成を採用した場合、図65に示すように、符号化側の圧縮部222(図33)において、前処理部511を設けて、前処理部511が、可変パラメータに基づき、入力DNNの特徴量データ(D1)に当該特徴量に応じた補正(オフセット)を施すことにより、符号化部512が想定する固定の最頻値(例えば最頻値0固定)の位置に揃える処理を行う。これにより、前処理部511による補正後(オフセット後)の特徴量データ(D2)が符号化部512に入力され、符号化が行われる。
 一方で、図66に示すように、復号側の復号部223(図33)において、復号部521が復号を行うことで得られる復号後の特徴量データ(D3)は最頻値が固定(例えば最頻値0固定)されているので、後処理部522を設けて、後処理部522が、可変パラメータに基づき、当該特徴量に応じた補正(逆オフセット)を施すことにより、元の特徴量データの分布に戻す処理を行う。これにより、後処理部522による補正後(逆オフセット後)の特徴量データ(D4)の分布は、元の特徴量データ(D1)の分布と同じになる。
<ネットワーク事前解析器と機械学習演算器の構成と動作>
 以上のようにして、DNNの特徴量の圧縮復号(圧縮伸張)が可能となるが、それぞれのネットワークモデルの各層に応じて、符号化部512と復号部521における非対称と対称の選択するための符号化モード、及び前処理部511と後処理部522における補正値(オフセット値)を決定する必要がある。符号化モードと補正値を含むパラメータを、圧縮パラメータと呼ぶ。符号化モードは、非対称符号化器と対称符号化器、又は非対称復号器と対称復号器を切り替えるための切り替え情報(符号化器切り替え情報)である。補正値(オフセット値)は、補正値情報である。つまり、圧縮パラメータは、特徴量の圧縮モデルを複数切り替えて用いるための切り替え情報と、特徴量をそれぞれの圧縮モデルに適合させるための補正値情報とを含む。
 圧縮パラメータは、DNNの推論時に決定するのではなく、いくつかのテスト入力を用いた事前のオフライン処理で決定することができる。オフライン処理は、ネットワークモデル決定時に一度だけ行えばよい。例えば、圧縮パラメータは、図33のネットワーク事前解析器210による事前のオフライン処理で決定することができる。圧縮パラメータは、符号化制御情報に含めることができる。
 図67は、ネットワーク事前解析器210による圧縮パラメータの決定の例を示す図である。図67において、ネットワーク事前解析器210は、そこに入力されるテスト入力のデータ群(サンプルデータ群)を解析して、各層の圧縮パラメータを決定する。圧縮パラメータは、符号化モードと補正値を含み、層ごとに決定される。ネットワーク事前解析器210は、全層の圧縮パラメータを、符号化制御情報として機械学習演算器211(図33)に出力する。図68は、機械学習演算器211による推論処理の例を示す図である。図68において、機械学習演算器211には、符号化制御情報としての全層分の圧縮パラメータが入力される。DNNの推論時において、圧縮部222では、圧縮パラメータに基づき、前処理や符号化などの処理が行われ、復号部223では、圧縮パラメータに基づき、復号や後処理などの処理が行われる。
 図69のフローチャートは、機械学習演算器211によるDNN処理の流れを示している。まず、DNNパーサでDNNネットワークを解析する(S71)。続いて、入力データを圧縮してメモリに書き込んで(S72)、nの初期値として、1を設定する(S73)。そして、n ≦ N である場合(S74:Yes)には、以降の処理が繰り返される。すなわち、Layer(n-1)のデータが圧縮されている場合(S75:Yes)、Layer(n-1)の圧縮パラメータでメモリのデータを伸張して読み出す(S76)。一方で、Layer(n-1)のデータが圧縮されていない場合(S75:No)、そのままデータをメモリから読み出す(S77)。なお、n = 1 であるとき、つまり、Layer(0)では圧縮された入力データがメモリに格納された状態であるため、常に伸張の処理を行う。
 ステップS76又はS77が終了すると、Layer(n)のパラメータでn層の処理を実行する(S78)。続いて、Layer(n)のデータを圧縮する場合(S79:Yes)、Layer(n)の圧縮パラメータでデータを圧縮してメモリに書き込む(S80)。一方で、Layer(n)のデータを圧縮しない場合(S79:No)、そのままデータをメモリに書き込む(S81)。ステップS80又はS81が終了したとき、nの値をインクリメントする。
 ステップS74乃至S82の処理を繰り返すことで、n > N となった場合(S74:No)に、Layer Nのデータが圧縮されているとき(S83:Yes)、Layer Nの圧縮パラメータでメモリのデータを伸張し、出力データとして読み出す(S84)。一方で、Layer Nのデータが圧縮されていない場合(S83:No)、出力データとして、データをそのままメモリから読み出す(S85)。ステップS84又はS85が終了すると、一連の処理は終了する。なお、DNNネットワークの解析(S71)は、予めオフラインで実行しておくことも可能である。
 図70は、DNN処理を実行するDNNシステムの構成と動作を示す図である。図70においては、CPU501が、DMAC502にコマンドを発行し、DRAM503のデータをDNNプロセッサ504の内部メモリに転送する。
 続いて、CPU501が、DNNプロセッサ504を制御することで処理を実行する。ここでは、次の処理を層数分ループで実行する。すなわち、CPU501が、所望の層のDNNパラメータと内部メモリアドレス情報をROMから読み出してDNNプロセッサ504にセットする。このとき、CPU501は、必要に応じて圧縮パラメータを、ROMから読み出してセットする。次に、CPU501が、startパルスでDNNプロセッサ504を起動し、DNNプロセッサ504は、処理終了したとき、finishパルスを返す。これらの処理が層数分ループして実行された後に、CPU501が、DMAC502にコマンドを発行し、DNNプロセッサ504の内部メモリの演算結果を、DRAM503に転送する。
 図71は、ネットワーク事前解析器210による圧縮パラメータ決定処理の流れを示すフローチャートである。ネットワーク事前解析器210は、テスト入力のデータ群(サンプルデータ群)を解析することで、n層の特徴量データの最頻値と最小値を算出し(S91)、最小値+閾値Thの値が、最頻値以上となるかどうかを判定する(S92)。例えば、閾値Thは、圧縮パラメータ決定時の各種条件に応じた最適な値を適宜設定することができる。
 ネットワーク事前解析器210は、ステップS92の判定結果に応じて圧縮パラメータを決定する。すなわち、最小値+閾値Th ≧ 最頻値 である場合(S92:Yes)、「非対称」である符号化モードと、「最頻値 - 符号化器入力最小値」である補正値が決定される(S93)。また、最小値+閾値Th < 最頻値 である場合(S92:No)、「対称」である符号化モードと、「最頻値 - 符号化器入力中央値」である補正値が決定される(S94)。
 例えば、図72に示すように、最小値(最小値+閾値Th)が最頻値よりも小さい場合には、「対称」である符号化モードと、「最頻値 - 符号化器入力中央値」である補正値とが、圧縮パラメータとして決定される。ステップS93又はS94が終了すると、n層の圧縮パラメータが決定され、一連の処理は終了する。圧縮を施す各層について一連の処理を繰り返すことで、全層の圧縮パラメータが決定される。
 例えば、圧縮部222において、最小値近辺のデータをより圧縮できることを特徴とする符号化器と、中央値近辺のデータをより圧縮できることを特徴とする符号化器とを設けて、前者の符号化器を、頻度の偏りが非対称となる特徴量データに対する符号化である非対称符号化を行う非対称符号化器とし、後者の符号化器を、頻度の偏りが対称となる特徴量データに対する符号化である対称符号化を行う対称符号化器とすることができる。圧縮部222では、決定された圧縮パラメータを用いることで、非対称符号化器と対称符号化器を切り替えて用いるとともに、特徴量データを非対称符号化器と対称符号化器のそれぞれに適合させることができる。また、復号部223において、最小値近辺のデータをより復号できることを特徴とする復号器と、中央値近辺のデータをより復号できることを特徴とする復号器とを設けて、前者の復号器を、頻度の偏りが非対称となる特徴量データに対する復号である非対称復号を行う非対称復号器とし、後者の復号器を、頻度の偏りが対称となる特徴量データに対する復号である対称復号を行う対称復号器とすることができる。復号部223では、決定された圧縮パラメータを用いることで、非対称復号器と対称復号器を切り替えて用いるとともに、特徴量データを非対称復号器と対称復号器のそれぞれに適合させることができる。
<非対称符号化器の構成>
 図73は、圧縮部222における非対称符号化器512Aの構成例を示す図である。
 図73において、非対称符号化器512Aは、量子化部531、量子化ステップ決定部532、可変長符号化部533、可変長符号テーブル534、リファインメント符号処理部535、及び結合部536を有する。
 量子化部531は、量子化ステップ決定部532により決定された量子化ステップに従い、そこに入力される特徴量データ(入力:0~255)を量子化し、可変長符号化部533及びリファインメント符号処理部535に出力する。なお、量子化ステップ決定部532は、符号化制御情報に含まれるターゲットレート(圧縮率)に基づき、量子化ステップを決定してもよい。
 可変長符号化部533は、可変長符号テーブル534に従い、量子化部531からの量子化データを符号化し、結合部536に出力する。図74は、可変長符号テーブル534の例を示す図である。図74に示すように、可変長符号テーブル534は、入力値と可変長符号語とを対応付けたテーブルである。
 リファインメント符号処理部535は、量子化部531からの量子化データに対し、リファインメント符号処理を施し、結合部536に出力する。結合部536は、可変長符号化部533からの符号化データと、リファインメント符号処理部535からの符号化データとを結合し、ビットストリームとして出力する。
<非対称復号器の構成>
 図75は、復号部223における非対称復号器521Aの構成例を示す図である。
 図75において、非対称復号器521Aは、分離部541、可変長復号部542、可変長符号テーブル543、逆量子化部544、リファインメント復号処理部545、及び結合部546を有する。
 分離部541は、そこに入力されるビットストリームを分離し、分離して得られた符号化データを、可変長復号部542及びリファインメント復号処理部545に出力する。また、分離部541は、入力ビットストリームから得られた量子化ステップを、逆量子化部544に出力する。なお、量子化ステップは、符号化制御情報に含まれるターゲットレート(圧縮率)に基づいて決定してもよい。
 可変長復号部542は、可変長符号テーブル543に従い、分離部541からの符号化データを復号し、逆量子化部544に出力する。図76は、可変長符号テーブル543の例を示す図である。図76に示すように、可変長符号テーブル543は、入力値と可変長符号語とを対応付けたテーブルであり、図74の可変長符号テーブル534に対応している。逆量子化部544は、分離部541からの量子化ステップに従い、可変長復号部542からの復号データを逆量子化し、結合部546に出力する。
 リファインメント復号処理部545は、分離部541からの符号化データに対し、リファインメント復号処理を施し、結合部546に出力する。結合部546は、逆量子化部544からの逆量子化復号データと、リファインメント復号処理部545からの復号データとを結合し、その結果得られる特徴量データ(出力:0~255)を出力する。
<対称符号化器の構成>
 図77は、圧縮部222における対称符号化器512Bの構成例を示す図である。
 図77において、対称符号化器512Bは、量子化部551、量子化部552、量子化ステップ決定部553、減算部554、可変長符号化部555、可変長符号テーブル556、リファインメント符号処理部557、及び結合部558を有する。
 量子化部551は、量子化ステップ決定部553により決定された量子化ステップに従い、そこに入力される特徴量データ(入力:0~255)を量子化し、減算部554及びリファインメント符号処理部557に出力する。量子化部552は、量子化ステップ決定部553により決定された量子化ステップに従い、そこに入力される特徴量データ(中央値:128)を量子化し、減算部554に出力する。なお、量子化ステップ決定部553は、符号化制御情報に含まれるターゲットレート(圧縮率)に基づき、量子化ステップを決定してもよい。
 減算部554は、量子化部551からの量子化データから、量子化部552からの量子化データを引く減算を行い、その減算の結果を可変長符号化部555に出力する。可変長符号化部555は、可変長符号テーブル556に従い、減算部554からの量子化データを符号化し、結合部558に出力する。図78は、可変長符号テーブル556の例を示す図である。図78に示すように、可変長符号テーブル556は、入力値と可変長符号語とを対応付けたテーブルである。
 リファインメント符号処理部557は、量子化部551からの量子化データに対し、リファインメント符号処理を施し、結合部558に出力する。結合部558は、可変長符号化部555からの符号化データと、リファインメント符号処理部557からの符号化データとを結合し、ビットストリームとして出力する。
<対称復号器の構成>
 図79は、復号部223における対称復号器521Bの構成例を示す図である。
 図79において、対称復号器521Bは、分離部561、可変長復号部562、可変長符号テーブル563、量子化部564、加算部565、逆量子化部566、リファインメント復号処理部567、及び結合部568を有する。
 分離部561は、そこに入力されるビットストリームを分離し、分離して得られた符号化データを、可変長復号部562及びリファインメント復号処理部567に出力する。また、分離部561は、入力ビットストリームから得られた量子化ステップを、量子化部564及び逆量子化部566に出力する。なお、量子化ステップは、符号化制御情報に含まれるターゲットレート(圧縮率)に基づいて決定してもよい。
 可変長復号部562は、可変長符号テーブル563に従い、分離部561からの符号化データを復号し、加算部565に出力する。図80は、可変長符号テーブル563の例を示す図である。図80に示すように、可変長符号テーブル563は、入力値と可変長符号語とを対応付けたテーブルであり、図78の可変長符号テーブル556に対応している。量子化部564は、分離部561からの量子化ステップに従い、そこに入力される特徴量データ(中央値:128)を量子化し、加算部565に出力する。
 加算部565は、可変長復号部562からの復号データ(量子化データ)と、量子化部564からの量子化データとを足し合わせる加算を行い、その演算結果を逆量子化部566に出力する。逆量子化部566は、分離部561からの量子化ステップに従い、加算部565からの復号データを逆量子化し、結合部568に出力する。
 リファインメント復号処理部567は、分離部561からの符号化データに対し、リファインメント復号処理を施し、結合部568に出力する。結合部568は、逆量子化部566からの逆量子化復号データと、リファインメント復号処理部567からの復号データとを結合し、その結果得られる特徴量データ(出力:0~255)を出力する。
<圧縮部の構成>
 図81は、機械学習演算器211における圧縮部222の構成例を示す図である。
 図81において、圧縮部222は、前処理部511、非対称符号化器512A(図73)、対称符号化器512B(図77)、及びスイッチ513を有する。圧縮部222において、n層の特徴量データが入力される場合、ネットワーク事前解析器210により決定されたn層の圧縮パラメータが入力される。ここでは、圧縮パラメータに含まれる情報のうち、補正値情報が前処理部511に入力され、切り替え情報がスイッチ513に入力される。
 前処理部511は、補正値情報に含まれる補正値に基づいて、そこに入力される特徴量データを補正し、非対称符号化器512A及び対称符号化器512Bに出力する。非対称符号化器512Aは、前処理部511からの補正後の特徴量データに対し、非対称符号化を行う。対称符号化器512Bは、前処理部511からの補正後の特徴量データに対し、対称符号化を行う。スイッチ513は、切り替え情報に含まれる符号化モードに従い、符号化モードが非対称である場合、非対称符号化器512Aの出力を選択し、符号化モードが対称である場合、対称符号化器512Bの出力を選択する。スイッチ513により選択された符号化器の出力が、圧縮特徴量データとして出力される。なお、前処理部511の後段にスイッチを設けて切り替え情報を入力することで、符号化モードに応じて前処理部511の出力先を切り替えるようにしてもよい。
<復号部の構成>
 図82は、機械学習演算器211における復号部223の構成例を示す図である。
 図82において、復号部223は、非対称復号器521A(図75)、対称復号器521B(図79)、後処理部522、スイッチ523、及びスイッチ524を有する。復号部223において、n層の圧縮特徴量データが入力される場合、ネットワーク事前解析器210により決定されたn層の圧縮パラメータが入力される。ここでは、圧縮パラメータに含まれる情報のうち、切り替え情報がスイッチ523とスイッチ524に入力され、補正値情報が後処理部522に入力される。
 スイッチ523は、切り替え情報に含まれる符号化モードに従い、符号化モードが非対称である場合、圧縮特徴量データを非対称復号器521Aに入力し、符号化モードが対称である場合、圧縮特徴量データを対称復号器521Bに入力する。非対称復号器521Aは、スイッチ523を介して入力される圧縮特徴量データに対し、非対称復号を行う。対称復号器521Bは、スイッチ523を介して入力される圧縮特徴量データに対し、対称復号を行う。
 スイッチ524は、切り替え情報に含まれる符号化モードに従い、符号化モードが非対称である場合、非対称復号器521Aの出力を選択し、符号化モードが対称である場合、対称復号器521Bの出力を選択する。後処理部522は、補正値情報に含まれる補正値に基づいて、スイッチ524を介して入力される特徴量データを補正して出力する。
<前処理・後処理:非対称用>
 図83は、図81の前処理部511における非対称用の前処理を示す図である。図83に示すように、前処理部511では、頻度の偏りが非対称となる特徴量データが入力される場合、減算部510によって、入力データから、補正値(最頻値-符号化器入力最小値)を引く減算を行うことで、非対称符号化器512Aが想定する固定の最頻値の位置に揃える補正(オフセット)が施され、出力データとして出力される。
 図84は、図82の後処理部522における非対称用の後処理を示す図である。図84に示すように、後処理部522では、非対称復号器521Aから、頻度の偏りが非対称となる特徴量データが入力される場合、加算部520によって、入力データに、補正値(最頻値-符号化器入力最小値)を足し合わせる加算を行うことで、最頻値の位置を戻して元の特徴量データの分布に戻す補正(逆オフセット)が施され、出力データとして出力される。
<前処理・後処理:対称用>
 図85は、図81の前処理部511における対称用の前処理を示す図である。図85に示すように、前処理部511では、頻度の偏りが対称となる特徴量データが入力される場合、減算部510によって、入力データから、補正値(最頻値-符号化器入力中央値)を引く減算を行うことで、対称符号化器512Bが想定する固定の最頻値の位置に揃える補正(オフセット)が施され、出力データとして出力される。
 図86は、図82の後処理部522における対称用の後処理を示す図である。図86に示すように、後処理部522では、対称復号器521Bから、頻度の偏りが対称となる特徴量データが入力される場合、加算部520によって、入力データに、補正値(最頻値-符号化器入力中央値)を足し合わせる加算を行うことで、最頻値の位置を戻して元の特徴量データの分布に戻す補正(逆オフセット)が施され、出力データとして出力される。
<リファインメント処理>
 図87は、リファインメント符号処理やリファインメント復号処理で実施されるリファインメント処理の例を示す図である。図87においては、符号化するブロック状のデータを、ビットイメージで示している。図87において、横方向がブロック幅(Block Width)、縦方向がビット深度(Bit Depth)を示し、上側がMSB(Most Significant Bit)で、下側がLSB(Least Significant Bit)となる。量子化が線Lで行われたとしたとき、線Lより下側のドット模様の部分は、VLC化されずにビットイメージそのもので符号化される。このドット模様の部分を、リファインメント(Refinement)と呼ぶ。ビット総数は、データブロックごとに計算される。所望のビット量(bps×Blockサイズ)から、VLCで伝送される符号量とヘッダ情報を減じたものとなる。リファインメントの伝送順序はビットプレーンで行われ、MSB側から行われる。ビットプレーン内の伝送順は特に規定はないが、符号化側と復号側で正しく揃える必要がある。
<他の構成例>
 上述した説明では、機械学習演算器211における圧縮部222(図81)において、非対称符号化器512Aと対称符号化器512Bのそれぞれの符号化器に対し、共通の前処理部511を1つ設けた構成を示したが、前処理部511をそれぞれの符号化器に対して個別に設けて、切り替えて使い分けてもよい。図88は、圧縮部222の他の構成例を示す図である。図88において、圧縮部222は、非対称用前処理部511A、対称用前処理部511B、非対称符号化器512A、対称符号化器512B、及びスイッチ514を有する。
 非対称用前処理部511Aは、補正値情報に含まれる補正値に基づいて、非対称用の前処理(図83)を行うことで、そこに入力される特徴量データを補正し、非対称符号化器512Aに出力する。非対称符号化器512Aは、非対称用前処理部511Aからの補正後の特徴量データに対し、非対称符号化を行う。
 対称用前処理部511Bは、補正値情報に含まれる補正値に基づいて、対称用の前処理(図85)を行うことで、そこに入力される特徴量データを補正し、対称符号化器512Bに出力する。対称符号化器512Bは、対称用前処理部511Bからの補正後の特徴量データに対し、対称符号化を行う。
 スイッチ514は、切り替え情報に含まれる符号化モードに従い、符号化モードが非対称である場合、非対称符号化器512Aの出力を選択し、符号化モードが対称である場合、対称符号化器512Bの出力を選択する。スイッチ514により選択された符号化器の出力が、圧縮特徴量データとして出力される。
 また、上述した説明では、機械学習演算器211における復号部223(図82)において、非対称復号器521Aと対称復号器521Bのそれぞれの復号器に対し、共通の後処理部522を1つ設けた構成を示したが、後処理部522をそれぞれの復号器に対して個別に設けて、切り替えて使い分けてもよい。図89は、復号部223の他の構成例を示す図である。図89において、復号部223は、非対称復号器521A、対称復号器521B、非対称用後処理部522A、対称用後処理部522B、スイッチ525、及びスイッチ526を有する。
 スイッチ525は、切り替え情報に含まれる符号化モードに従い、符号化モードが非対称である場合、圧縮特徴量データを非対称復号器521Aに入力し、符号化モードが対称である場合、圧縮特徴量データを対称復号器521Bに入力する。非対称復号器521Aは、スイッチ525を介して入力される圧縮特徴量データに対し、非対称復号を行い、非対称用後処理部522Aに出力する。非対称用後処理部522Aは、補正値情報に含まれる補正値に基づいて、非対称用の後処理(図84)を行うことで、そこに入力される特徴量データを補正する。
 対称復号器521Bは、スイッチ525を介して入力される圧縮特徴量データに対し、対称復号を行い、対称用後処理部522Bに出力する。対称用後処理部522Bは、補正値情報に含まれる補正値に基づいて、対称用の後処理(図86)を行うことで、そこに入力される特徴量データを補正する。スイッチ526は、切り替え情報に含まれる符号化モードに従い、符号化モードが非対称である場合、非対称用後処理部522Aの出力を選択し、符号化モードが対称である場合、対称用後処理部522Bの出力を選択する。スイッチ526により選択された後処理部の出力が、特徴量データとして出力される。
<オールゼロフラグの例>
 上述した符号化器と復号器の説明において、量子化したデータを可変長符号化(VLC)するとしたが、量子化したデータが全てゼロになる場合も多くあることから、オールゼロフラグ(all zero flag)を規定して圧縮ストリームに適用することで、より効率良く圧縮を行うことができる。量子化したデータがゼロである場合、オールゼロフラグを"1"とし、VLC部分は伝送しない。一方で、量子化したデータに非ゼロが含まれる場合、オールゼロフラグを"0"とし、VLC部分を伝送する。ただし、頻度の偏りが対称となる場合、量子化したデータから、量子化した中央値を引いているが、この場合も同様に適用可能である。
 図90は、量子化したデータに非ゼロが含まれる場合の圧縮ストリームの構成例を示す図である。図90において、量子化ステップに続く、オールゼロフラグが"0"となり、VLC部分が伝送される。また、リファインメントも伝送される。一方で、図91は、量子化したデータが全てゼロになる場合の圧縮ストリームの構成例を示す図である。図91においては、オールゼロフラグが"1"となり、VLC部分は伝送されない。
 なお、上述した説明では、DNNの特徴量データには、頻度の偏りには少なくとも非対称のものと対称のものがあるとしたが、それ以外の分布モデルを用意して切り替えて使用することも可能である。さらに、サンプルデータによる特徴量データの分布に基づくモデルを新規作成し、それも含めて切り替えて使用することも可能である。予測値との差分を取ることなく圧縮できるモデルについて説明したが、切り替え時には予測値との差分を取るモデルも含めて、切り替えて使用することも可能である。
 以上のように、本開示の第3の構成では、DNN等の機械学習を処理時の中間データ、特に特徴量データ(特徴マップ)を圧縮して限られたメモリ容量のプロセッサ等でも大規模な演算を実現するために、圧縮パラメータを用いて、複数の符号化方式(復号方式)、並びに前処理及び後処理を切り替えることで、効率よく圧縮できるようにしている。
 すなわち、本開示の第3の構成では、DNNの特徴マップを圧縮する際に、特徴量のデータ分布に応じて、異なる圧縮方法とそれぞれに対応したデータの前処理からなる複数の組合せを切り替えることを特徴とする符号化方式を提案している。例えば、異なる圧縮方法には、少なくとも、次の2つの圧縮方法を含めて切り替えて用いることができる。具体的には、1つ目の圧縮方法は、データの度数分布的に最小値の近傍で頻度が高く、値が大きくなるにつれて頻度が低くなるモデル(第1圧縮モデル)に適した圧縮方法である。2つ目の圧縮方法は、データの度数分布的に値の中央で頻度が高く、かつ、値が中央より大きく、あるいは、小さくなるにつれて頻度が低くなるモデル(第2圧縮モデル)に適した圧縮方法である。
 また、本開示の第3の構成では、DNNの特徴マップを復号する際に、特徴量のデータ分布に応じて、異なる復号方法(伸張方法)とそれぞれに対応したデータの後処理からなる複数の組み合わせを切り替えることを特徴とする復号方式を提案している。例えば、異なる復号方法は、少なくとも、次の2つの復号方法を含めて切り替えて用いることができる。具体的には、1つ目の復号方法は、データの度数分布的に最小値の近傍で頻度が高く、値が大きくなるにつれて頻度が低くなるモデル(第1圧縮モデル)に適した復号方法である。2つ目の復号方法は、データの度数分布的に値の中央で頻度が高く、かつ、値が中央よりも大きく、あるいは小さくなるにつれて頻度が低くなるモデル(第2圧縮モデル)に適した復号方法である。
 ただし、上述した圧縮方法と復号方法において、データの分布は、DNNの推論時の入力そのものではなく、事前に行われるオフライン処理でその分布に応じた圧縮パラメータが決定され、DNNの推論時に用いられる。すなわち、ネットワーク事前解析器210が、特徴量のサンプルデータを解析して、特徴量の圧縮モデルを複数切り替えて用いるための切り替え情報と、特徴量をそれぞれの圧縮モデルに適合させるための補正値情報とを含む圧縮パラメータを生成し、生成した圧縮パラメータを制御情報に含めることができる。このとき、圧縮モデルには、予測値との差分を取らずに圧縮可能とする圧縮モデルであるダイレクト圧縮を含む。機械学習演算器211では、圧縮部222が、補正値情報に基づいて、入力される特徴量を補正して、第1圧縮モデル又は第2圧縮モデルに適合させる前処理を行い、前処理で補正した補正特徴量に対し、第1圧縮モデル又は第2圧縮モデルに応じた符号化を行い、切り替え情報に基づいて、第1圧縮モデル又は第2圧縮モデルに応じた符号化で得られた圧縮特徴量を選択してメモリ224に記録する。また、復号部223が、メモリ224に一時的に格納された圧縮特徴量に対し、第1圧縮モデル又は第2圧縮モデルに応じた復号を行い、切り替え情報に基づいて、第1圧縮モデル又は第2圧縮モデルに応じた復号で得られた補正特徴量を選択し、補正値情報に基づいて、選択した補正特徴量を、補正前の特徴量に戻す後処理を行う。
 このように、本開示の第3の構成では、圧縮パラメータを用いて、複数の符号化方式(復号方式)、並びに前処理及び後処理を切り替えて、効率よく特徴量を圧縮することで、メモリ容量を削減し、消費電力の低減や処理速度といったパフォーマンスの向上を実現することができる。また、並び替え回路を使用することなく、複数の符号化方式(復号方式)、並びに前処理及び後処理を切り替えて特徴量を効率よく圧縮することで、より確実に推論を行って認識性能劣化を抑えることができる。
<<変形例>>
 上述した説明では、本開示を適用した機器として、機械学習推論器100(図5)と機械学習推論器200(図33)を示したが、機械学習推論器100(図5)と機械学習推論器200(図33)の機能は、監視カメラ、ワークステーション、サーバなどの情報処理装置に搭載して実行することができる。また、機械学習推論器100(図5)におけるネットワーク事前解析器110と機械学習演算器111が別の装置として構成されてもよい。例えば、ネットワーク事前解析器110を含む第1の装置と、機械学習演算器111を含む第2の装置とが、ネットワークを介して接続されてもよい。機械学習推論器200(図33)におけるネットワーク事前解析器210と機械学習演算器211についても同様に別の装置として構成されてもよい。
 圧縮部122(図5)と圧縮部222(図33)で用いられる圧縮方式は、符号化制御情報を適用可能な圧縮方式であれば、他の圧縮方式を用いてもよい。復号部123(図5)と復号部223(図33)で用いられる復号方式は、符号化制御情報を適用可能な復号方式であれば、他の復号方式を用いてもよい。なお、符号化制御情報には、圧縮率、圧縮方法、及び制御パラメータのうち、少なくともいずれかの情報(パラメータ)が含まれていればよい。制御パラメータには、非線形変換テーブルID、予測算出パラメータ、残差非線形変換テーブルID、及びエントロピ符号化テーブルIDのうち、少なくともいずれかの情報(パラメータ)が含まれていればよい。予測算出パラメータには、参照チャンネルID、参照パラメータ、及び予測方法のうち、少なくともいずれかの情報(パラメータ)が含まれていればよい。
 上述した説明において、ニューラルネットワークで処理される特徴量は、中間データであるとも言える。本開示は、符号化制御情報を用いて、中間データとしての画像データの圧縮と復号を制御しても構わない。例えば、非線形変換テーブルと残差非線形変換テーブルを、画像データに対して適用することができる。具体的には、機械学習推論器200(図33)において、ネットワーク事前解析器210と機械学習演算器211を、例えば、次のように構成すればよい。
 すなわち、ネットワーク事前解析器210は、画像データのサンプルデータに基づいて、画像データの圧縮を制御するための符号化制御情報を生成する。より具体的には、ネットワーク事前解析器210においては、非線形変換テーブル選定部321が、画像データのサンプルデータの統計値を解析した結果に応じた非線形変換を行うための非線形変換テーブルを選定する。また、残差非線形変換テーブル選定部326が、画像データのサンプルデータと画像データのサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、サンプルデータの統計値を解析した結果に応じた残差非線形変換を行うための残差非線形変換テーブルを選定する。これにより、符号化制御情報には、非線形変換テーブルIDと残差非線形変換テーブルIDを含む制御パラメータが含められる。
 また、機械学習演算器211は、圧縮部222を有し、圧縮部222は、ネットワーク事前解析器210からの符号化制御情報に基づいて、入力される画像データを圧縮する。より具体的には、圧縮部222は、入力される画像データに対し予測値を生成して、画像データと予測値との差分から得られる差分情報をエントロピ符号化することで、画像データを圧縮する圧縮方式を用いている。圧縮部222においては、非線形変換部263が、非線形変換テーブルに従い、入力される画像データに対し、非線形変換を行う。また、残差非線形変換部265が、残差非線形変換テーブルに従い、非線形変換適用済みの画像データと、非線形変換適用済みの画像データに対して生成した予測値との差分である非線形変換適用済みの予測残差に対し残差非線形変換を行う。このように、非線形変換テーブルと残差非線形変換テーブルを用いて、画像データに対し2段階の非線形変換を行うことで、データ分布特性等を用いて特に重要な部分を保護することができる。
 上述した説明において、DNN処理のデータアクセス方法として、depth wise accessとpixel wise access(point wise access)を説明したが、演算部121(図5)では、双方のアクセス方法を用いて演算を行うことは勿論、いずれか一方のアクセス方法のみを用いて演算を行うことも可能である。例えば、DNN処理としてpixel wise convolutionが行われる場合にそのデータアクセス方法としてpixel wise accessのみが用いられるとき、デプス方向まとめの圧縮方法が有効となるが、このとき、圧縮方法を、空間方向まとめとデプス方向まとめで切り替える必要はなく、デプス方向まとめの圧縮方法で固定とすればよい。
 このとき、圧縮部122(図5)と復号部123(図5)は、ネットワーク事前解析器110(図5)からの符号化制御情報に含まれる圧縮方法を用いずに、固定で設定された圧縮方法を用いることができる。例えば、圧縮部122は、デプス方向まとめの圧縮方法が固定で設定されている場合に、空間方向の予測で得られた特徴量の予測値と、現在の特徴量のデータとの差分データを符号化して、デプス方向にまとめてパッキングすることで、特徴量を圧縮することができる(図30)。なお、繰り返しになるので説明は省略するが、機械学習推論器100(図5)に限らず、機械学習推論器200(図33)においても同様の動作を行うことができる。
<コンピュータの構成>
 上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。図92は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、入力部1006、出力部1007、記憶部1008、通信部1009、及びドライブ1010が接続されている。
 入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、半導体メモリ、磁気ディスク、光ディスク、又は光磁気ディスクなどのリムーバブル記録媒体1011を駆動する。
 以上のように構成されるコンピュータでは、CPU1001が、ROM1002や記憶部1008に記録されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブル記録媒体1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線又は無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、予めインストールしておくことができる。
 コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。また、プログラムは、1のコンピュータ(プロセッサ)により処理されてもよいし、複数のコンピュータによって分散処理されてもよい。
 なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 また、本開示は、以下のような構成をとることができる。
(1)
 ニューラルネットワークを用いた推論を行う前に前記ニューラルネットワークを解析して、前記ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報を生成する事前解析部と、
 入力データと前記ニューラルネットワークを用いた推論を行い、前記入力データから得られる前記特徴量を処理した処理結果を、演算結果として出力する演算部と、
 前記制御情報に基づいて、前記演算部から入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録する圧縮部と、
 前記制御情報に基づいて、前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を前記演算部に出力する復号部と
 を備える情報処理装置。
(2)
 前記事前解析部は、前記ニューラルネットワークの各レイヤのウェイトのデータサイズ、前記特徴量のデータサイズ、及び前記メモリのメモリサイズに基づいて、前記ニューラルネットワークの各レイヤで処理される前記特徴量の圧縮率を算出し、算出した前記圧縮率を前記制御情報に含める
 前記(1)に記載の情報処理装置。
(3)
 前記事前解析部は、前記特徴量の圧縮率に基づいて、前記圧縮率を算出した前記特徴量のうち、前記圧縮率が所定値以上となる前記特徴量の圧縮方法を非圧縮に決定し、決定した前記圧縮方法を前記制御情報に含める
 前記(2)に記載の情報処理装置。
(4)
 前記事前解析部は、前記ニューラルネットワークの各レイヤで処理される前記特徴量、及び前記ニューラルネットワークの各レイヤの処理におけるデータアクセス方法に基づいて、前記データアクセス方法に対応した圧縮単位での前記特徴量の圧縮方法を決定し、決定した前記圧縮方法を前記制御情報に含める
 前記(1)乃至(3)のいずれかに記載の情報処理装置。
(5)
 前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、
 前記事前解析部は、前記特徴量の圧縮方法として、前記特徴量のデータをxy平面に対応した第1の方向にまとめる第1の圧縮方法、又は前記特徴量のデータをz方向に対応した第2の方向にまとめる第2の圧縮方法を決定し、決定した前記圧縮方法を前記制御情報に含める
 前記(1)又は(4)に記載の情報処理装置。
(6)
 前記圧縮部は、
  入力される前記特徴量のデータに対し第1の予測値を生成して、前記特徴量のデータと前記第1の予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式を用いており、
  前記圧縮方法に従い、前記ニューラルネットワークの各レイヤの処理におけるデータアクセス方法に対応した圧縮単位で取り出された前記特徴量のデータと前記第1の予測値との差分を算出する
 前記(5)に記載の情報処理装置。
(7)
 前記復号部は、
  入力される前記圧縮特徴量のデータをエントロピ復号して得られる前記差分情報と加算する第2の予測値を生成して、前記差分情報と前記第2の予測値を加算することで、前記圧縮特徴量を復号する復号方式を用いており、
  前記圧縮方法に従い、前記データアクセス方法に対応した圧縮単位で前記第2の予測値を前記差分情報に加算して得られる前記特徴量のデータを並び替える
 前記(6)に記載の情報処理装置。
(8)
 前記圧縮部は、前記第1の圧縮方法が指定された場合、前記特徴量のデータと同じチャンネルの前記第1の方向の予測により前記第1の予測値を生成し、前記特徴量のデータと前記第1の予測値との差分から得られる前記差分情報を、前記第1の方向にパッキングする
 前記(6)に記載の情報処理装置。
(9)
 前記圧縮部は、前記第2の圧縮方法が指定された場合、前記特徴量のデータと同じチャンネルの前記第1の方向の予測により前記第1の予測値を生成し、前記特徴量のデータと前記第1の予測値との差分から得られる前記差分情報を、前記第2の方向にパッキングする
 前記(6)に記載の情報処理装置。
(10)
 前記事前解析部は、前記特徴量のサンプルデータに基づいて、前記ニューラルネットワークで処理対象となる特徴量を解析して、特徴量の圧縮と復号を制御するためのパラメータを生成し、生成した前記パラメータを前記制御情報に含める
 前記(1)に記載の情報処理装置。
(11)
 前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、
 前記事前解析部は、チャンネル単位で特徴量の圧縮と復号を制御するための制御パラメータを生成し、生成した前記制御パラメータを前記制御情報に含める
 前記(10)に記載の情報処理装置。
(12)
 前記事前解析部は、前記特徴量のサンプルデータに基づいて、前記特徴量の予測値を生成する際に参照するチャンネルを示した参照チャンネルを算出し、算出した前記参照チャンネルの識別情報を前記制御パラメータに含め、
 前記圧縮部は、
  入力される前記特徴量のデータに対し第1の予測値を生成して、前記特徴量のデータと前記第1の予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式を用いており、
  前記制御パラメータに従い、前記第1の予測値を生成し、
 前記復号部は、
  入力される前記圧縮特徴量のデータをエントロピ復号して得られる前記差分情報と加算する第2の予測値を生成して、前記差分情報と前記第2の予測値を加算することで、前記圧縮特徴量を復号する復号方式を用いており、
  前記制御パラメータに従い、前記第2の予測値を生成する
 前記(11)に記載の情報処理装置。
(13)
 前記事前解析部は、前記特徴量のサンプルデータ、及び前記参照チャンネルの識別情報に基づいて、前記参照チャンネルを参照して前記予測値を生成するための参照パラメータを算出し、算出した前記参照パラメータを前記制御パラメータに含める
 前記(12)に記載の情報処理装置。
(14)
 前記事前解析部は、前記特徴量のサンプルデータ、前記参照チャンネルの識別情報、及び前記参照パラメータに基づいて、xy平面に対応した第1の方向を参照して行う予測である第1の予測方法、z方向に対応した第2の方向でチャンネル間を参照して行う予測である第2の予測方法、及び前記第1の方向と前記第2の方向の双方向を参照して行う予測である第3の予測方法を少なくとも含む予測方法の中から1つの予測方法を決定し、決定した前記予測方法を前記制御パラメータに含める
 前記(13)に記載の情報処理装置。
(15)
 前記事前解析部は、チャンネルごとに、前記参照チャンネルと、前記参照パラメータと、前記予測方法を切り替える
 前記(14)に記載の情報処理装置。
(16)
 前記事前解析部は、
  前記特徴量のサンプルデータに基づいて、チャンネルごとのサンプルデータの統計値を解析した結果に応じた非線形変換を行うための非線形変換テーブルを選定し、
  選定した前記非線形変換テーブルとの識別情報を前記制御パラメータに含め、
 前記圧縮部は、前記非線形変換テーブルに従い、入力される前記特徴量のデータに対し非線形変換を行う
 前記(11)に記載の情報処理装置。
(17)
 前記事前解析部は、チャンネルごとに、前記非線形変換テーブルを切り替える
 前記(16)に記載の情報処理装置。
(18)
 前記事前解析部は、
  前記特徴量のサンプルデータと前記特徴量のサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、チャンネルごとのサンプルデータの統計値を解析した結果に応じた残差非線形変換を行うための残差非線形変換テーブルを選定し、
  選定した前記残差非線形変換テーブルの識別情報を前記制御パラメータに含め、
 前記圧縮部は、前記残差非線形変換テーブルに従い、前記特徴量のデータと、前記特徴量のデータに対して生成した予測値との差分である予測残差に対し非線形変換を行う
 前記(11)又は(16)に記載の情報処理装置。
(19)
 前記事前解析部は、チャンネルごとに、前記残差非線形変換テーブルを切り替える
 前記(18)に記載の情報処理装置。
(20)
 前記事前解析部は、
  前記特徴量のサンプルデータと前記特徴量のサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、チャンネルごとのサンプルデータの統計値を解析した結果に応じたエントロピ符号化を行うためのエントロピ符号化テーブルを選定し、
  選定した前記エントロピ符号化テーブルの識別情報を前記制御パラメータに含め、
 前記圧縮部は、前記エントロピ符号化テーブルに従い、前記特徴量のデータと、前記特徴量のデータに対して生成した予測値との差分情報に対しエントロピ符号を行う
 前記(11)に記載の情報処理装置。
(21)
 前記事前解析部は、前記特徴量のサンプルデータを解析して、前記特徴量の圧縮モデルを複数切り替えて用いるための切り替え情報と、前記特徴量をそれぞれの前記圧縮モデルに適合させるための補正値情報とを含む圧縮パラメータを生成し、生成した前記圧縮パラメータを前記制御情報に含める
 前記(10)に記載の情報処理装置。
(22)
 前記圧縮モデルは、予測値との差分を取らずに圧縮可能とする圧縮モデルを含む
 前記(21)に記載の情報処理装置。
(23)
 前記圧縮部は、
  前記補正値情報に基づいて、入力される前記特徴量を補正して、第1の圧縮モデル又は第2の圧縮モデルに適合させる前処理を行い、
  前記前処理で補正した補正特徴量に対し、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた符号化を行い、
  前記切り替え情報に基づいて、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた符号化で得られた前記圧縮特徴量を選択して前記メモリに記録する
 前記(21)又は(22)に記載の情報処理装置。
(24)
 前記復号部は、
  前記メモリに一時的に格納された前記圧縮特徴量に対し、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた復号を行い、
  前記切り替え情報に基づいて、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた復号で得られた前記補正特徴量を選択し、
  前記補正値情報に基づいて、選択した前記補正特徴量を、補正前の前記特徴量に戻す後処理を行う
 前記(23)に記載の情報処理装置。
(25)
 情報処理装置が、
 ニューラルネットワークを用いた推論を行う前に前記ニューラルネットワークを解析して、前記ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報を生成し、
 入力データと前記ニューラルネットワークを用いた推論を行い、前記入力データから得られる前記特徴量を処理した処理結果を、演算結果として出力し、
 前記制御情報に基づいて、入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録し、
 前記制御情報に基づいて、前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を出力する
 情報処理方法。
(26)
 画像データのサンプルデータに基づいて、前記画像データの圧縮を制御するための制御情報を生成する事前解析部と、
 前記制御情報に基づいて、入力される前記画像データを圧縮する圧縮部と
 を備え、
 前記事前解析部は、
  前記画像データのサンプルデータの統計値を解析した結果に応じた非線形変換を行うための非線形変換テーブルを選定し、
  前記画像データのサンプルデータと前記画像データのサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、サンプルデータの統計値を解析した結果に応じた残差非線形変換を行うための残差非線形変換テーブルを選定し、
  選定した前記非線形変換テーブルと前記残差非線形変換テーブルの識別情報を前記制御情報に含め、
 前記圧縮部は、
  入力される前記画像データに対し予測値を生成して、前記画像データと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記画像データを圧縮する圧縮方式を用いており、
  前記非線形変換テーブルに従い、入力される前記画像データに対し、非線形変換を行い、
  前記残差非線形変換テーブルに従い、非線形変換適用済みの前記画像データと、非線形変換適用済みの前記画像データに対して生成した前記予測値との差分である非線形変換適用済みの予測残差に対し非線形変換を行う
 情報処理装置。
(27)
 入力データとニューラルネットワークを用いた推論を行い、前記入力データから得られる特徴量を処理した処理結果を、演算結果として出力する演算部と、
 前記演算部から入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録する圧縮部と、
 前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を前記演算部に出力する復号部と
 を備え、
 前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、
 前記圧縮部は、
  入力される前記特徴量のデータに対し予測値を生成して、前記特徴量のデータと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式を用いており、
  前記特徴量の圧縮方法として、前記特徴量のデータをz方向に対応した第2の方向にまとめる圧縮方法が設定された場合、前記特徴量のデータと同じチャンネルのxy平面に対応した第1の方向の予測により前記予測値を生成し、前記特徴量のデータと前記予測値との差分から得られる前記差分情報を、前記第2の方向にパッキングする
 情報処理装置。
 100 機械学習推論器, 110 ネットワーク事前解析器, 111 機械学習演算器, 121 演算部, 122 圧縮部, 123 復号部, 124 メモリ, 141 検出部, 142 圧縮率算出部, 143 圧縮方法決定部, 161 データ取り出し部, 162 スイッチ, 163 加算部, 164 量子化部, 165 エントロピ符号化部, 166 逆量子化部, 167 加算部, 168 ワークバッファ, 169 予測値生成部, 181 スイッチ, 182 エントロピ復号部, 183 逆量子化部, 184 加算部, 185 データ並び替え部, 186 ワークバッファ, 187 予測値生成部, 200 機械学習推論器, 210 ネットワーク事前解析器, 211 機械学習演算器, 221 演算部, 222 圧縮部, 223 復号部, 224 メモリ, 241 検出部, 242 圧縮率算出部, 243 圧縮方法決定部, 244 特徴量サンプル抽出部, 245-0乃至245-N 制御パラメータ生成部, 261 データ取り出し部, 262 スイッチ, 263 非線形変換部, 264 加算部, 265 残差非線形変換部, 266 量子化部, 267 エントロピ符号化部, 268 逆量子化部, 269 残差逆非線形変換部, 270 加算部, 271 ワークバッファ, 272 予測値生成部, 281 スイッチ, 282 エントロピ復号部, 283 逆量子化部, 284 残差逆非線形変換部, 285 加算部, 286 逆非線形変換部, 287 データ並び替え部, 288 ワークバッファ, 289 予測値生成部, 321 非線形変換テーブル選定部, 322 非線形変換部, 323 予測算出パラメータ算出部, 324 簡易予測値生成部, 325 差分部, 326 残差非線形変換テーブル選定部, 327 残差非線形変換部, 328 エントロピ符号化テーブル選定部, 421 チャンネル分割部, 422-0乃至422-3 ヒストグラム算出部, 423-0乃至423-3 変換テーブルID算出部, 441 参照チャンネル算出部, 442 参照パラメータ算出部, 443 予測方法決定部, 461 チャンネル分割部, 462-0乃至462-3 ヒストグラム算出部, 463-0乃至463-3 変換テーブルID算出部, 501 CPU, 502 DMAC, 503 DRAM, 504 DNNプロセッサ, 511 前処理部, 511A 非対称用前処理部, 511B 対称用前処理部, 512 符号化部, 512A 非対称符号化器, 512B 対称符号化器, 513,514 スイッチ, 521 復号部, 521A 非対称復号器, 521B 対称復号器, 522 後処理部, 522A 非対称用後処理部, 522B 対称用後処理部, 523,524,525,526 スイッチ, 531 量子化部, 532 量子化ステップ決定部, 533 可変長符号化部, 534 可変長符号テーブル, 535 リファインメント符号処理部, 536 結合部, 541 分離部, 542 可変長復号部, 543 可変長符号テーブル, 544 逆量子化部, 545 リファインメント復号処理部, 546 結合部, 551 量子化部, 552 量子化部, 553 量子化ステップ決定部, 554 減算部, 555 可変長符号化部, 556 可変長符号テーブル, 557 リファインメント符号処理部, 558 結合部, 561 分離部, 562 可変長復号部, 563 可変長符号テーブル, 564 量子化部, 565 加算部, 566 逆量子化部, 567 リファインメント復号処理部, 568 結合部

Claims (27)

  1.  ニューラルネットワークを用いた推論を行う前に前記ニューラルネットワークを解析して、前記ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報を生成する事前解析部と、
     入力データと前記ニューラルネットワークを用いた推論を行い、前記入力データから得られる前記特徴量を処理した処理結果を、演算結果として出力する演算部と、
     前記制御情報に基づいて、前記演算部から入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録する圧縮部と、
     前記制御情報に基づいて、前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を前記演算部に出力する復号部と
     を備える情報処理装置。
  2.  前記事前解析部は、前記ニューラルネットワークの各レイヤのウェイトのデータサイズ、前記特徴量のデータサイズ、及び前記メモリのメモリサイズに基づいて、前記ニューラルネットワークの各レイヤで処理される前記特徴量の圧縮率を算出し、算出した前記圧縮率を前記制御情報に含める
     請求項1に記載の情報処理装置。
  3.  前記事前解析部は、前記特徴量の圧縮率に基づいて、前記圧縮率を算出した前記特徴量のうち、前記圧縮率が所定値以上となる前記特徴量の圧縮方法を非圧縮に決定し、決定した前記圧縮方法を前記制御情報に含める
     請求項2に記載の情報処理装置。
  4.  前記事前解析部は、前記ニューラルネットワークの各レイヤで処理される前記特徴量、及び前記ニューラルネットワークの各レイヤの処理におけるデータアクセス方法に基づいて、前記データアクセス方法に対応した圧縮単位での前記特徴量の圧縮方法を決定し、決定した前記圧縮方法を前記制御情報に含める
     請求項1に記載の情報処理装置。
  5.  前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、
     前記事前解析部は、前記特徴量の圧縮方法として、前記特徴量のデータをxy平面に対応した第1の方向にまとめる第1の圧縮方法、又は前記特徴量のデータをz方向に対応した第2の方向にまとめる第2の圧縮方法を決定し、決定した前記圧縮方法を前記制御情報に含める
     請求項1に記載の情報処理装置。
  6.  前記圧縮部は、
      入力される前記特徴量のデータに対し第1の予測値を生成して、前記特徴量のデータと前記第1の予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式を用いており、
      前記圧縮方法に従い、前記ニューラルネットワークの各レイヤの処理におけるデータアクセス方法に対応した圧縮単位で取り出された前記特徴量のデータと前記第1の予測値との差分を算出する
     請求項5に記載の情報処理装置。
  7.  前記復号部は、
      入力される前記圧縮特徴量のデータをエントロピ復号して得られる前記差分情報と加算する第2の予測値を生成して、前記差分情報と前記第2の予測値を加算することで、前記圧縮特徴量を復号する復号方式を用いており、
      前記圧縮方法に従い、前記データアクセス方法に対応した圧縮単位で前記第2の予測値を前記差分情報に加算して得られる前記特徴量のデータを並び替える
     請求項6に記載の情報処理装置。
  8.  前記圧縮部は、前記第1の圧縮方法が指定された場合、前記特徴量のデータと同じチャンネルの前記第1の方向の予測により前記第1の予測値を生成し、前記特徴量のデータと前記第1の予測値との差分から得られる前記差分情報を、前記第1の方向にパッキングする
     請求項6に記載の情報処理装置。
  9.  前記圧縮部は、前記第2の圧縮方法が指定された場合、前記特徴量のデータと同じチャンネルの前記第1の方向の予測により前記第1の予測値を生成し、前記特徴量のデータと前記第1の予測値との差分から得られる前記差分情報を、前記第2の方向にパッキングする
     請求項6に記載の情報処理装置。
  10.  前記事前解析部は、前記特徴量のサンプルデータに基づいて、前記ニューラルネットワークで処理対象となる特徴量を解析して、特徴量の圧縮と復号を制御するためのパラメータを生成し、生成した前記パラメータを前記制御情報に含める
     請求項1に記載の情報処理装置。
  11.  前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、
     前記事前解析部は、チャンネル単位で特徴量の圧縮と復号を制御するための制御パラメータを生成し、生成した前記制御パラメータを前記制御情報に含める
     請求項10に記載の情報処理装置。
  12.  前記事前解析部は、前記特徴量のサンプルデータに基づいて、前記特徴量の予測値を生成する際に参照するチャンネルを示した参照チャンネルを算出し、算出した前記参照チャンネルの識別情報を前記制御パラメータに含め、
     前記圧縮部は、
      入力される前記特徴量のデータに対し第1の予測値を生成して、前記特徴量のデータと前記第1の予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式を用いており、
      前記制御パラメータに従い、前記第1の予測値を生成し、
     前記復号部は、
      入力される前記圧縮特徴量のデータをエントロピ復号して得られる前記差分情報と加算する第2の予測値を生成して、前記差分情報と前記第2の予測値を加算することで、前記圧縮特徴量を復号する復号方式を用いており、
      前記制御パラメータに従い、前記第2の予測値を生成する
     請求項11に記載の情報処理装置。
  13.  前記事前解析部は、前記特徴量のサンプルデータ、及び前記参照チャンネルの識別情報に基づいて、前記参照チャンネルを参照して前記予測値を生成するための参照パラメータを算出し、算出した前記参照パラメータを前記制御パラメータに含める
     請求項12に記載の情報処理装置。
  14.  前記事前解析部は、前記特徴量のサンプルデータ、前記参照チャンネルの識別情報、及び前記参照パラメータに基づいて、xy平面に対応した第1の方向を参照して行う予測である第1の予測方法、z方向に対応した第2の方向でチャンネル間を参照して行う予測である第2の予測方法、及び前記第1の方向と前記第2の方向の双方向を参照して行う予測である第3の予測方法を少なくとも含む予測方法の中から1つの予測方法を決定し、決定した前記予測方法を前記制御パラメータに含める
     請求項13に記載の情報処理装置。
  15.  前記事前解析部は、チャンネルごとに、前記参照チャンネルと、前記参照パラメータと、前記予測方法を切り替える
     請求項14に記載の情報処理装置。
  16.  前記事前解析部は、
      前記特徴量のサンプルデータに基づいて、チャンネルごとのサンプルデータの統計値を解析した結果に応じた非線形変換を行うための非線形変換テーブルを選定し、
      選定した前記非線形変換テーブルの識別情報を前記制御パラメータに含め、
     前記圧縮部は、前記非線形変換テーブルに従い、入力される前記特徴量のデータに対し非線形変換を行う
     請求項11に記載の情報処理装置。
  17.  前記事前解析部は、チャンネルごとに、前記非線形変換テーブルを切り替える
     請求項16に記載の情報処理装置。
  18.  前記事前解析部は、
      前記特徴量のサンプルデータと前記特徴量のサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、チャンネルごとのサンプルデータの統計値を解析した結果に応じた残差非線形変換を行うための残差非線形変換テーブルを選定し、
      選定した前記残差非線形変換テーブルの識別情報を前記制御パラメータに含め、
     前記圧縮部は、前記残差非線形変換テーブルに従い、前記特徴量のデータと、前記特徴量のデータに対して生成した予測値との差分である予測残差に対し非線形変換を行う
     請求項11に記載の情報処理装置。
  19.  前記事前解析部は、チャンネルごとに、前記残差非線形変換テーブルを切り替える
     請求項18に記載の情報処理装置。
  20.  前記事前解析部は、
      前記特徴量のサンプルデータと前記特徴量のサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、チャンネルごとのサンプルデータの統計値を解析した結果に応じたエントロピ符号化を行うためのエントロピ符号化テーブルを選定し、
      選定した前記エントロピ符号化テーブルの識別情報を前記制御パラメータに含め、
     前記圧縮部は、前記エントロピ符号化テーブルに従い、前記特徴量のデータと、前記特徴量のデータに対して生成した予測値との差分情報に対しエントロピ符号を行う
     請求項11に記載の情報処理装置。
  21.  前記事前解析部は、前記特徴量のサンプルデータを解析して、前記特徴量の圧縮モデルを複数切り替えて用いるための切り替え情報と、前記特徴量をそれぞれの前記圧縮モデルに適合させるための補正値情報とを含む圧縮パラメータを生成し、生成した前記圧縮パラメータを前記制御情報に含める
     請求項10に記載の情報処理装置。
  22.  前記圧縮モデルは、予測値との差分を取らずに圧縮可能とする圧縮モデルを含む
     請求項21に記載の情報処理装置。
  23.  前記圧縮部は、
      前記補正値情報に基づいて、入力される前記特徴量を補正して、第1の圧縮モデル又は第2の圧縮モデルに適合させる前処理を行い、
      前記前処理で補正した補正特徴量に対し、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた符号化を行い、
      前記切り替え情報に基づいて、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた符号化で得られた前記圧縮特徴量を選択して前記メモリに記録する
     請求項21に記載の情報処理装置。
  24.  前記復号部は、
      前記メモリに一時的に格納された前記圧縮特徴量に対し、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた復号を行い、
      前記切り替え情報に基づいて、前記第1の圧縮モデル又は前記第2の圧縮モデルに応じた復号で得られた前記補正特徴量を選択し、
      前記補正値情報に基づいて、選択した前記補正特徴量を、補正前の前記特徴量に戻す後処理を行う
     請求項23に記載の情報処理装置。
  25.  情報処理装置が、
     ニューラルネットワークを用いた推論を行う前に前記ニューラルネットワークを解析して、前記ニューラルネットワークで処理される特徴量の圧縮と復号を制御するための制御情報を生成し、
     入力データと前記ニューラルネットワークを用いた推論を行い、前記入力データから得られる前記特徴量を処理した処理結果を、演算結果として出力し、
     前記制御情報に基づいて、入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録し、
     前記制御情報に基づいて、前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を出力する
     情報処理方法。
  26.  画像データのサンプルデータに基づいて、前記画像データの圧縮を制御するための制御情報を生成する事前解析部と、
     前記制御情報に基づいて、入力される前記画像データを圧縮する圧縮部と
     を備え、
     前記事前解析部は、
      前記画像データのサンプルデータの統計値を解析した結果に応じた非線形変換を行うための非線形変換テーブルを選定し、
      前記画像データのサンプルデータと前記画像データのサンプルデータの予測値との差分である予測残差のサンプルデータに基づいて、サンプルデータの統計値を解析した結果に応じた残差非線形変換を行うための残差非線形変換テーブルを選定し、
      選定した前記非線形変換テーブルと前記残差非線形変換テーブルの識別情報を前記制御情報に含め、
     前記圧縮部は、
      入力される前記画像データに対し予測値を生成して、前記画像データと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記画像データを圧縮する圧縮方式を用いており、
      前記非線形変換テーブルに従い、入力される前記画像データに対し、非線形変換を行い、
      前記残差非線形変換テーブルに従い、非線形変換適用済みの前記画像データと、非線形変換適用済みの前記画像データに対して生成した前記予測値との差分である非線形変換適用済みの予測残差に対し非線形変換を行う
     情報処理装置。
  27.  入力データとニューラルネットワークを用いた推論を行い、前記入力データから得られる特徴量を処理した処理結果を、演算結果として出力する演算部と、
     前記演算部から入力される前記特徴量を圧縮して、圧縮した前記特徴量である圧縮特徴量をメモリに記録する圧縮部と、
     前記メモリに一時的に記録された前記圧縮特徴量を復号して、復号した前記特徴量を前記演算部に出力する復号部と
     を備え、
     前記特徴量は、xy平面の特徴量をz方向のチャンネルごとに構成した3次元のデータであり、
     前記圧縮部は、
      入力される前記特徴量のデータに対し予測値を生成して、前記特徴量のデータと前記予測値との差分から得られる差分情報をエントロピ符号化することで、前記特徴量を圧縮する圧縮方式を用いており、
      前記特徴量の圧縮方法として、前記特徴量のデータをz方向に対応した第2の方向にまとめる圧縮方法が設定された場合、前記特徴量のデータと同じチャンネルのxy平面に対応した第1の方向の予測により前記予測値を生成し、前記特徴量のデータと前記予測値との差分から得られる前記差分情報を、前記第2の方向にパッキングする
     情報処理装置。
PCT/JP2023/044343 2022-12-26 2023-12-12 情報処理装置、及び情報処理方法 WO2024142897A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-208494 2022-12-26
JP2022208494 2022-12-26

Publications (1)

Publication Number Publication Date
WO2024142897A1 true WO2024142897A1 (ja) 2024-07-04

Family

ID=91717603

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/044343 WO2024142897A1 (ja) 2022-12-26 2023-12-12 情報処理装置、及び情報処理方法

Country Status (1)

Country Link
WO (1) WO2024142897A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006352509A (ja) * 2005-06-16 2006-12-28 Sony Corp 画像データ処理装置、画像データ処理方法およびプログラム
JP2020053820A (ja) * 2018-09-26 2020-04-02 株式会社Preferred Networks 量子化及び符号化器作成方法、圧縮器作成方法、圧縮器作成装置及びプログラム
JP2021522756A (ja) * 2018-06-19 2021-08-30 株式会社ソニー・インタラクティブエンタテインメント ニューラルネットワークを利用したコーデック

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006352509A (ja) * 2005-06-16 2006-12-28 Sony Corp 画像データ処理装置、画像データ処理方法およびプログラム
JP2021522756A (ja) * 2018-06-19 2021-08-30 株式会社ソニー・インタラクティブエンタテインメント ニューラルネットワークを利用したコーデック
JP2020053820A (ja) * 2018-09-26 2020-04-02 株式会社Preferred Networks 量子化及び符号化器作成方法、圧縮器作成方法、圧縮器作成装置及びプログラム

Similar Documents

Publication Publication Date Title
US11588499B2 (en) Lossless compression of neural network weights
JP3017380B2 (ja) データ圧縮方法及び装置並びにデータ伸長方法及び装置
US8767823B2 (en) Method and apparatus for frame memory compression
US5398069A (en) Adaptive multi-stage vector quantization
TWI431948B (zh) 轉換區塊之效率編碼和解碼
US20030103573A1 (en) Method and apparatus for encoding and decoding data
US20200143226A1 (en) Lossy compression of neural network activation maps
US4870695A (en) Compression and de-compression of column-interlaced, row-interlaced graylevel digital images
CN112702600B (zh) 一种图像编解码神经网络分层定点化方法
JP2020053820A (ja) 量子化及び符号化器作成方法、圧縮器作成方法、圧縮器作成装置及びプログラム
WO2024142897A1 (ja) 情報処理装置、及び情報処理方法
Matsuda et al. Lossless coding using predictors and arithmetic code optimized for each image
WO2005074145A1 (en) Coding method and apparatus, and computer program and computer-readable storage medium
JPS63250277A (ja) 状態入力生成装置
US8379715B2 (en) System and method for video compression using non-linear quantization and modular arithmetic computation
Hu et al. Efficient greyscale image compression technique based on vector quantization
KR20130022541A (ko) 영상의 부호화 방법 및 장치, 및 영상의 복호화 방법 및 장치
JP3985465B2 (ja) 画像符号化装置、画像復号装置および画像符号化復号装置ならびにそれらの方法
JPH07212243A (ja) 可変長符号の符号化方法およびその装置
Kanefsky et al. Predictive source coding techniques using maximum likelihood prediction for compression of digitized images
JPH1098720A (ja) ビデオ信号符号化方法及びその装置
CN112200301B (zh) 卷积计算装置及方法
Abed et al. Gray-Scale Image Compression Method Based on a Pixel-Based Adaptive Technique
Tilki et al. Image data compression using multiple bases representation
Moon et al. Local Non-linear Quantization for Neural Network Compression in MPEG-NNR