WO2017082304A1 - 情報圧縮装置、情報圧縮方法、記録媒体、及び、符号化装置 - Google Patents

情報圧縮装置、情報圧縮方法、記録媒体、及び、符号化装置 Download PDF

Info

Publication number
WO2017082304A1
WO2017082304A1 PCT/JP2016/083262 JP2016083262W WO2017082304A1 WO 2017082304 A1 WO2017082304 A1 WO 2017082304A1 JP 2016083262 W JP2016083262 W JP 2016083262W WO 2017082304 A1 WO2017082304 A1 WO 2017082304A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
information
size
calculated
numerical value
Prior art date
Application number
PCT/JP2016/083262
Other languages
English (en)
French (fr)
Inventor
達治 森吉
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2017550361A priority Critical patent/JPWO2017082304A1/ja
Priority to US15/773,216 priority patent/US10448035B2/en
Publication of WO2017082304A1 publication Critical patent/WO2017082304A1/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
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Definitions

  • the present invention relates to an information compression apparatus that compresses the size of information, for example.
  • Compressive encoding technology for moving image data is widely used, and is used for applications such as digital broadcasting, distribution of video content using an optical disc, video distribution via a communication network such as the Internet, and the like.
  • Encoding technology that encodes moving image data at a low bit rate, high compression rate, and high image quality to generate encoded data, or decodes encoded moving image data includes, for example, the International Telecommunications Union (ITU) standardized by H.264. 261 system and H.264. There are methods such as the H.263 method.
  • ITU International Telecommunications Union
  • MPEG-1, MPEG-2 and MPEG-4 created by the International Organization for Standardization (ISO) and VC- standardized by the American Film and Television Engineers Association (SMPTE)
  • ISO International Organization for Standardization
  • SMPTE American Film and Television Engineers Association
  • ITU stands for International_Telecommunication_Union. ISO represents an abbreviation for International_Organization_for_Standardization. MPEG represents an abbreviation for Moving_Picture_Experts_Group. SMPTE is an abbreviation for Society_of_Motion_Picture_and_Television_Engineers.
  • H.264 standardized jointly by ITU and ISO. H.264 / MPEG-4_AVC (hereinafter, referred to as “H.264 system”) is becoming widespread.
  • Non-Patent Document 1 describes H.264.
  • H.C. H.265 / MPEG-H_HEVC (hereinafter referred to as “H.265 system”) was standardized in 2013 as a standard relating to compression coding for moving image data.
  • Non-Patent Document 2 describes H.264.
  • the H.265 system is disclosed.
  • H. The H.265 system is an H.264 format for video included in moving image data. It is said that this is a technique capable of compressing the size of the moving image data to about half while ensuring image quality equivalent to that of the H.264 system, and is expected to be used in a wide range of fields in the future.
  • AVC represents an abbreviation for Advanced_Video_Coding.
  • HEVC is an abbreviation for High_Efficiency_Video_Coding.
  • These moving image encoding techniques include, for example, elements such as motion compensation prediction processing, orthogonal transform processing related to prediction error images, quantization processing related to orthogonal transform coefficients, and entropy encoding processing related to quantized orthogonal transform coefficients Because it includes technology, it is called hybrid coding technology.
  • These moving image coding techniques perform intra-frame prediction and inter-frame prediction based on the correlation between image data regarding the spatial direction and the temporal axis direction, which is one of the characteristics of moving image data. High compression efficiency for moving image data is achieved.
  • inter-frame prediction motion compensated prediction processing is used that generates a predicted image by correcting the movement of an object such as a subject or background between image data that are temporally adjacent to each other, and the positional shift related to the object. ing.
  • Patent Document 1 and Non-Patent Document 5 disclose encoding apparatuses that efficiently perform the moving image encoding processing as examples of moving image encoding techniques. These apparatuses efficiently perform moving image encoding processing by reducing the size of a transform coefficient value sequence including quantized orthogonal transform coefficients.
  • ITU-T_Recommendation_H. H.264 “Advanced_video_coding_for_generic_audiovisual services” [online], March 2010, [October 20, 2015 search], Internet ⁇ URL: http: // www. itu. int / rec / T-REC-H. H.264> ITU-T_Recommendation_H. 265 "Advanced_video_coding_for_generic_audiovisual_services", [online], April 2013, [October 20, 2015 search], Internet ⁇ URL: http: // www. itu. int / rec / T-REC-H.
  • JVT Joint_Video_Team
  • IEC_MPEG_and_ITU-T_VCEG Document_JVT-O079
  • “Text_Description_of_Joint_Mode_Reference_Encoding_Method_and_Decoding_Concealment_Method” [online], 4 May 2005, [October 20, 2015 search]
  • JCT-VC Joint_Collaborative_Team_on_Video_Coding
  • Patent Document 1 discloses a data conversion process for converting 1024-bit (bit) conversion coefficient information into data having a fixed length of 512 bits. This data conversion process is simple because the conversion coefficient value sequence calculated as the conversion result is executed with a fixed length, so that the process itself is simple, and high parallelization efficiency can be achieved. However, the data conversion process has a problem that the size of the conversion coefficient value sequence can be reduced only to one half of the size of the conversion coefficient value sequence before conversion.
  • all the values of the transform coefficients calculated when orthogonal transformation is performed on a certain pixel block are non-zero values. Since a flag indicating whether or not is recorded, for example, In the case of a pixel block (for example, 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, etc.) added by the H.265 method, the moving image encoding technique requires a large storage area for recording this flag. Has a problem.
  • one of the main objects of the present invention is to provide an information compression apparatus and the like that can compress information necessary for encoding processing to a smaller size.
  • an information compression apparatus includes: A second block having a second size equal to or larger than the first size based on a numerical sequence representing the target image in a plurality of first blocks obtained by dividing the target image into the first size is included in the second block.
  • the second information related to the first block included in the first block, the second information including at least the second position information related to the third block included in the first block is stored in the memory.
  • Position calculating means for calculating first position information when Information creating means for creating first information including at least the first position information and the second information, and storing the created second information in a storage area represented by the first position information in the memory; , Information storage for storing the numerical value sequence related to the third block in which the numerical value included in the numerical value sequence related to the third block is equal to or greater than the predetermined value in a storage area represented by the second position information in the memory Means.
  • an information compression method includes: A second block having a second size equal to or larger than the first size based on a numerical sequence representing the target image in a plurality of first blocks obtained by dividing the target image into the first size is included in the second block.
  • the second information related to the first block included in the first block, the second information including at least the second position information related to the third block included in the first block is stored in the memory.
  • the numerical value sequence related to the third block whose numerical value included in the numerical value sequence related to the third block is greater than or equal to the predetermined value is stored in a storage area represented by the second position information in the memory.
  • the information compression program is A second block having a second size equal to or larger than the first size based on a numerical sequence representing the target image in a plurality of first blocks obtained by dividing the target image into the first size is included in the second block.
  • Based on the calculated second number, second position information when the numerical sequence related to the third block is stored in a memory is calculated, and based on the calculated first number and the second number, the second block is calculated.
  • the second information related to the first block included in the first block, the second information including at least the second position information related to the third block included in the first block is stored in the memory.
  • this object is also realized by a computer-readable recording medium that records the information compression program.
  • information necessary for the encoding process can be compressed to a smaller size.
  • FIG. 10 is a flowchart showing a flow of processing in the video encoding apparatus according to the second embodiment. It is a figure showing an example of the 1st block which has a size of 16x16 pixels. It is a figure showing an example of the 1st block which has a size of 8x8 pixels. It is a figure which expresses an example of conversion coefficient information notionally.
  • FIG. 14 is a block diagram illustrating a configuration of the moving image encoding device 501.
  • the moving image encoding apparatus 501 includes a motion prediction unit 502, a filter unit 503, a frame buffer 504, a quantization unit 505, a subtraction conversion unit 506, an inverse quantization unit 507, an inverse conversion addition unit 508, It has a quantization control unit 509 and an entropy encoding unit 510 (hereinafter referred to as “encoding unit 510”).
  • the frame buffer 504 can store image data created as a result of encoding a certain frame (frame image). For convenience of explanation, it is assumed that the frame buffer 504 stores moving image data including image data (hereinafter, referred to as “encoded frame”) created as a result of encoding a certain frame.
  • encoded frame moving image data including image data
  • the moving image encoding device 501 When receiving moving image data including a plurality of frames, the moving image encoding device 501 encodes the moving image data in units of pixel blocks in which the received moving image data is partitioned according to a predetermined size. Execute the conversion process.
  • the predetermined size is, for example, H.264. H.264 or H.264 It is defined according to the H.265 system as described below.
  • the predetermined size is, for example, a pixel block having a size having 16 ⁇ 16 pixels.
  • the pixel block is also called a macro block (MBL), and is a rectangular pixel block including 16 pixels in the vertical direction and 16 pixels in the horizontal direction.
  • MBL macro block
  • the predetermined size is a pixel block called a coding tree unit (CTU) having a size of 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, 64 ⁇ 64 pixels, or the like.
  • CTU coding tree unit
  • FIG. 15 is a flowchart showing the flow of processing in the video encoding apparatus 501.
  • the motion predicting unit 502 Based on the received moving image data and the encoded frame stored in the frame buffer 504, the motion predicting unit 502 performs prediction processing related to the inside of the frame with respect to the object included in the received moving image data, or Then, a prediction process regarding frames is executed (step S501).
  • the motion prediction unit 502 outputs the predicted image calculated as a result of the prediction process to the subtraction conversion unit 506.
  • inter-frame prediction process the prediction process regarding the intra-frame is referred to as “inter-frame prediction process”.
  • the prediction process related to the intra-frame is expressed as “intra-frame prediction process”.
  • the subtraction conversion unit 506 inputs the prediction image output from the motion prediction unit 502.
  • the subtraction conversion unit 506 creates a prediction error image by subtracting the input prediction image from the frame that is the prediction target in the received moving image data (step S502).
  • the subtraction transform unit 506 performs orthogonal transform processing such as discrete cosine transform (DCT) on the created prediction error image (step S503).
  • DCT discrete cosine transform
  • the subtraction transform unit 506 represents an image equivalent to the created prediction error image using a function having a plurality of frequency components.
  • the subtraction transform unit 506 calculates, for each frequency component, a transform coefficient value sequence including a transform coefficient for a function having the frequency component.
  • the subtraction conversion unit 506 outputs the created conversion coefficient value sequence to the quantization unit 505.
  • DCT represents an abbreviation for Discrete_Cosine_Transform.
  • the orthogonal transformation processing is executed in units of pixel blocks having 4 ⁇ 4 pixels or pixel blocks having 8 ⁇ 8 pixels.
  • the orthogonal transform process is executed for each pixel block having 4 ⁇ 4 pixels to 32 ⁇ 32 pixels.
  • the quantization unit 505 inputs the transform coefficient value sequence output from the subtraction conversion unit 506 and the quantization parameter (QP) calculated by the quantization control unit 509. For example, when the value of the transform coefficient is smaller than the value of the quantization parameter, the quantization unit 505 performs the conversion based on each transform coefficient included in the input transform coefficient value sequence and the input quantization parameter. Quantization processing such as setting 0 as a coefficient value is executed (step S504).
  • the quantization unit 505 creates a transform coefficient value sequence including the transform coefficient calculated by the quantization process, and outputs the created transform coefficient value sequence to the inverse quantization unit 507.
  • the transform coefficient calculated by the quantization unit 505 is represented as “quantized transform coefficient”
  • the transform coefficient value sequence calculated by the quantization unit 505 is represented as “quantized transform coefficient value sequence”.
  • the inverse quantization unit 507 inputs the quantized transform coefficient value sequence, and based on the quantized transform coefficient value sequence, an image equivalent to (or the same as) the input prediction error image (hereinafter, An inverse quantization process for creating a “restored image” is executed (step S505).
  • the inverse quantization unit 507 outputs the restored image created as a result of the inverse quantization process to the inverse transform addition unit 508.
  • the inverse transform addition unit 508 receives the restored image output from the inverse quantization unit 507, and an image obtained by adding the input restored image and the predicted image output from the motion prediction unit 502 (hereinafter, “reconstructed image”) (Step S506).
  • the inverse transform adding unit 508 outputs the created reconstructed image to the filter unit 503.
  • the filter unit 503 receives the reconstructed image output from the inverse transform adder 508, and executes a filter process such as reducing distortion included in the input reconstructed image, whereby the image after the filter process ( Hereinafter, this is expressed as “corrected image”) (step S507).
  • Filters used in the filter processing are, for example, a deblocking filter (in the case of the H.264 system or in the case of the H.265 system), Sample_Adaptive_Offset (in the case of the H.265 system), or the like.
  • the filter unit 503 stores the created corrected image in the frame buffer 504 (step S508).
  • the corrected image is referred to as an encoded frame stored in the frame buffer 504 when encoding a frame received after encoding the processing.
  • the encoding unit 510 encodes the quantized transform coefficient value sequence by performing entropy encoding processing according to a predetermined rule for the quantized transform coefficient value sequence. Output a bitstream representing the result.
  • the entropy encoding process includes, for example, context adaptive arithmetic coding (CABAC) (in the case of H.264 system or H.265 system), context adaptive variable length coding (CAVLC) (in the case of H.264 system) ). Since the entropy encoding process is disclosed in, for example, Non-Patent Document 3 or Non-Patent Document 4, a description regarding the entropy encoding process is omitted.
  • the moving image encoding device 501 performs motion prediction processing, conversion processing, quantization processing, inverse quantization processing, and inverse conversion processing for each frame included in the moving image data. , Processing that requires a large amount of calculation, such as filtering, is executed. Therefore, the moving image encoding device 501 executes the moving image encoding process by executing a huge amount of arithmetic processing.
  • an accelerator is used for the purpose of executing a huge amount of calculations in a short time.
  • the accelerator is, for example, a GPU, a DSP, or an FPGA.
  • the GPU is a processor capable of processing 3D graphics at high speed.
  • the GPU has a parallel processor in which hundreds to thousands of processor cores are integrated.
  • a GPU can execute a process several times to several tens of times faster than a general-purpose processor if the process itself can be parallelized with high efficiency.
  • the accelerator is not limited to the example described above.
  • GPU represents an abbreviation for Graphics_Processing_Unit.
  • DSP represents an abbreviation for Digital_Signal_Processor.
  • FPGA represents an abbreviation for Field_Programmable_Gate_Array.
  • the accelerator is a GPU.
  • the intra-frame prediction process executed by the motion prediction unit 502, the inter-frame prediction process executed by the motion prediction unit 502, or the filter process executed by the filter unit 503 includes: In particular, the calculation amount is large. Therefore, for the purpose of executing the moving image encoding process in a short time, the intra-frame prediction process, the inter-frame prediction process, and the filter process may be assigned to the GPU 521 as illustrated in FIG. .
  • FIG. 16 is a diagram illustrating an example of a configuration of a moving image encoding device 501 that includes a GPU 521 as an accelerator.
  • the GPU 521 executes inter-frame prediction processing executed by the motion prediction unit 502, intra-frame prediction processing executed by the motion prediction unit 502, and filter processing executed by the filter unit 503.
  • the CPU 522 performs processing executed by each unit shown in the subtraction conversion unit 506, the quantization unit 505, the quantization control unit 509, the inverse quantization unit 507, the entropy encoding unit 510, and the inverse transform addition unit 508. Execute. Therefore, in the case of this example, a process including a large amount of calculation such as an intra-frame prediction process, an inter-frame prediction process, and a filter process is assigned to the GPU 521. Therefore, a process including a large amount of these calculations The process itself can be executed in a short time.
  • the entire moving picture encoding process may not be processed in a short time. This is because, when the CPU 522 and the GPU 521 execute the moving image encoding process, data transfer is necessary between the CPU 522 and the GPU 521.
  • (1) the input moving image data is transferred from the CPU 522 to the GPU 521
  • (2) the predicted image is transferred from the GPU 521 to the CPU 522
  • (3) the reconstructed image is transferred from the CPU 522 to the GPU 521. 3 times of data transfer is required.
  • the data transfer speed between different processors such as the CPU 522 and the GPU 521 is often low.
  • the transformation processing, the quantization processing, the inverse quantization processing, and the inverse transformation processing have a relatively large amount of calculation.
  • the adaptive QP selection process or the rate distortion (RD) optimal quantization process disclosed in Non-Patent Document 4 is a higher-level and more complicated quantization process, and FIG. The calculation amount is larger than the quantization processing described with reference to the above.
  • FIG. 17 is a diagram illustrating a configuration example included in the moving image encoding device 501 when the GPU 523 performs transform processing, quantization processing, inverse quantization processing, and inverse transform processing.
  • the video encoding device 501 illustrated in FIG. 17 is the same as the processing in the moving image encoding apparatus 501 shown in FIG. 14, and thus the description of the processing related to each unit is omitted.
  • the video encoding device 501 illustrated in FIG. 17 is different from the subtraction conversion unit 506, the quantization unit 505, the inverse quantization unit 507, and the inverse transform addition unit.
  • the processing executed by the filter unit 508, the filter unit 503, and the motion prediction unit 502 is assigned to the GPU 523.
  • processing performed by the quantization control unit 509 and the entropy encoding unit 510 is assigned to the CPU 524.
  • the quantization process When the GPU 523 executes the transformation process, the quantization process, the inverse quantization process, and the inverse transformation process, these processes can be executed in a short time.
  • the entire moving picture encoding process cannot always be performed in a short time. This is because a process of transferring information such as a transform coefficient value sequence, which is an output from the quantization unit 505, is required between the CPU 524 that executes a process such as an entropy encoding process and the GPU 523. is there.
  • the size of the transform coefficient value sequence calculated based on the frame is about 16 bits. That is, the size of the transform coefficient value sequence is larger than the size of the frame.
  • the time required to transfer data such as conversion coefficients from the GPU 523 to the CPU 524 is longer than the time required to transfer the frame.
  • the transfer process between the GPU 523 and the CPU 524 may limit the processing speed of the entire moving image encoding process.
  • FIG. 18 is a diagram illustrating a configuration of a moving image encoding apparatus 501 that performs a moving image encoding process while reducing the size of a transform coefficient value sequence.
  • Entropy encoding processing is processing that needs to be executed sequentially. For this reason, the entropy encoding process can be performed in a shorter period of time when assigned to the CPU 524 than the GPU 523 that executes the process at high speed by performing parallel processing.
  • the moving image encoding device 501 further includes an information compression device 511 and an information restoration unit 512, as compared with the moving image encoding device 501 illustrated in FIG.
  • the GPU 525 executes processing executed by the subtraction conversion unit 506, the quantization unit 505, the inverse quantization unit 507, the inverse conversion addition unit 508, the filter unit 503, the motion prediction unit 502, and the information compression device 511.
  • the CPU 526 executes processing executed by the information restoration unit 512, the quantization control unit 509, and the encoding unit 510.
  • FIG. 19 is a flowchart showing the flow of processing in the video encoding device 501.
  • the information compression apparatus 511 executes a data conversion process for reducing the size of the quantized transform coefficient value sequence on the quantized transform coefficient value sequence output from the quantization unit 505 (step S601).
  • the information compression device 511 in the GPU 525 transfers the converted data to the information restoration unit 512 in the CPU 526. That is, the converted data is transferred from the GPU 525 to the CPU 526.
  • the quantized transform coefficient value sequence includes transform coefficients whose values are zero at high frequency.
  • the information compression apparatus 511 includes a bit string (64-bit size) indicating whether or not the value of each scanned transform coefficient is non-zero with respect to the quantized transform coefficient value string, and a transform coefficient whose value is non-zero. And a conversion coefficient value sequence in which only is stored.
  • the information compression apparatus has a flag (EOB) indicating whether or not only the transform coefficient whose value is non-zero is the last non-zero coefficient in the orthogonal transform block, Data including the position (Index) of the conversion coefficient and the value (Value) of the conversion coefficient is created.
  • H. Processing in the information compression apparatus will be described with reference to an example of compressing a transform coefficient value sequence created according to the H.265 system.
  • the information compression apparatus executes the data conversion process on the quantized transform coefficient value sequence, but it is assumed that the data conversion process is performed on the transform coefficient value sequence for the sake of simplicity. However, the quantization process does not necessarily have to be executed.
  • the orthogonal transform process is applied to a region where each frame is divided into pixel blocks each having 32 ⁇ 32 pixels (size), and as a result, a transform coefficient value sequence is calculated for each frame.
  • the size of the orthogonal transform block is 32 ⁇ 32 pixels. This is the maximum size that can be used in the case of the H.265 system.
  • orthogonal transform processing may be applied in units of pixel blocks having different sizes (for example, 64 ⁇ 64 pixels).
  • the block size to which the orthogonal transform process is applied is not necessarily one type, and may be a plurality of types.
  • the size of a pixel block to which orthogonal transform processing is applied is a pixel block having 32 ⁇ 32 pixels, a pixel block having 16 ⁇ 16 pixels, a pixel block having 8 ⁇ 8 pixels, and a pixel having 4 ⁇ 4 pixels. Blocks may be included.
  • FIG. 20 is a diagram conceptually illustrating information calculated by the orthogonal transform process.
  • a rectangle including the first rectangle to the twenty-second rectangle as illustrated in FIG. 20 represents a pixel block (32 ⁇ 32 pixels) to which the orthogonal transformation process is applied.
  • orthogonal transform processing is applied to pixel blocks having the following three sizes among pixel blocks having 32 ⁇ 32 pixels including the first rectangle to the twenty-second rectangle.
  • a rectangle with a circle includes one or more transform coefficients having a non-zero transform coefficient value calculated for the pixel block among the pixel blocks to which the orthogonal transform process is applied.
  • Pixel block (hereinafter referred to as “non-zero block”).
  • a rectangle that is not circled is a pixel block that does not include any transform coefficient having a non-zero transform coefficient value calculated for the pixel block among the pixel blocks to which the orthogonal transform process is applied (hereinafter referred to as a pixel block). , Represented as “zero block”).
  • the number of non-zero blocks is one for (i) (first rectangle), and three for (ii) (fourth rectangle, seventh rectangle, and eighth rectangle). ), (Iii), one (15th rectangle). That is, the pixel block having 32 ⁇ 32 pixels includes five non-zero blocks (first rectangle, fourth rectangle, seventh rectangle, eighth rectangle, and fifteenth rectangle).
  • FIG. 1 is a block diagram showing the configuration of the information compression apparatus 101 according to the first embodiment of the present invention.
  • the information compression apparatus 101 includes a number calculation unit 102, a position calculation unit 103, an information creation unit 104, and an information storage unit 105.
  • FIG. 2 is a flowchart showing the flow of processing in the information compression apparatus 101 according to the first embodiment.
  • the number calculation unit 102 inputs a numerical string representing the target image from an external device (for example, the quantization unit 505 illustrated in FIG. 18).
  • the frame image included in the moving image data is, for example, a block having a predetermined size (for example, 16 ⁇ 16 pixels, 8 ⁇ 8 pixels, or 4 ⁇ 4 pixels) representing an object to which the orthogonal transformation process is applied (
  • each block is expressed as “first block”.
  • the target image represents a partial image included in each first block in the frame image.
  • the first size represents one of predetermined sizes (for example, 16 ⁇ 16 pixels, 8 ⁇ 8 pixels, or 4 ⁇ 4 pixels) as illustrated in FIG.
  • the numerical sequence relating to the first block is, for example, a transform coefficient value sequence calculated as a result of applying orthogonal transform processing (further quantization processing) to the target image in the first block.
  • the number calculation unit 102 includes the second block having the second size equal to or larger than the first size based on the input numerical sequence, and is included in the numerical sequence related to the first block included in the second block.
  • the number of first blocks whose numerical value is equal to or greater than a predetermined value (hereinafter referred to as “first number”) is calculated (step S101).
  • the second size is 32 ⁇ 32 pixels.
  • the number calculation unit 102 sets a pixel block having one or more 32 ⁇ 32 pixels included in a frame (hereinafter, referred to as “32 ⁇ 32 pixel block”) as a processing target.
  • the first block included in the 32 ⁇ 32 pixel block is specified.
  • the number calculation unit 102 determines whether or not a numerical value included in a numerical value sequence (for example, a transform coefficient value sequence) related to the identified first block is equal to or greater than a predetermined value, and the numerical value sequence is the predetermined value When the numerical value which is more than the value is included, it is determined that the first block is a non-zero block.
  • the number calculation unit 102 calculates the number of first blocks determined to be non-zero blocks (the “first number” described above) (step S101).
  • the number calculation unit 102 based on the input numerical sequence, for a third block having a third size equal to or smaller than the first size, the numerical value included in the numerical sequence related to the third block is greater than or equal to a predetermined value.
  • the number of certain first blocks (hereinafter referred to as “second number”) is calculated (step S101).
  • the third size is 4 ⁇ 4 pixels (size).
  • the number calculation unit 102 targets a non-zero block included in a 32 ⁇ 32 pixel block as a target, and a third block (hereinafter, 4 ⁇ 4 pixels included in the non-zero block). (Represented as “4 ⁇ 4 pixel block”).
  • the number calculation unit 102 determines whether or not a numerical sequence (for example, a transform coefficient value sequence) related to the set third block includes a numerical value that is equal to or greater than a predetermined value, and the numerical sequence is equal to or greater than the predetermined value. Is included, it is determined that the third block is a non-zero block.
  • the number calculation unit 102 calculates the number of third blocks determined to be non-zero blocks (the “second number” described above) (step S101).
  • the position calculation unit 103 calculates first position information representing a position where the second information regarding the second block is stored based on the calculated first number and the calculated second number (step S102).
  • the second information is information (for example, the size of the first block, the second block) indicating the first block (for example, 16 ⁇ 16 pixel block) included in the second block (for example, 32 ⁇ 32 pixel block).
  • the second information is a third block (for example, 4 ⁇ 4 pixel block) included in a first block (for example, 16 ⁇ 16 pixel block) in the second block (for example, 32 ⁇ 32 pixel block). 2nd position information showing the storage place of the numerical sequence concerning.
  • the information creating unit 104 creates first information including the first position information calculated by the position calculating unit 103 with respect to one or more second blocks included in the target image (step S103).
  • the information creation unit 104 includes, for one or more second blocks included in the target image, second position information that includes second position information that represents a storage location of a numerical sequence related to the third block included in the second block.
  • Information is created (step S103).
  • the information creation unit 104 may further create second information including the size of the second block, position information indicating the position of one or more second blocks included in the first block, and the like.
  • the information creation unit 104 stores the second information calculated for a certain second block in a position (storage area) represented by the first position information calculated for the certain second block.
  • the information storage unit 105 sets, as the target image, the third block in which the numerical value included in the numerical value sequence is greater than or equal to a predetermined value among the one or more third blocks included in the target image.
  • the included value is read, and the read value is stored in the position (storage area) indicated by the second position information indicating the storage destination of the numerical sequence related to the third block in the storage device (memory) (step S104).
  • the information storage unit 105 reads a value included in the target image with respect to the third block that is a non-zero block, and stores the read value at a position represented by the second position information.
  • the information storage unit 105 stores only the value of the transform coefficient related to the third block (eg, 4 ⁇ 4 pixel block) that is a non-zero block in the storage device by the process shown in step S104.
  • the information compression apparatus 101 when the information compression apparatus 101 is realized by using the function of the GPU (for example, GPU 525 in FIG. 18), the information compression apparatus 101 creates the first information, the second information, and Only the value of the transform coefficient related to the third block that is a non-zero block may be transmitted to the CPU (for example, the CPU 526 in FIG. 18).
  • the CPU for example, the CPU 526 in FIG. 18
  • information necessary for the encoding process can be compressed to a smaller size.
  • the information compression apparatus 101 restores information that is necessary for encoding processing (for example, information about a processing unit such as a pixel block having a predetermined size) in the information constituting the target image.
  • information necessary for the encoding process related to the target image is stored as first information created by the information creating unit 104 and second information created by the information creating unit 104.
  • the information storage unit 105 stores only the values of the transform coefficients related to the third block that is a non-zero block in the storage device, so that, for example, the values of transform coefficients that are not referred to when creating a restored image or the like are stored. Not stored in the device. That is, the information storage unit 105 stores only information that is referred to when creating a restored image or the like.
  • information necessary for the encoding process can be compressed to a smaller size.
  • FIG. 3 is a block diagram showing a configuration of the moving image encoding apparatus 201 according to the second embodiment of the present invention.
  • a video encoding apparatus 201 includes a motion prediction unit 202, a subtraction conversion unit 205, a quantization unit 206, an inverse quantization unit 208, an inverse conversion addition unit 209, and a filter unit 203.
  • a frame buffer 204 an information compression device 207, a quantization control unit 210, an encoding unit 211, and an information restoration unit 212.
  • the information compression device 207 is, for example, the information compression device 101 shown in FIG.
  • the motion prediction unit 202 the subtraction conversion unit 205, the quantization unit 206, the inverse quantization unit 208, the inverse conversion addition unit 209, the filter unit 203, the frame buffer 204, and the information compression device 207 are illustrated. It is assumed that the processes in and are assigned to the GPU 213 as indicated by a broken line in FIG. It is assumed that the processes in the quantization control unit 210, the encoding unit 211, and the information restoration unit 212 are assigned to the CPU 214 as indicated by a broken line in FIG.
  • the motion prediction unit 202, the subtraction conversion unit 205, the quantization unit 206, the inverse quantization unit 208, the inverse conversion addition unit 209, the filter unit 203, the quantization control unit 210, and the encoding unit 211 Since processing similar to that described with reference to FIGS. 14 to 19 is executed, detailed description regarding processing in each of these units is omitted in this embodiment.
  • FIG. 4 is a flowchart showing the flow of processing in the video encoding apparatus 201 according to the second embodiment.
  • the subtraction conversion unit 205 For each frame in the moving image data, the subtraction conversion unit 205 subjects the first block having a predetermined size as a target, and performs orthogonal transform processing on the image in the pixel block, thereby generating a conversion coefficient value sequence for the first block. Create (step S201). The subtraction conversion unit 205 outputs the created conversion coefficient value sequence to the quantization unit 206.
  • the quantization unit 206 receives the transform coefficient value sequence output from the subtraction transform unit 205 and quantizes each value included in the input transform coefficient value sequence, thereby quantizing the transform coefficient value sequence.
  • the converted conversion coefficient value sequence is created (step S202).
  • the quantization unit 206 outputs the quantized transform coefficient value sequence to the information compression device 207. That is, the transform coefficient value sequence output from the quantization unit 206 is a numerical sequence created for the first block with respect to each frame.
  • the information compression apparatus 207 relates to each first block shown in the first rectangle to the twenty-second rectangle as illustrated in FIG. Enter the coefficient value sequence.
  • the first block is a pixel block having a predetermined size (for example, 16 ⁇ 16 pixels, 8 ⁇ 8 pixels).
  • the information compression apparatus 207 relates to a second block having a second size (for example, 32 ⁇ 32 pixels) equal to or larger than the first size based on the input numerical sequence, and the first block included in the second block.
  • a first number of first blocks whose numerical value included in the numerical value sequence relating to the block is equal to or greater than a predetermined value is calculated (step S203). For example, in the case of the example shown in FIG. 20, the information compression apparatus 207 determines that the first number of non-zero blocks included in the 32 ⁇ 32 pixel block is 5 (that is, the first rectangle) based on the input numerical sequence. , Fourth rectangle, seventh rectangle, eighth rectangle, and fifteenth rectangle).
  • the information compression apparatus 207 determines whether the third block is a non-zero block with respect to a third block having a third size equal to or smaller than the first size (eg, 4 ⁇ 4 pixels). Determine whether or not. For example, when the size of the non-zero block is 16 ⁇ 16 pixels (illustrated in FIG. 5), the information compression device 207 divides into four equal parts in the vertical direction and the horizontal direction.
  • FIG. 5 is a diagram illustrating an example of a first block having 16 ⁇ 16 pixels.
  • the information compression apparatus 207 divides the 16 ⁇ 16 pixel block into four equal parts in the vertical direction and the horizontal direction, thereby indicating 16th rectangle indicated by the 23rd to 38th rectangles. It is determined whether each of the 4 ⁇ 4 pixel blocks is a non-zero block.
  • a pixel block represented by a circle with a circle represents a non-zero block
  • a rectangle without a circle represents a zero block.
  • the information compression device 207 determines that the third block is a non-zero block when the numerical sequence relating to the third block represented by the twenty-third rectangle includes a non-zero transform coefficient. .
  • the information compression apparatus 207 determines that the third block is a zero block when the values of the transform coefficients in the numerical sequence related to the third block are all zero.
  • the information compression apparatus 207 also performs the same determination as the determination process performed on the third block represented by the twenty-third rectangle for each third block indicated by the twenty-fourth to thirty-eighth rectangles included in the second block. Execute the process. In the case of the example shown in FIG.
  • the information compression apparatus 207 determines that the third block indicated by the twenty-third rectangle to the twenty-fifth rectangle and the twenty-eighth rectangle is a non-zero block, and the twenty-sixth rectangle.
  • the third block indicated by the 27th rectangle and the 29th to 38th rectangles is determined to be a zero block.
  • FIG. 6 is a diagram illustrating an example of a first block having 8 ⁇ 8 pixels.
  • the information compression apparatus 207 determines whether or not a 4 ⁇ 4 pixel block is a non-ze block by, for example, dividing into two equal parts in the vertical direction and the horizontal direction. judge.
  • the information compression apparatus 207 calculates the number of third blocks (that is, the second number) that are non-zero blocks (step S203). For example, in the example shown in FIGS. 5 and 6, the information compression apparatus 207 uses the second number of 5 (that is, the third block indicated by the 23rd to 25th rectangles, the 28th rectangle, and the 39th rectangle). Number).
  • the information compression device 207 calculates second position information indicating the position where the numerical sequence relating to each third block is stored (step S204). Further, the information compression apparatus 207 calculates first position information representing a position where the second information regarding the second block is stored based on the calculated first number and the calculated second number (step S204). In step S204, the information compression apparatus 207 calculates first position information for storing second information regarding each second block.
  • step S204 The processing related to step S204 will be described more specifically.
  • the information compression apparatus 207 calculates the cumulative number of the second number calculated until the processing related to the certain first block is started for the frame being processed. By doing so, the second position information may be calculated. Further, when the information compression apparatus 207 calculates the first position information regarding a certain second block, the cumulative number of the first number calculated until the processing regarding the certain second block is started for the frame being processed. The second position information may be calculated by calculating.
  • the information compression device 207 creates first information and second information (step S205).
  • the information compression device 207 stores the created second information in a position (storage area) represented by the first position information in the storage device (memory). The process of creating the first information and the second information will be described later with reference to FIGS.
  • the information compression device 207 stores only the value of the transform coefficient for the third block that is a non-zero block by storing the numerical sequence for the third block that is a non-zero block at the position represented by the calculated second position information.
  • the converted conversion coefficient information (FIG. 7) is created (step S206).
  • FIG. 7 is a diagram conceptually illustrating an example of conversion coefficient information.
  • the information compression device 207 transfers (transmits) the created first information, second information, and transform coefficient information to the CPU 214 (step S207). ).
  • the transform coefficient information includes a numerical string relating to each third block represented by the 23rd to 25th rectangles and the 28th rectangle shown in FIG. 5 and the 39th rectangle shown in FIG. 6. And a numerical sequence related to the third block represented by.
  • the transform coefficient information since the circled rectangle represents the third block that is a non-zero block, the transform coefficient information includes only the value of the transform coefficient for the third block that is a non-zero block. It is out. That is, the transform coefficient information does not include the transform coefficient value for the third block that is a zero block.
  • FIG. 8 is a diagram conceptually illustrating an example of a data structure included in the first information.
  • the first information includes, for example, a block number capable of identifying the second block and the number of non-zero blocks among the first blocks included in the second block represented by the block number.
  • This is information in which the number of blocks to be represented is associated with the first position information representing the position where the second information related to the second block is stored.
  • the block number “1”, the number of pixel blocks “3”, and the first position information “1” are associated with each other.
  • the block number “2”, the number of pixel blocks “5”, and the first position information “4” are associated with each other. This includes five first blocks in which the second block (eg, 32 ⁇ 32 block) represented by the block number “2” is a non-zero block, and the second information regarding these first blocks is the first position. This indicates that information “4” is stored in the storage area having the head address.
  • the first position information “4” associated with the block number “2” starts the process related to the block represented by the block number “2” (in this case, the block It is calculated based on the number of blocks calculated up to the block represented by the number “1” (in this case, the number of blocks “3”).
  • the first position information regarding the block number “2” is the total value of the first position information “1” associated with the block number “1” and the number of blocks “3” associated with the block number “1”. Is calculated as The first information is not limited to the example described above.
  • the first information stores, for each 32 ⁇ 32 pixel block included in the frame, the number of non-zero blocks included in the 32 ⁇ 32 pixel block and information regarding the 32 ⁇ 32 pixel block. It represents information associated with the start address of the storage area. In this case, since the number of 32 ⁇ 32 pixel blocks included in the frame is constant, the first information has a fixed length.
  • the first information is information representing the start address of a storage area in which information related to the 32 ⁇ 32 pixel block is stored. That is, the first information includes the number of non-zero blocks included in the 32 ⁇ 32 pixel block and the first position information indicating the start address of the storage area in which the information regarding the 32 ⁇ 32 pixel block is stored. including.
  • the information compression apparatus 207 assigns a block number to the second block set in step S203, the assigned block number, the first number calculated in step S203, and the first number calculated in step S204. First information associated with position information is created.
  • FIG. 9 is a diagram conceptually illustrating an example of a data structure included in the second information.
  • the second information is second position information indicating a storage area for storing a transform coefficient sequence (or a numerical sequence) regarding a third block included in the first block with respect to a certain first block. It is information including.
  • the second information may further include information indicating whether or not the third block included in the first block is a non-zero block (a column of “non-zero?” In FIG. 9).
  • the second information may include information indicating the positions of one or more third blocks included in the second block ("vertical direction” and "horizontal direction” of "position” in FIG. 9).
  • the value of the last non-zero transform coefficient appears in the first block.
  • Positions (vertical direction” and “horizontal direction” of "non-zero position” in FIG. 9) may be included.
  • the second information may include information exemplified in the following information 1 to information 6 regarding the first block.
  • Information 1 Information indicating whether the first block is a luminance block or a color difference block ("type information" in FIG. 9, cIdx),
  • Information 2 Position information indicating the position of one or more first blocks included in the second block ("position” in FIG. 9, vertical direction (posY), and horizontal direction (posX)),
  • Information 4 When the non-zero transform coefficient included in the second block is scanned according to a predetermined scan order, the non-zero representing the position where the non-zero transform coefficient appears last in the second block Position information ("non-zero position" in FIG.
  • LastSignificantCoeffX (horizontal direction), and lastSignificantCoeffY (vertical direction)
  • Information 5 In the second block, when the third block is scanned according to a predetermined scan order, block information indicating whether each third block is a non-zero block (“non-zero?” In FIG. 9). , Coded_sub_block_flag), (Information 6) Second position information (index) representing the start address of the storage area in which the transform coefficient relating to each third block which is a non-zero block is stored in the second block.
  • the second position information may be, for example, a value indicating the start address indicating the storage area in which the transform coefficient related to the third block which is a non-zero block is stored, expressed by the relative position from the start third block. Good.
  • the information compression device 207 the information restoration unit 212, and the like can read the value of the transform coefficient regarding the non-zero 4 ⁇ 4 block in a certain non-zero block by referring to the second position information in the information 6. .
  • second position information “5” are associated with each other.
  • the type of the first block is a color difference block
  • the position of the first block in the second block is (1, 1)
  • the size of the first block is 8.
  • the position where the non-zero transform coefficient value appears at the end is (5, 5), and the third block is scanned in the first block.
  • the second position information in the second information illustrated in FIG. 9 is, for example, shown in the third row (type information “2”, vertical direction “1”, etc. This is calculated by the cumulative number of the second number calculated until the processing related to the first row is started (in this case, the first to second rows).
  • the first block shown in the first row includes two non-zero third blocks
  • the first block shown in the second row contains two non-zero third blocks.
  • the 2nd information in case it contains is illustrated.
  • the second information is not limited to the example shown in FIG.
  • the second position information in the second information includes, for example, a start address indicating a storage area for storing a transform coefficient related to the third block for each third block that is a non-zero block included in the first block. May be included.
  • step S205 the information compression apparatus 207 according to the present embodiment creates “information 2” described above, for example, by specifying the positions of one or more first blocks included in the second block.
  • the information compression device 207 specifies the position where the non-zero transform coefficient appears when the non-zero transform coefficient included in the second block is scanned in accordance with a predetermined scan order, thereby the above-described “information 4”.
  • Create In the second block the information compression apparatus 207 scans the third block in accordance with a predetermined scan order, and determines whether each scanned third block is a non-zero block, thereby the above-described “information 5”.
  • Create The information compression apparatus 207 stores the read type information regarding the “information 1” in the second information.
  • FIG. 10 is a diagram conceptually illustrating an example of a data structure included in the transform coefficient information.
  • the values of the conversion coefficients included in the conversion coefficient value sequence illustrated in FIG. 7 are specifically shown.
  • the transform coefficient information includes transform coefficient values “1, 2, 3,. This represents that the value of the transform coefficient regarding the third block which is a non-zero block is “1, 2, 3,...”.
  • the information compression apparatus 207 stores recording information including the first information illustrated in FIG. 8, the second information illustrated in FIG. 9, and the transform coefficient information illustrated in FIG. create.
  • the storage area in which the first information is stored, the storage area in which the second information is stored, and the storage area in which the conversion coefficient information is stored are continuous in the address space of the main storage device (memory). It is desirable to place it at the address. This is because these three pieces of information are related to each other, and therefore, when transferring one piece of information, it is necessary to transfer the other two pieces of information. For example, by arranging the storage areas in which these three pieces of information are stored at consecutive addresses, the information compression apparatus 207 transfers information in a single process when transferring from the CPU 214 to the GPU 213. Burst transfer that can be performed can be performed.
  • the information compression apparatus 207 performs a plurality of steps S201 and S202.
  • the non-zero blocks may be processed in parallel or pseudo-parallel.
  • the information compression device 207 includes steps S203 and S204 may be processed in parallel or pseudo-parallel with respect to a plurality of 32 ⁇ 32 pixel blocks.
  • the processing described in steps S201 to S204 is not limited to the above-described example.
  • the processing shown in step S204 includes processing for referring to a processing result regarding a pixel block different from the certain pixel block.
  • This process is a process for calculating a partial sum of continuous numeric strings, and is also called a scan process or a prefix_sum process.
  • a scan process or a prefix_sum process Regarding the scan process or the prefix_sum process, an efficient parallel processing technique has been proposed, but description of the parallel processing technique is omitted here.
  • steps S201 to S204 in FIG. 4 are processes capable of efficient parallel processing. Therefore, by assigning the processing to a processor for parallel processing such as GPU 213, moving picture coding is performed. Processing can be performed at high speed.
  • the information compression apparatus 207 assigns the storage area for storing the first information, the storage area for storing the second information, and the storage area for storing the transform coefficient information to the continuous addresses, so that the information compression apparatus 207 performs step S207.
  • the data transfer shown in (1) can be realized by one burst transfer. By allocating the storage area in this way, the information compression apparatus 207 can realize data transfer in a short period.
  • the video encoding apparatus 201 according to the second embodiment information necessary for the encoding process can be compressed to a smaller size. This is because the moving picture encoding apparatus 201 according to the second embodiment includes the information compression apparatus 101 according to the first embodiment. The reason will be described in detail.
  • the moving picture encoding apparatus 201 manages each frame in units of 4 ⁇ 4 pixel blocks, and further executes a process of transferring data regarding only non-zero 4 ⁇ 4 block information.
  • the transform coefficient having a value of zero is not used in the post-processing of the moving image encoding process, it is necessary to transfer it to the CPU 214 that executes the post-processing as calculated in the processing executed by the GPU 213. There is no.
  • the video encoding apparatus 201 for example, only the transform coefficients of non-zero 4 ⁇ 4 blocks are transferred, so that the size of transfer data can be greatly reduced.
  • the moving picture encoding apparatus 201 sets the size of the transfer data to 10 minutes. Can be reduced to about 1 or less.
  • the data conversion process can be executed at high speed. This is because the data conversion process itself is a highly efficient parallel process, and the data conversion process can be realized by a parallel processor such as the GPU 213.
  • a parallel processor such as the GPU 213.
  • information on a pixel block having 32 ⁇ 32 pixels is hierarchically managed by small pixel blocks such as an orthogonal transform block and a 4 ⁇ 4 pixel block, so that each data conversion process itself is performed. High parallelism can be realized.
  • the data conversion process in the method described in Non-Patent Document 5 is complicated.
  • This method scans all the transform coefficients in accordance with a predetermined scan order with respect to the orthogonal transform block, and calculates a transform coefficient value sequence including the transform coefficients in the scanned order.
  • values such as EOB and Index are sequentially calculated based on the conversion coefficients included in the conversion coefficient value sequence.
  • the method sequentially calculates condition determination for each conversion coefficient in the process of calculating EOB. Therefore, even if this method is implemented in a processor capable of parallel processing such as GPU 213, the method cannot be processed in a short time.
  • Non-Patent Document 5 it is necessary to sequentially process 1024 transform coefficients for an orthogonal transform block having 32 ⁇ 32 pixels.
  • ⁇ (4 ⁇ 4)) orthogonal transform blocks, 64 4 ⁇ 4 pixel blocks, or 16 ( 4 ⁇ 4) transform coefficients. Therefore, according to the moving picture coding apparatus 201 according to the present embodiment, the sequential processing can be greatly reduced, so that the moving picture coding process can be executed in a short time.
  • Encoding method is H.264.
  • H.265 In the case of the H.265 system, it is necessary to process an orthogonal transform block having a size of 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, or the like.
  • the data conversion processing according to the H.265 system requires more processing.
  • the technique described in Non-Patent Document 5 is described in H.264.
  • a 32 ⁇ 32 pixel orthogonal transform block is processed according to the H.265 system, it is necessary to sequentially execute processing on a transform coefficient value sequence including 1024 transform coefficients.
  • the data conversion process requires a long processing time.
  • the time required for processing such as data conversion processing and data reverse conversion processing becomes long, so that the moving image encoding processing can be executed in a short time. Can not.
  • FIG. 11 is a block diagram showing the configuration of the information compression apparatus 301 according to the third embodiment of the present invention.
  • the information compression apparatus 301 includes a number calculation unit 302, a position calculation unit 103, an information creation unit 104, an information storage unit 105, and a parameter determination unit 303.
  • the information compression apparatus 301 executes processing in the moving picture encoding apparatus 201 as exemplified in FIG.
  • the information compression apparatus 301 corresponds to the information compression apparatus 207 shown in FIG.
  • FIG. 12 is a flowchart showing the flow of processing in the video encoding apparatus 201 having the information compression apparatus 301 according to the third embodiment.
  • the third block is a pixel block determined to be a non-zero block among pixel blocks having 4 ⁇ 4 pixels (that is, a 4 ⁇ 4 pixel block).
  • the first block is represented as “orthogonal transform block”.
  • a pixel block determined to be a non-zero block among the orthogonal transform blocks is represented as a “non-zero orthogonal transform block”.
  • the first block and the third block are not limited to the example described above.
  • the subtraction transform unit 205 performs orthogonal transform processing on the image in the pixel block for the first block having a predetermined size with respect to one or more frames included in the moving image data.
  • a conversion coefficient value sequence representing an image in the block is created (step S201).
  • the subtraction conversion unit 205 outputs the created conversion coefficient value sequence to the quantization unit 206.
  • the quantization unit 206 receives the transform coefficient value sequence output from the subtraction transform unit 205 and quantizes each value included in the input transform coefficient value sequence, thereby quantizing the transform coefficient value sequence.
  • the converted conversion coefficient value sequence is created (step S202).
  • the quantization unit 206 outputs the quantized transform coefficient value sequence to the information compression apparatus 301. That is, the transform coefficient value sequence output by the quantization unit 206 is a transform coefficient value sequence created for the first block with respect to each frame.
  • the number calculation unit 302 in the information compression apparatus 301 inputs the numerical sequence output from the quantization unit 206 (that is, the transform coefficient value sequence related to the orthogonal transform block).
  • the number calculation unit 302 calculates the first number and the second number by executing the processing in step S203 as described with reference to FIG. 4 (step S303).
  • the number calculation unit 302 outputs the calculated first number and second number to the parameter determination unit 303.
  • the parameter determination unit 303 inputs the first number and the second number output from the number calculation unit 302.
  • the parameter determination unit 303 determines whether or not the input second number satisfies a predetermined second criterion (step S304).
  • the predetermined second reference is a condition indicating whether or not the second number exceeds a predetermined number.
  • the predetermined number is a ratio to the number of 4 ⁇ 4 pixel blocks (ie, “third block”) included in the non-zero orthogonal transform block included in the frame (for example, 20% of the number).
  • the parameter determination unit 303 determines the transfer data amount (generated code amount) required when the frame is subjected to the moving image encoding process by determining whether or not the second number satisfies the predetermined second criterion. It can be determined whether there are many or few.
  • Parameter determination unit 303 sets the value of the quantization parameter to a larger value when the input second number does not satisfy the predetermined second reference (NO in step S304) (step S305). For example, when the second number exceeds 20% of the number of 4 ⁇ 4 pixel blocks in the frame, the parameter determination unit 303 determines that the amount of transfer data is too large, and determines whether or not it is a non-zero block. A larger value is set as the quantization parameter value to be determined. By increasing the value of the quantization parameter, the number of pixel blocks in which it is determined that the third block (or the first block) is a non-zero block decreases. As a result, the number of non-zero 4 ⁇ 4 blocks and the like are reduced by increasing the value of the quantization parameter.
  • the number calculation unit 302 based on the set quantization parameter, the first number of the first block (eg, non-zero block) and the second number of the third block (eg, non-zero 4 ⁇ 4 block). The number is calculated (step S303).
  • step S304 When the input second number satisfies the predetermined second reference (YES in step S304), the position calculation unit 103 executes the process shown in step S204.
  • the predetermined second standard is not limited to the example described above.
  • the predetermined second criterion is a process of weighted averaging the first number of non-zero orthogonal transform blocks included in the frame and the second number of non-zero 4 ⁇ 4 blocks included in the frame. It may be a condition representing whether or not the evaluation value calculated by the above exceeds a predetermined upper limit value.
  • the process of calculating the weighted average is, for example, a process of calculating a value obtained by multiplying the first number by a predetermined weight and a value obtained by multiplying the second number by a predetermined weight and adding the two calculated values. .
  • the parameter determination unit 303 calculates the ratio of the evaluation value with respect to the predetermined upper limit value, and sets the quantization parameter according to the calculated ratio. A width for increasing the set value (increase width) is calculated. The parameter determination unit 303 sets the value of the quantization parameter based on the calculated increase width.
  • the information compression apparatus 301 executes processing similar to the processing shown in steps S205 to S207 as described with reference to FIG.
  • the information compression apparatus 301 According to the information compression apparatus 301 according to the third embodiment, information necessary for the encoding process can be compressed to a smaller size.
  • the reason why the information compression apparatus 301 has the effect is the same as the reason why the information compression apparatus 101 according to the first embodiment has the effect.
  • the time required for the moving image encoding process can be adjusted. This is because the information compression apparatus 301 sets a quantization parameter value and executes a quantization process based on the set value. The reason will be described in detail.
  • the value of the quantization parameter represents a criterion for determining whether or not the first block (or the third block) is a non-zero block.
  • the information compression apparatus 301 sets the quantization parameter value to a larger value to reduce the amount of transfer data. Therefore, according to the information compression apparatus 301 according to the third embodiment, since the amount of transfer data can be adjusted, the time required for the moving image encoding process can be adjusted. Also, according to the information compression apparatus 301, the amount of transfer data can be further reduced by the process of setting a larger value as the quantization parameter, so that it is possible to provide a moving picture encoding process with higher processing efficiency. it can.
  • the parameter determination unit 303 adjusts the quantization parameter value based on the number of non-zero orthogonal transform blocks and the number of non-zero 4 ⁇ 4 blocks. Amount) is small. Therefore, according to the information compression apparatus 301 including the parameter determination unit 303, an appropriate quantization process can be realized by a process with a small amount of calculation, and a feature quantity representing a frame can be calculated by the quantization process. Therefore, according to the information compression apparatus 301, even when the value of the quantization parameter is inappropriate, or even when the transfer data amount is extremely large as a result of the input image being very complicated, the moving image Encoding processing can be realized stably.
  • the moving image coding apparatus uses a frame different from the specific frame when the amount of transfer data is extremely large for the specific frame in the moving image data.
  • processing for reducing the transfer data amount is executed.
  • the image quality related to a frame different from the specific frame is lowered.
  • the information compression apparatus 301 appropriately sets the value of the quantization parameter, a frame in which the generated code amount is extremely large does not occur. Therefore, according to the information compression apparatus 301, a situation in which the image quality relating to a frame different from the specific frame does not occur does not occur.
  • the information compression apparatus 301 according to the third embodiment can provide stable image quality with respect to moving image data.
  • H The processing in the information compression device 301, the processing in the moving image encoding device, and the like have been described with reference to an example in which encoding processing is executed according to the H.265 system.
  • the encoding method is H.264.
  • the present invention is not limited to the H.265 system, and may be a different encoding system such as the VC-1 system, or an encoding system not included in the international standard moving image encoding system.
  • the process regarding a conversion coefficient is not limited to the example mentioned above, For example, the system by which the information of the conversion coefficient regarding a pixel block is managed hierarchically may be sufficient.
  • the processing in the information compression apparatus 301, the processing in the video encoding processing apparatus, and the like have been described with reference to an example of a video encoding scheme that performs orthogonal transform processing such as DCT.
  • the processing in the information compression apparatus 301 and the moving image encoding apparatus are encoding based on a conversion method such as Wavelet conversion, or a code that performs quantization without executing conversion processing on a prediction error image. Even in the case of the conversion method or the like, the same processing as in the orthogonal transformation processing described above may be executed.
  • the processing in the information compression device 301, the processing in the moving image encoding device, and the like have been described with reference to an example in which the accelerator is a GPU.
  • the accelerator may be a plurality of devices such as a CPU, a PC cluster, an FPGA, and a dedicated LSI circuit.
  • the information compression device 301 performs a process similar to the process executed when the accelerator is a GPU. Execute.
  • LSI represents an abbreviation for Large-Scale_Integration.
  • PC represents an abbreviation for personal_computer.
  • the information compression apparatus or the encoding apparatus may be realized using at least two calculation processing apparatuses physically or functionally.
  • the information compression apparatus or encoding apparatus may be realized as a dedicated apparatus.
  • FIG. 13 is a diagram schematically illustrating a hardware configuration example of a calculation processing apparatus capable of realizing the information compression apparatus or the encoding apparatus according to the first to third embodiments.
  • the calculation processing device 220 includes a central processing unit (Central_Processing_Unit, hereinafter referred to as “CPU”) 221, a memory 222, a disk 223, a nonvolatile recording medium 224, a communication interface (hereinafter, referred to as “communication IF”) 227, and A display 228 is included.
  • the calculation processing device 220 may be connectable to the input device 225 and the output device 226.
  • the calculation processing device 220 can transmit / receive information to / from other calculation processing devices and communication devices via the communication IF 227.
  • the non-volatile recording medium 224 is a computer-readable, for example, compact disc (Compact_Disc) or digital versatile disc (Digital_Versatile_Disc).
  • the nonvolatile recording medium 224 may be a universal serial bus memory (USB memory), a solid state drive (Solid_State_Drive), or the like.
  • the nonvolatile recording medium 224 holds such a program without being supplied with power, and can be carried.
  • the nonvolatile recording medium 224 is not limited to the above-described medium. Further, the program may be carried via the communication IF 227 and the communication network instead of the nonvolatile recording medium 224.
  • the CPU 221 copies a software program (computer program: hereinafter simply referred to as “program”) stored in the disk 223 to the memory 222 and executes arithmetic processing.
  • the CPU 221 reads data necessary for program execution from the memory 222. If display is necessary, the CPU 221 displays the output result on the display 228. When output to the outside is necessary, the CPU 221 outputs an output result to the output device 226. When inputting a program from the outside, the CPU 221 reads the program from the input device 225.
  • the CPU 221 interprets the information compression program (FIG. 2, FIG. 4, or FIG. 12) in the memory 222 corresponding to the function (process) represented by each unit shown in FIG. 1, FIG. 3, or FIG. And run.
  • the CPU 221 sequentially executes the processes described in the above-described embodiments of the present invention.
  • the present invention can be realized by such an information compression program or an encoding program. Furthermore, it can be understood that the present invention can also be realized by a computer-readable non-volatile recording medium in which the information compression program or the encoding program is recorded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

符号化処理に必要な情報をより小さなサイズに圧縮することができる情報圧縮装置等を提供する。情報圧縮装置101は、対象画像が第1サイズに分割された複数の第1ブロックにおける、該対象画像を表す数値列に基づき、該第1サイズ以上の第2サイズを有する第2ブロックに関して、該第2ブロックに含まれている該第1ブロックに関する該数値列に含まれている数値が所定の値以上である該第1ブロックの第1個数と、該第1サイズ以下の第3サイズを有する第3ブロックに関して、該第3ブロックに関する該数値列に含まれている数値が該所定の値以上である第2個数とを算出する個数算出部102と、算出した該第2個数に基づき該第3ブロックに関する該数値列をメモリに格納する際の第2位置情報を算出し、算出した該第1個数と該第2個数とに基づき、該第2ブロックに含まれている該第1ブロックに関する第2情報であって、該第1ブロックに含まれている該第3ブロックに関する該第2位置情報を少なくとも含んでいる該第2情報を該メモリに格納する際の第1位置情報を算出する位置算出部103と、少なくとも該第1位置情報を含む第1情報と、該第2情報とを作成し、作成した該第2情報を、該メモリのうち該第1位置情報が表す記憶領域に格納する情報作成部104と、該第3ブロックに関する該数値列に含まれている数値が該所定の値以上である該第3ブロックに関する該数値列を、該メモリのうち該第2位置情報が表す記憶領域に格納する情報格納部105とを有する。

Description

情報圧縮装置、情報圧縮方法、記録媒体、及び、符号化装置
 本発明は、たとえば、情報のサイズを圧縮する情報圧縮装置等に関する。
 動画像データの圧縮符号化技術は、広く普及し、たとえば、デジタル放送、光学ディスクを用いた映像コンテンツの頒布、インターネット等の通信ネットワークを介した映像配信等の用途に利用されている。動画像データを低ビットレート、高圧縮率かつ高画質で符号化して符号化データを生成したり、符号化された動画像データを復号化したりする符号化技術としては、たとえば、国際電気通信連合(ITU)によって標準化されたH.261方式、及び、H.263方式等の方式がある。さらに、符号化技術としては、たとえば、国際標準化機構(ISO)によって作成されたMPEG-1、MPEG-2、及び、MPEG-4や、米国映画テレビ技術者協会(SMPTE)によって標準化されたVC-1等の方式が国際標準規格として広く用いられている。
 ITUは、International_Telecommunication_Unionの略称を表す。ISOは、International_Organization_for_Standardizationの略称を表す。MPEGは、Moving_Picture_Experts_Groupの略称を表す。SMPTEは、Society_of_Motion_Picture_and_Television_Engineersの略称を表す。
 また、ITUとISOとの共同にて規格化されたH.264/MPEG-4_AVC(以降、「H.264方式」と表す)は、普及が進んでいる。非特許文献1は、H.264方式について開示している。さらに、H.265/MPEG-H_HEVC(以降、「H.265方式」と表す)は、動画像データに関する圧縮符号化に関する規格として、2013年に標準化された。非特許文献2は、H.265方式について開示している。H.265方式は、動画像データに含まれている映像に関して、H.264方式と同等な画像品質を担保しつつ、該動画像データのサイズを半分程度に圧縮することが可能な技術であると言われており、今後、幅広い分野での活用が期待されている。
 AVCは、Advanced_Video_Codingの略称を表す。HEVCは、High_Efficiency_Video_Codingの略称を表す。
 これらの動画像符号化技術は、たとえば、動き補償予測処理、予測誤差画像に関する直交変換処理、直交変換係数に関する量子化処理、及び、量子化処理された直交変換係数に関するエントロピー符号化処理等の要素技術を含むので、ハイブリッド符号化技術と呼ばれている。これらの動画像符号化技術は、動画像データの特性の一つである空間方向と時間軸方向とに関する画像データ間の相関性に基づき、フレーム内予測、及び、フレーム間予測を実行することによって、動画像データに関する高い圧縮効率を達成している。フレーム間予測においては、時間的に近接する画像データ間での被写体や背景等の対象体の動き、該対象物に関する位置ずれを補正することによって、予測画像を生成する動き補償予測処理が利用されている。
 動画像符号化技術の例として、たとえば、特許文献1、及び、非特許文献5には、該動画像符号化処理を効率よく実施する符号化装置が開示されている。これらの装置は、量子化された直交変換係数を含む変換係数値列のサイズを小さくすることによって、動画像符号化処理を効率よく実施する。
国際公開第2014/167609号
ITU-T_Recommendation_H.264 「Advanced_video_coding_for_generic_audiovisual_services」、[online]、2010年3月、[2015年10月20日検索]、インターネット<URL:http://www.itu.int/rec/T-REC-H.264> ITU-T_Recommendation_H.265 「Advanced_video_coding_for_generic_audiovisual_services」、[online]、2013年4月、[2015年10月20日検索]、インターネット<URL:http://www.itu.int/rec/T-REC-H.265> Joint_Video_Team(JVT)_of_ISO/IEC_MPEG_and_ITU-T_VCEG、Document_JVT-O079、「Text_Description_of_Joint_Mode_Reference_Encoding_Method_and_Decoding_Concealment_Method」、[online]、2005年4月、[2015年10月20日検索]、インターネット<URL:http://www.researchgate.net/publication/248617543_Text_Description_of_Joint_Model_Reference_Encoding_Methods_and_Decoding_Concealment_Methods> Joint_Collaborative_Team_on_Video_Coding(JCT-VC)_of_ITU-T_SG16_WP3_and_ISO/IEC_JTC1/SC29/WG11、Document_JCTVC-S1002、「High_Efficiency_Video_Coding(HEVC)_Test_Model_16(HM_16)_Improved_Encoder_Description」、[online]、2014年10月、[2015年10月20日検索]、インターネット<URL:http://mpeg.chiariglione.org/standards/mpeg-h/high-efficiency-video-coding/n14970-high-efficiency-video-coding-hevc-test-model-16> Microsoft_Corporation、「DirectX_Video_Acceleration_Specification_for_H.264/AVC_Decoding」、[online]、2010年12月、[2015年10月20日検索]、インターネット<URL:http://www.microsoft.com/en-us/download/details.aspx?id=11323>
 特許文献1に開示された動画像符号化技術が有する問題点は、たとえば、量子化された変換係数値列のサイズを十分に削減することができないことである。この問題点について詳細に説明する。特許文献1には、1024ビット(bit)の変換係数情報を、512ビットの固定長を有するデータに変換するデータ変換処理が開示されている。このデータ変換処理は、変換結果として算出される変換係数値列が固定長にて演算処理が実行されるので処理自体が簡単であり、さらに、高い並列化効率を達成することができる。しかし、該データ変換処理には、変換係数値列のサイズを、変換前の変換係数値列のサイズの2分の1にしか削減できないという問題点がある。さらに、該データ変換処理によれば、ある画素ブロックを直交変換した場合に算出される変換係数のすべての値(すなわち、直交変換ブロック、または、変換係数値列)に対して非ゼロの値か否かを示すフラグを記録するので、たとえば、H.265方式にて追加された画素ブロック(たとえば、16×16画素、32×32画素等)の場合に、該動画像符号化技術は、このフラグを記録するのに要する記憶領域が大きくなってしまう問題点を有する。
 そこで、本発明の主たる目的の1つは、符号化処理に必要な情報を、より小さなサイズに圧縮することができる情報圧縮装置等を提供することである。
 前述の目的を達成するために、本発明の一態様において、情報圧縮装置は、
 対象画像が第1サイズに分割された複数の第1ブロックにおける、前記対象画像を表す数値列に基づき、前記第1サイズ以上の第2サイズを有する第2ブロックに関して、前記第2ブロックに含まれている前記第1ブロックに関する前記数値列に含まれている数値が所定の値以上である前記第1ブロックの第1個数と、前記第1サイズ以下の第3サイズを有する第3ブロックに関して、前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である第2個数とを算出する個数算出手段と、
 算出した前記第2個数に基づき前記第3ブロックに関する前記数値列をメモリに格納する際の第2位置情報を算出し、算出した前記第1個数と前記第2個数とに基づき、前記第2ブロックに含まれている前記第1ブロックに関する第2情報であって、前記第1ブロックに含まれている前記第3ブロックに関する前記第2位置情報を少なくとも含んでいる前記第2情報を前記メモリに格納する際の第1位置情報を算出する位置算出手段と、
 少なくとも前記第1位置情報を含む第1情報と、前記第2情報とを作成し、作成した前記第2情報を、前記メモリのうち前記第1位置情報が表す記憶領域に格納する情報作成手段と、
 前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である前記第3ブロックに関する前記数値列を、前記メモリのうち前記第2位置情報が表す記憶領域に格納する情報格納手段と
 を備える。
 また、本発明の他の見地として、情報圧縮方法は、
 対象画像が第1サイズに分割された複数の第1ブロックにおける、前記対象画像を表す数値列に基づき、前記第1サイズ以上の第2サイズを有する第2ブロックに関して、前記第2ブロックに含まれている前記第1ブロックに関する前記数値列に含まれている数値が所定の値以上である前記第1ブロックの第1個数と、前記第1サイズ以下の第3サイズを有する第3ブロックに関して、前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である第2個数とを算出し、
 算出した前記第2個数に基づき前記第3ブロックに関する前記数値列をメモリに格納する際の第2位置情報を算出し、算出した前記第1個数と前記第2個数とに基づき、前記第2ブロックに含まれている前記第1ブロックに関する第2情報であって、前記第1ブロックに含まれている前記第3ブロックに関する前記第2位置情報を少なくとも含んでいる前記第2情報を前記メモリに格納する際の第1位置情報を算出し、
 少なくとも前記第1位置情報を含む第1情報と、前記第2情報とを作成し、作成した前記第2情報を、前記メモリのうち前記第1位置情報が表す記憶領域に格納し、
 前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である前記第3ブロックに関する前記数値列を、前記メモリのうち前記第2位置情報が表す記憶領域に格納する。
 また、本発明の他の見地として、情報圧縮プログラムは、
 対象画像が第1サイズに分割された複数の第1ブロックにおける、前記対象画像を表す数値列に基づき、前記第1サイズ以上の第2サイズを有する第2ブロックに関して、前記第2ブロックに含まれている前記第1ブロックに関する前記数値列に含まれている数値が所定の値以上である前記第1ブロックの第1個数と、前記第1サイズ以下の第3サイズを有する第3ブロックに関して、前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である第2個数とを算出する個数算出機能と、
 算出した前記第2個数に基づき前記第3ブロックに関する前記数値列をメモリに格納する際の第2位置情報を算出し、算出した前記第1個数と前記第2個数とに基づき、前記第2ブロックに含まれている前記第1ブロックに関する第2情報であって、前記第1ブロックに含まれている前記第3ブロックに関する前記第2位置情報を少なくとも含んでいる前記第2情報を前記メモリに格納する際の第1位置情報を算出する位置算出機能と、
 少なくとも前記第1位置情報を含む第1情報と、前記第2情報とを作成し、作成した前記第2情報を、前記メモリのうち前記第1位置情報が表す記憶領域に格納する情報作成機能と、
 前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である前記第3ブロックに関する前記数値列を、前記メモリのうち前記第2位置情報が表す記憶領域に格納する情報格納機能と
 をコンピュータに実現させる。
 さらに、同目的は、係る情報圧縮プログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
 本発明に係る情報圧縮装置等によれば、符号化処理に必要な情報をより小さなサイズに圧縮することができる。
本発明の第1の実施形態に係る情報圧縮装置が有する構成を示すブロック図である。 第1の実施形態に係る情報圧縮装置における処理の流れを示すフローチャートである。 本発明の第2の実施形態に係る動画像符号化装置が有する構成を示すブロック図である。 、第2の実施形態に係る動画像符号化装置における処理の流れを示すフローチャートである。 16×16画素のサイズを有する第1ブロックの一例を表す図である。 8×8画素のサイズを有する第1ブロックの一例を表す図である。 変換係数情報の一例を概念的に表す図である。 第1情報が有するデータ構造の一例を概念的に表す図である。 第2情報が有するデータ構造の一例を概念的に表す図である。 変換係数情報が有するデータ構造の一例を概念的に表す図である。 本発明の第3の実施形態に係る情報圧縮装置が有する構成を示すブロック図である。 第3の実施形態に係る情報圧縮装置を有する動画像符号化装置における処理の流れを示すフローチャートである。 本発明の各実施形態に係る情報圧縮装置または符号化装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。 動画像符号化装置が有する構成を示すブロック図である。 動画像符号化装置における処理の流れを示すフローチャートである。 GPUをアクセラレータとして有する動画像符号化装置が有する構成の一例を表す図である。 変換処理、量子化処理、逆量子化処理、及び、逆変換処理をGPUにて処理する場合の動画像符号化装置が有する構成例を表す図である。 変換係数値列のサイズを削減しつつ、動画像符号化処理を実行する動画像符号化装置が有する構成を表す図である。 動画像符号化装置における処理の流れを示すフローチャートである。 直交変換処理によって算出される情報を概念的に示す図である。
 本願発明の理解を容易にするため、本願発明に関連している動画像符号化装置501、及び、動画像符号化装置501における処理について、図14乃至図20を参照しながら説明する。
 まず、図14を参照しながら、該動画像符号化処理を実行する動画像符号化装置501について説明する。図14は、動画像符号化装置501が有する構成を示すブロック図である。
 動画像符号化装置501は、動き予測部502と、フィルタ部503と、フレームバッファ504と、量子化部505と、減算変換部506と、逆量子化部507と、逆変換加算部508と、量子化制御部509と、エントロピー符号化部510(以降、「符号化部510」と表す)とを有する。
 フレームバッファ504は、あるフレーム(フレーム画像)を符号化処理した結果として作成される画像データを格納することができる。説明の便宜上、フレームバッファ504には、あるフレームを符号化処理した結果として作成される画像データ(以降、「符号化済みフレーム」と表す)を含む動画像データが格納されているとする。
 動画像符号化装置501は、複数のフレームを含む動画像データを受信する場合に、受信した動画像データが所定のサイズに従って区画された画素ブロック単位にて、該動画像データを符号化する符号化処理を実行する。該所定のサイズは、たとえば、H.264方式、または、H.265方式に従い、以下に説明するように定義されている。
 H.264方式の場合に、該所定のサイズは、たとえば、16×16画素を有するサイズを有する画素ブロックである。該画素ブロックは、マクロブロック(MBL)とも呼ばれ、縦方向に16画素、横方向に16画素からなる矩形状の画素ブロックである。H.265方式の場合に、該所定のサイズは、コーディングツリーユニット(CTU)と呼ばれる16×16画素、32×32画素、または、64×64画素等のサイズを有している画素ブロックである。
 次に、図15を参照しながら動画像符号化装置501における処理について説明する。図15は、動画像符号化装置501における処理の流れを示すフローチャートである。
 動き予測部502は、受信した動画像データと、フレームバッファ504に格納されている符号化済みフレームとに基づき、受信した動画像データに含まれている対象体に関して、フレーム内に関する予測処理、または、フレーム間に関する予測処理を実行する(ステップS501)。動き予測部502は、該予測処理の結果として算出された予測画像を、減算変換部506に対して出力する。以降、フレーム間に関する予測処理を、「フレーム間予測処理」と表す。フレーム内に関する予測処理を、以降の説明においては、「フレーム内予測処理」と表す。
 減算変換部506は、動き予測部502が出力した予測画像を入力する。減算変換部506は、受信した動画像データにおいて予測対象であるフレームから、入力した予測画像を減算することによって、予測誤差画像を作成する(ステップS502)。減算変換部506は、作成した予測誤差画像に対して離散コサイン変換(DCT)等の直交変換処理を実行する(ステップS503)。この処理によって、減算変換部506は、作成した予測誤差画像と同等な画像を、複数の周波数成分を有する関数を用いて表す。減算変換部506は、各周波数成分に関して、該周波数成分を有する関数に対する変換係数を含む変換係数値列を算出する。減算変換部506は、作成した変換係数値列を、量子化部505に対して出力する。
 尚、DCTは、Discrete_Cosine_Transformの略称を表す。
 H.264方式の場合に、該直交変換処理は、4×4画素を有する画素ブロック、または、8×8画素を有する画素ブロック単位にて処理が実行される。H.265方式の場合に、該直交変換処理は、4×4画素を有する画素ブロック乃至32×32画素を有する画素ブロックごとにて直交変換処理が実行される。
 量子化部505は、減算変換部506が出力した変換係数値列と、量子化制御部509が算出した量子化パラメータ(QP)とを入力する。量子化部505は、入力した変換係数値列に含まれている各変換係数と、入力した量子化パラメータとに基づき、たとえば、変換係数の値が量子化パラメータの値よりも小さい場合に該変換係数の値として0を設定する等の量子化処理を実行する(ステップS504)。量子化部505は、該量子化処理によって算出された変換係数を含む変換係数値列を作成し、作成した変換係数値列を逆量子化部507に対して出力する。説明の便宜上、量子化部505が算出した変換係数を「量子化された変換係数」と表し、量子化部505が算出した変換係数値列を「量子化された変換係数値列」と表す。
 逆量子化部507は、該量子化された変換係数値列を入力し、該量子化された変換係数値列に基づき、入力された予測誤差画像と同等な(または、同じ)画像(以降、「復元画像」と表す)を作成する逆量子化処理を実行する(ステップS505)。逆量子化部507は、該逆量子化処理の結果として作成された復元画像を逆変換加算部508に対して出力する。
 逆変換加算部508は、逆量子化部507が出力した復元画像を入力し、入力した復元画像と、動き予測部502が出力した予測画像とが加算された画像(以降、「再構築画像」と表す)を作成する(ステップS506)。逆変換加算部508は、作成した再構築画像を、フィルタ部503に対して出力する。
 フィルタ部503は、逆変換加算部508が出力した再構築画像を入力し、入力した再構築画像に含まれている歪みを軽減する等のフィルタ処理を実行することによって、フィルタ処理後の画像(以降、「補正画像」と表す)を作成する(ステップS507)。フィルタ処理において用いられるフィルタは、たとえば、デブロックフィルタ(H.264方式の場合、または、H.265方式の場合)、Sample_Adaptive_Offset(H.265方式の場合)等である。フィルタ部503は、作成した補正画像を、フレームバッファ504に格納する(ステップS508)。補正画像は、該処理を符号化した後に受信するフレームを符号化する場合に、フレームバッファ504に記憶されている符号化済みフレームとして参照される。
 また、符号化部510は、量子化された変換係数値列に対して、所定の規則に従ったエントロピー符号化処理を実行することによって、該量子化された変換係数値列が符号化された結果を表すビットストリームを出力する。エントロピー符号化処理は、たとえば、コンテキスト適応算術符号化(CABAC)(H.264方式の場合、または、H.265方式の場合)、コンテキスト適応可変長符号化(CAVLC)(H.264方式の場合)である。エントロピー符号化処理は、たとえば、非特許文献3、または、非特許文献4に開示されているので、該エントロピー符号化処理に関する説明を省略する。
 動画像符号化装置501は、動画像データに含まれている各フレームに関して、図14を参照しながら説明したように、動き予測処理、変換処理、量子化処理、逆量子化処理、逆変換処理、フィルタ処理等の、多くの計算量を必要とする処理を実行する。したがって、動画像符号化装置501は、膨大な量の演算処理を実行することによって、動画像符号化処理を実行する。
 膨大な量の演算を短期間に実行する目的のためには、たとえば、アクセラレータが用いられる。アクセラレータは、たとえば、GPU、DSP、または、FPGAである。GPUは、3次元グラフィックスを高速に処理することが可能なプロセッサである。GPUは、数百から数千台のプロセッサコアが集積された並列プロセッサを有する。GPUは、処理自体が高効率に並列化可能な処理であれば、汎用のプロセッサと比較して数倍~数十倍高速に該処理を実行することができる。アクセラレータは、上述した例に限定されない。
 GPUは、Graphics_Processing_Unitの略称を表す。DSPは、Digital_Signal_Processorの略称を表す。FPGAは、Field_Programmable_Gate_Arrayの略称を表す。
 以降、説明の便宜上、アクセラレータは、GPUであるとする。
 図14に示された各部が実行する処理のうち、動き予測部502が実行するフレーム内予測処理、動き予測部502が実行するフレーム間予測処理、または、フィルタ部503が実行するフィルタ処理は、特に、演算量が多い。したがって、動画像符号化処理を短期間に実行する目的のため、図16に例示されているように、フレーム内予測処理、フレーム間予測処理、及び、フィルタ処理は、GPU521に割り当てられることもある。図16は、GPU521をアクセラレータとして有する動画像符号化装置501が有する構成の一例を表す図である。
 図16に示された各部における処理は、図14を参照しながら説明したような処理と同様であるので、該処理に関する説明を省略する。図16に示された例において、GPU521は、動き予測部502が実行するフレーム間予測処理、動き予測部502が実行するフレーム内予測処理、及び、フィルタ部503が実行するフィルタ処理を実行する。CPU522は、減算変換部506と、量子化部505と、量子化制御部509と、逆量子化部507と、エントロピー符号化部510と、逆変換加算部508とに示される各部が実行する処理を実行する。したがって、この例の場合には、フレーム内予測処理、フレーム間予測処理、及び、フィルタ処理等の多くの演算量を含む処理がGPU521に割り当てられるので、これらの多くの演算量を含んでいる処理自体は、短期間に処理を実行することができる。
 しかし、演算量が多い処理がGPU521に割り当てられたとしても、動画像符号化処理全体が短期間に処理できるとは限らない。この理由は、CPU522とGPU521とが動画像符号化処理を実行する場合に、CPU522とGPU521との間にてデータ転送が必要であるからである。図16に示された例においては、(1)入力された動画像データをCPU522からGPU521に転送する、(2)予測画像をGPU521からCPU522に転送する、(3)再構築画像をCPU522からGPU521に転送する、という3回のデータ転送が必要である。実際には、CPU522、及び、GPU521間等の異なるプロセッサ間のデータ転送速度は、低速であることが多い。この結果、たとえ、GPU521によって多く演算量を含んでいる処理自体を高速に実行したとしても、CPU522とGPU521との間にてデータ転送が多い場合には、CPU522、及び、GPU521間でのデータ転送に要する転送時間は、符号化処理を高速に処理する場合のボトルネックである可能性がある。
 また、図14に例示された各部が実行する処理において、変換処理、量子化処理、逆量子化処理、及び、逆変換処理は、比較的、演算量も多い。さらに、たとえば、非特許文献4に開示されているような適応QP選択処理、または、レート歪み(RD)最適量子化処理は、より高度、かつ、より複雑な量子化処理であり、図14を参照しながら説明した量子化処理より演算量が多い。
 動画像符号化処理全体を短期間に実行する目的のためには、図17に例示されている動画像符号化装置501のように、変換処理、量子化処理、逆量子化処理、及び、逆変換処理をGPU523に割り当てることもできる。図17は、変換処理、量子化処理、逆量子化処理、及び、逆変換処理をGPU523にて処理する場合の動画像符号化装置501が有する構成例を表す図である。
 図17に示された各部における処理は、図14に示された動画像符号化装置501における処理と同様であるので、各部に関する処理の説明を省略する。図17に例示された動画像符号化装置501は、図14に例示された動画像符号化装置501とは異なり、減算変換部506、量子化部505、逆量子化部507、逆変換加算部508、フィルタ部503、及び、動き予測部502が実行する処理は、GPU523に割り当てられる。これに対して、量子化制御部509、及び、エントロピー符号化部510が行う処理は、CPU524に割り当てられる。
 GPU523が、変換処理、量子化処理、逆量子化処理、及び、逆変換処理を実行することによって、これらの処理自体は短期間に実行することができる。しかし、図16を参照しながら説明した場合と同様に、多くの演算量を含んでいる処理がGPU523に割り当てられたとしても、動画像符号化処理全体が短期間に処理できるとは限らない。この理由は、エントロピー符号化処理等の処理を実行するCPU524と、GPU523との間にて、量子化部505からの出力である変換係数値列等の情報を転送する処理が必要であるからである。したがって、この変換係数値列等を転送する処理は、動画像符号化処理の全体を短期間に処理する際のボトルネックである可能性がある。動画像符号化処理全体を短期間に処理する際のボトルネックであることについて、例を参照しながら説明する。
 動画像データに含まれているフレームのサイズが8ビット~10ビット程度である場合に、該フレームに基づき算出される変換係数値列のサイズは、16ビット程度である。つまり、変換係数値列のサイズは、該フレームのサイズよりも大きい。この結果、GPU523からCPU524への変換係数等のデータ転送に要する時間は、該フレームを転送する処理に要する時間よりも長い。GPU523と、CPU524との間における転送処理は、動画像符号化処理全体の処理速度を律速する可能性がある。
 さらに、別の態様として、図18に例示されているような動画像符号化装置501も可能である。図18は、変換係数値列のサイズを削減しつつ、動画像符号化処理を実行する動画像符号化装置501が有する構成を表す図である。
 エントロピー符号化処理は、逐次的に演算を実行する必要がある処理である。このため、該エントロピー符号化処理に関しては、並列処理することによって高速に処理を実行するGPU523よりも、CPU524に割り当てる方が短期間に処理することができる。
 動画像符号化装置501は、図17に例示された動画像符号化装置501と比較して、さらに、情報圧縮装置511と、情報復元部512とを有する。GPU525は、減算変換部506、量子化部505、逆量子化部507、逆変換加算部508、フィルタ部503、動き予測部502、及び、情報圧縮装置511にて実行される処理を実行する。CPU526は、情報復元部512、量子化制御部509、及び、符号化部510にて実行される処理を実行する。
 図19を参照しながら、図18に示された動画像符号化装置501における処理について説明する。図19は、動画像符号化装置501における処理の流れを示すフローチャートである。
 情報圧縮装置511は、量子化部505が出力した量子化された変換係数値列に対して、該量子化された変換係数値列のサイズを削減するデータ変換処理を実行する(ステップS601)。GPU525における情報圧縮装置511は、変換したデータをCPU526における情報復元部512に転送する。すなわち、変換されたデータは、GPU525からCPU526に転送される。
 情報復元部512は、情報圧縮装置511が転送したデータを受信し、受信したデータに対して、該データ変換処理に応じた逆変換処理を実行することによって、該量子化された変換係数値列を算出する(ステップS602)。情報復元部512は、該量子化された変換係数値列を符号化部510に対して出力する。
 情報圧縮装置511が実行する処理について詳細に説明する。量子化された変換係数値列は、高い頻度にて、値がゼロである変換係数を含む。情報圧縮装置511は、たとえば、8×8(=64)画素の係数(データサイズは、16ビット×64=1024ビット)を、所定のスキャン順序に従いスキャンすることによって、後述の処理を実行する。情報圧縮装置511は、量子化された変換係数値列に関して、スキャンした各変換係数の値が非ゼロであるか否かを示すビット列(64ビットのサイズ)と、値が非ゼロである変換係数のみが格納されている変換係数値列とを算出する。該変換係数値列は、たとえば、最大28個の変換係数(16ビット×28=448ビットのサイズ)を含む。この場合に、情報圧縮装置511は、512ビット(=448ビット+64ビット)のサイズを有するデータを算出する。したがって、量子化された変換係数値列が、値がゼロである変換係数を含んでいない分だけ、該量子化された変換係数値列のサイズは小さい。
 上述した例において、情報圧縮装置511は、8×8画素に関して量子化された変換係数値列のサイズを削減するデータ変換処理を実行したが、所定のサイズが複数である(たとえば、2×2画素、4×4画素、及び、8×8画素)、各サイズの変換係数値列に対してデータ変換処理を実行してもよい。この場合に、情報圧縮装置は、各サイズの画素ブロックに関して算出された変換係数を所定のスキャン順序に従いスキャンする。情報圧縮装置は、量子化された変換係数値列において、値が非ゼロである変換係数についてのみ、直交変換ブロック内の最後の非ゼロ係数か否かを表すフラグ(EOB)、画素ブロック内の変換係数の位置(Index)、及び、変換係数の値(Value)を含むデータを作成する。これらの処理によって、値がゼロである変換係数の情報を転送する必要が無いので、データ転送量は大きく削減できる。
 次に、H.265方式に従って作成された変換係数値列を圧縮する例を参照しながら、情報圧縮装置における処理について説明する。情報圧縮装置は、量子化された変換係数値列に対してデータ変換処理を実行するが、説明を簡便にするため、変換係数値列に対してデータ変換処理を実行すると仮定する。ただし、量子化処理は、必ずしも実行されなくてもよい。また、直交変換処理が、各フレームが32×32画素(サイズ)を有する画素ブロックに分割された領域に関して適用され、この結果、各フレームに関して変換係数値列が算出されるとする。尚、直交変換ブロックのサイズが32×32画素とは、H.265方式の場合に利用できる最大のサイズである。本実施形態においては、異なるサイズ(たとえば、64×64画素等)の画素ブロックを単位として、直交変換処理が適用されてもよい。
 さらに、H.265方式によれば、直交変換処理を適用するブロックサイズは、必ずしも、1種類でなくともよく、複数種類であってもよい。たとえば、直交変換処理を適用する画素ブロックのサイズは、32×32画素を有する画素ブロック、16×16画素を有する画素ブロック、8×8画素を有する画素ブロック、及び、4×4画素を有する画素ブロックが含まれていてもよい。
 図20を参照しながら、直交変換処理によって算出される情報について説明する。図20は、直交変換処理によって算出される情報を概念的に示す図である。図20に例示されているような、第1矩形乃至第22矩形を含む矩形は、直交変換処理を適用する画素ブロック(32×32画素)を表す。この例では、第1矩形乃至第22矩形を含む32×32画素を有する画素ブロックの中で、以下の3つのサイズを有する画素ブロックに関して、それぞれ、直交変換処理が適用される。
  (i)16×16画素を有する画素ブロック(第1矩形)に関して1か所、
  (ii)8×8画素を有する画素ブロック(第2乃至8矩形、第13矩形、及び、第22矩形)に関して9か所、
  (iii)4×4画素を有する画素ブロック(第9乃至12矩形、及び、第14矩形乃至第21矩形)に関して12か所。
 また、図20において、丸印を付された矩形は、直交変換処理を適用する画素ブロックのうち、該画素ブロックに関して算出される変換係数の値が非ゼロである変換係数が1つ以上含まれている画素ブロック(以降、「非ゼロブロック」と表す)を表す。丸印を付されていない矩形は、直交変換処理を適用する画素ブロックのうち、該画素ブロックに関して算出される変換係数の値が非ゼロである変換係数が1つも含まれていない画素ブロック(以降、「ゼロブロック」と表す)を表す。図20に示された例において、非ゼロブロックの個数は、上述した(i)に関して1個(第1矩形)、(ii)に関して3個(第4矩形、第7矩形、及び、第8矩形)、(iii)に関して1個(第15矩形)である。すなわち、32×32画素を有する画素ブロックは、5つの非ゼロブロック(第1矩形、第4矩形、第7矩形、第8矩形、及び、第15矩形)を含んでいる。
 <第1の実施形態>
 図1を参照しながら、本発明の第1の実施形態に係る情報圧縮装置101が有する構成について詳細に説明する。図1は、本発明の第1の実施形態に係る情報圧縮装置101が有する構成を示すブロック図である。
 本発明の第1の実施形態に係る情報圧縮装置101は、個数算出部102と、位置算出部103と、情報作成部104と、情報格納部105とを有する。
 図18に示された動画像符号化装置501における情報圧縮装置511は、情報圧縮装置101であるとする。
 次に、図2を参照しながら、第1の実施形態に係る情報圧縮装置101における処理について説明する。図2は、第1の実施形態に係る情報圧縮装置101における処理の流れを示すフローチャートである。
 個数算出部102は、外部の装置(たとえば、図18に例示された量子化部505)から、対象画像を表す数値列を入力する。動画像データに含まれているフレーム画像は、たとえば、直交変換処理を適用する対象を表す所定のサイズ(たとえば、16×16画素、8×8画素、または、4×4画素)を有するブロック(以降、「第1ブロック」と表す)ごとに区画されている。係る対象画像は、該フレーム画像のうち、個々の第1ブロックに含まれている部分画像を表す。第1サイズは、図20に例示されているような所定のサイズ(たとえば、16×16画素、8×8画素、または、4×4画素)のいずれかを表す。また、第1ブロックに関する数値列は、たとえば、該第1ブロックにおける対象画像に対して、直交変換処理(さらに、量子化処理)を適用した結果、算出される変換係数値列である。
 次に、個数算出部102は、入力した数値列に基づき、第1サイズ以上の第2サイズを有する第2ブロックに関して、該第2ブロックに含まれている該第1ブロックに関する数値列に含まれている数値が所定の値以上である第1ブロックの個数(以降、「第1個数」と表す)を算出する(ステップS101)。たとえば、第2サイズは、32×32画素である。ステップS101に示す処理において、個数算出部102は、フレームに含まれている1つ以上の32×32画素を有する画素ブロック(以降、「32×32画素ブロック」と表す)を処理対象として、該32×32画素ブロックに含まれている第1ブロックを特定する。個数算出部102は、特定した第1ブロックに関する数値列(たとえば、変換係数値列)に含まれている数値が、所定の値以上であるか否かを判定し、該数値列が該所定の値以上である数値を含んでいる場合に、該第1ブロックが非ゼロブロックであると判定する。個数算出部102は、非ゼロブロックであると判定した第1ブロックの個数(上述した「第1個数」)を算出する(ステップS101)。
 さらに、個数算出部102は、入力した数値列に基づき、第1サイズ以下の第3サイズを有する第3ブロックに関して、該第3ブロックに関する該数値列に含まれている数値が所定の値以上である第1ブロックの個数(以降、「第2個数」と表す)を算出する(ステップS101)。たとえば、第3サイズは、4×4画素(サイズ)である。ステップS101に示す処理において、個数算出部102は、32×32画素ブロックに含まれている非ゼロブロックを対象として、該非ゼロブロックに含まれている4×4画素を有する第3ブロック(以降、「4×4画素ブロック」と表す)を設定する。個数算出部102は、設定した第3ブロックに関する数値列(たとえば、変換係数値列)が、所定の値以上である数値を含んでいるか否かを判定し、該数値列が該所定の値以上である変換係数を含んでいる場合に、該第3ブロックが非ゼロブロックであると判定する。個数算出部102は、非ゼロブロックであると判定した第3ブロックの個数(上述した「第2個数」)を算出する(ステップS101)。
 次に、位置算出部103は、算出した第2個数に基づき、第3ブロックに関する数値列を格納する第2位置情報を算出する(ステップS102)。たとえば、第3ブロックに関する変換係数を格納するのに要する記憶領域の大きさが所定の記憶容量である場合に、位置算出部103は、該所定の記憶容量と、1から第2個数に至る各整数とを掛け算することによって、記憶装置において数値列を格納する位置を算出する。たとえば、第3ブロックが4×4画素ブロックであり、さらに、所定の記憶容量が16ビットである場合に、位置算出部103は、256(=16x4×4)ビットと、1から第2個数に至る各整数とを掛け算することによって数値列を格納する第2位置情報を算出する。
 さらに、位置算出部103は、算出した第1個数と、算出した第2個数とに基づき、第2ブロックに関する第2情報を格納する位置を表す第1位置情報を算出する(ステップS102)。第2情報は、第2ブロック(たとえば、32×32画素ブロック)に含まれている第1ブロック(たとえば、16×16画素ブロック)を表す情報(たとえば、第1ブロックの大きさ、第2ブロックにおける第1ブロックの位置情報)である。さらに、第2情報は、該第2ブロック(たとえば、32×32画素ブロック)における第1ブロック(たとえば、16×16画素ブロック)に含まれている第3ブロック(たとえば、4×4画素ブロック)に関する数値列の格納先を表す第2位置情報を含む。
 次に、情報作成部104は、対象画像に含まれている1つ以上の第2ブロックに関して位置算出部103が算出した第1位置情報を含む第1情報を作成する(ステップS103)。情報作成部104は、対象画像に含まれている1つ以上の第2ブロックに関して、該第2ブロックに含まれている第3ブロックに関する数値列の格納先を表す第2位置情報を含む第2情報を作成する(ステップS103)。情報作成部104は、さらに、第2ブロックの大きさ、第1ブロックに含まれている1つ以上の第2ブロックの位置を表す位置情報等を含む第2情報を作成してもよい。情報作成部104は、ある第2ブロックに関して算出した第2情報を、該ある第2ブロックに関して算出した第1位置情報が表す位置(記憶領域)に格納する。
 次に、情報格納部105は、該対象画像に含まれている1つ以上の第3ブロックのうち、数値列に含まれている数値が所定の値以上である第3ブロックについて該対象画像に含まれている値を読み取り、読み取った値を、記憶装置(メモリ)内の、該第3ブロックに関する数値列の格納先を表す第2位置情報が表す位置(記憶領域)に格納する(ステップS104)。情報格納部105は、たとえば、非ゼロブロックである第3ブロックに関して対象画像に含まれている値を読み取り、読み取った値を第2位置情報が表す位置に格納する。この場合に、情報格納部105は、ステップS104に示された処理によって、非ゼロブロックである第3ブロック(たとえば、4×4画素ブロック)に関する変換係数の値のみを記憶装置に格納する。
 その後、たとえば、情報圧縮装置101が、GPUが有する機能を用いて実現されている場合(たとえば、図18におけるGPU525)に、情報圧縮装置101は、作成した第1情報、第2情報、及び、非ゼロブロックである第3ブロックに関する変換係数の値のみを、CPU(たとえば、図18におけるCPU526)に送信してもよい。
 次に、第1の実施形態に係る情報圧縮装置101に関する効果について説明する。
 第1の実施形態に係る情報圧縮装置101によれば、符号化処理に必要な情報を、より小さなサイズに圧縮することができる。この理由は、対象画像を構成する情報内に符号化処理に必要な情報(たとえば、所定のサイズを有する画素ブロック等の処理単位に関する情報)を保ったままの状態において、情報圧縮装置101が復元画像等を作成する場合に参照される情報のみを、メモリ内の格納先に格納するからである。たとえば、対象画像に関する符号化処理に必要な情報は、情報作成部104が作成する第1情報、及び、情報作成部104が作成する第2情報として保存されている。また、情報格納部105が、非ゼロブロックである第3ブロックに関する変換係数の値のみを記憶装置に格納することによって、たとえば、復元画像等を作成する場合に参照されない変換係数の値は、記憶装置に格納されていない。すなわち、情報格納部105には、復元画像等を作成する場合に参照される情報のみが格納されている。
 したがって、第1の実施形態に係る情報圧縮装置101によれば、符号化処理に必要な情報を、より小さなサイズに圧縮することができる。
 <第2の実施形態>
 次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。
 図3を参照しながら、本発明の第2の実施形態に係る動画像符号化装置201について説明する。図3は、本発明の第2の実施形態に係る動画像符号化装置201が有する構成を示すブロック図である。
 第2の実施形態に係る動画像符号化装置201は、動き予測部202と、減算変換部205と、量子化部206と、逆量子化部208と、逆変換加算部209と、フィルタ部203と、フレームバッファ204と、情報圧縮装置207と、量子化制御部210と、符号化部211と、情報復元部212とを有する。情報圧縮装置207は、たとえば、図1に示された情報圧縮装置101である。
 説明の便宜上、動き予測部202と、減算変換部205と、量子化部206と、逆量子化部208と、逆変換加算部209と、フィルタ部203と、フレームバッファ204と、情報圧縮装置207とにおける処理は、図3の破線にて示す如く、GPU213に割り当てられているとする。量子化制御部210と、符号化部211と、情報復元部212とにおける処理は、図3の破線にて示す如く、CPU214に割り当てられているとする。動き予測部202と、減算変換部205と、量子化部206と、逆量子化部208と、逆変換加算部209と、フィルタ部203と、量子化制御部210と、符号化部211とは、図14乃至図19を参照しながら説明した処理と同様な処理を実行するので、本実施形態においては、これらの各部における処理に関する詳細な説明を省略する。
 次に、図4を参照しながら、情報圧縮装置207における処理を中心に、第2の実施形態に係る動画像符号化装置201における処理について説明する。図4は、第2の実施形態に係る動画像符号化装置201における処理の流れを示すフローチャートである。
 減算変換部205は、動画像データにおける各フレームに関して、所定の大きさを有する第1ブロックを対象として、該画素ブロックにおける画像を直交変換処理することによって、該第1ブロックに関する変換係数値列を作成する(ステップS201)。減算変換部205は、作成した変換係数値列を、量子化部206に対して出力する。
 量子化部206は、減算変換部205が出力した変換係数値列を入力し、入力した変換係数値列に含まれている各値を量子化処理することによって、該変換係数値列が量子化された変換係数値列を作成する(ステップS202)。量子化部206は、該量子化された変換係数値列を、情報圧縮装置207に対して出力する。すなわち、量子化部206が出力する変換係数値列は、各フレームに関して、第1ブロックを対象として作成された数値列である。
 第2の実施形態に係る情報圧縮装置207は、図20に例示されているような第1矩形乃至第22矩形に示された各第1ブロックに関して、該第1ブロックに関する数値列(たとえば、変換係数値列等)を入力する。たとえば、第1ブロックは、所定のサイズ(たとえば、16×16画素、8×8画素)の大きさを有する画素ブロックである。
 まず、情報圧縮装置207は、入力した数値列に基づき、第1サイズ以上の第2サイズ(たとえば、32×32画素)を有する第2ブロックに関して、該第2ブロックに含まれている該第1ブロックに関する数値列に含まれている数値が所定の値以上である第1ブロックの第1個数を算出する(ステップS203)。たとえば、図20に示された例の場合に、情報圧縮装置207は、入力した数値列に基づき、32×32画素ブロックに含まれる非ゼロブロックの第1個数として、5(すなわち、第1矩形、第4矩形、第7矩形、第8矩形、及び、第15矩形)を算出する。
 次に、情報圧縮装置207は、各非ゼロブロックに関して、該第1サイズ以下の第3サイズ(たとえば、4×4画素)を有する第3ブロックに関して、該第3ブロックが非ゼロブロックであるか否かを判定する。情報圧縮装置207は、たとえば、非ゼロブロックのサイズが16×16画素(図5に例示)である場合に、縦方向、及び、横方向に4等分する。図5は、16×16画素を有する第1ブロックの一例を表す図である。
 図5に示された例の場合に、情報圧縮装置207は、16×16画素ブロックを、縦方向、及び、横方向に4等分することによって、第23矩形乃至第38矩形によって示される16個の4×4画素ブロックについて、それぞれ、非ゼロブロックであるか否かを判定する。図5においては、丸印を付された矩形が表す画素ブロックは非ゼロブロックを表し、丸印が付されていない矩形がゼロブロックを表す。
 情報圧縮装置207は、たとえば、図5において、第23矩形が表す第3ブロックに関する数値列が非ゼロである変換係数を含んでいる場合に、該第3ブロックが非ゼロブロックであると判定する。情報圧縮装置207は、たとえば、該第3ブロックに関する数値列内の変換係数の値がすべてゼロである場合に、該第3ブロックがゼロブロックであると判定する。情報圧縮装置207は、第2ブロックに含まれている第24矩形乃至第38矩形によって示される各第3ブロックに関しても、第23矩形が表す第3ブロックに対して実行した判定処理と同様な判定処理を実行する。図5に示された例の場合に、情報圧縮装置207は、第23矩形乃至第25矩形、及び、第28矩形によって示された第3ブロックが非ゼロブロックであると判定し、第26矩形、第27矩形、及び、第29矩形乃至第38矩形によって示された第3ブロックがゼロブロックであると判定する。
 同様に、図5に示された第2ブロックの大きさ(この場合、16×16画素)と異なる大きさを有する各第2ブロック(図6に例示)に関しても、情報圧縮装置207は、非ゼロブロックであるか否かを判定する。図6は、8×8画素を有する第1ブロックの一例を表す図である。図6に示された例の場合に、情報圧縮装置207は、たとえば、縦方向、及び、横方向に2等分することによって、4×4画素ブロックを対象として非ゼブロックであるか否かを判定する。
 情報圧縮装置207は、非ゼロブロックである第3ブロックの個数(すなわち、第2個数)を算出する(ステップS203)。たとえば、図5及び図6に示す例の場合に、情報圧縮装置207は、第2個数として5(すなわち、第23乃至25矩形、第28矩形、及び、第39矩形によって示される第3ブロックの個数)を算出する。
 次に、情報圧縮装置207は、算出した第2個数に基づき、各第3ブロックに関する数値列を格納する位置を表す第2位置情報を算出する(ステップS204)。さらに、情報圧縮装置207は、算出した第1個数と、算出した第2個数とに基づき、第2ブロックに関する第2情報を格納する位置を表す第1位置情報を算出する(ステップS204)。ステップS204において、情報圧縮装置207は、各第2ブロックに関する第2情報を格納する第1位置情報を算出する。
 ステップS204に関する処理を、さらに、具体的に説明する。情報圧縮装置207は、ある第1ブロックに関する第2位置情報を算出する場合に、処理しているフレームに関して、当該ある第1ブロックに関する処理を開始するまでに算出した第2個数の累計数を算出することによって、第2位置情報を算出してもよい。また、情報圧縮装置207は、ある第2ブロックに関する第1位置情報を算出する場合に、処理しているフレームに関して、当該ある第2ブロックに関する処理を開始するまでに算出した第1個数の累計数を算出することによって、第2位置情報を算出してもよい。
 次に、情報圧縮装置207は、第1情報、及び、第2情報を作成する(ステップS205)。情報圧縮装置207は、作成した第2情報を、記憶装置(メモリ)内の第1位置情報が表す位置(記憶領域)に格納する。第1情報、及び、第2情報を作成する処理については、図8乃至図9を参照しながら後述する。
 情報圧縮装置207は、非ゼロブロックである第3ブロックに関する数値列を、算出した第2位置情報が表す位置に格納することによって、非ゼロブロックである第3ブロックに関する変換係数の値のみが格納された変換係数情報(図7)を作成する(ステップS206)。図7は、変換係数情報の一例を概念的に表す図である。情報圧縮装置207がGPU213を用いて実現されている場合に、情報圧縮装置207は、作成した第1情報、第2情報、及び、変換係数情報をCPU214に対して転送(送信)する(ステップS207)。
 図7を参照すると、変換係数情報は、図5に示された第23矩形乃至第25矩形、及び、第28矩形が表す各第3ブロックに関する数値列と、図6に示された第39矩形が表す第3ブロックに関する数値列とを含む。図5及び図6において、丸印を付された矩形は、非ゼロブロックである第3ブロックを表すので、該変換係数情報は、非ゼロブロックである第3ブロックに関する変換係数の値のみを含んでいる。すなわち、変換係数情報は、ゼロブロックである第3ブロックに関する変換係数の値を含んでいない。
 次に、第1情報、第2情報、または、変換係数情報が有するデータ構造を参照しながら、本実施形態に係る情報圧縮装置207が実行する処理について説明する。
 まず、図8を参照しながら、第1情報が有するデータ構造について説明する。図8は、第1情報が有するデータ構造の一例を概念的に表す図である。
 図8を参照すると、第1情報は、たとえば、第2ブロックを識別可能なブロック番号と、該ブロック番号が表す第2ブロックに含まれている第1ブロックのうち、非ゼロブロックである個数を表すブロック数と、該第2ブロックに関する第2情報を格納する位置を表す第1位置情報とが関連付けされた情報である。たとえば、第1情報においては、ブロック番号「1」と、画素ブロック数「3」と、第1位置情報「1」とが関連付けされている。これは、ブロック番号「1」が表す第2ブロック(たとえば、32×32ブロック)が、非ゼロブロックである3つの第1ブロックを含み、これらの第1ブロックに関する第2情報が、第1位置情報「1」を先頭アドレスとする記憶領域に格納されることを表す。
 図8に例示された第1情報において、ブロック番号「2」と、画素ブロック数「5」と、第1位置情報「4」とが関連付けされている。これは、ブロック番号「2」が表す第2ブロック(たとえば、32×32ブロック)が、非ゼロブロックである5つの第1ブロックを含み、これらの第1ブロックに関する第2情報が、第1位置情報「4」を先頭アドレスとする記憶領域に格納されることを表す。ステップS204に関する処理にて説明したように、ブロック番号「2」に関連付けされた第1位置情報「4」は、たとえば、ブロック番号「2」が表すブロックに関する処理を開始する(この場合に、ブロック番号「1」が表すブロックに関する処理)までに算出されたブロック数(この場合、ブロック数「3」)に基づいて算出される。たとえば、ブロック番号「2」に関する第1位置情報は、ブロック番号「1」に関連付けされた第1位置情報「1」と、ブロック番号「1」に関連付けされたブロック数「3」との合計値として算出される。第1情報は、上述した例に限定されない。
 たとえば、第1情報は、フレームに含まれている各32×32画素ブロックに関して、該32×32画素ブロックに含まれている非ゼロブロックの個数と、該32×32画素ブロックに関する情報を格納する記憶領域の先頭アドレスとが関連付けされた情報を表す。この場合に、フレームに含まれている32×32画素ブロックの個数は一定であるので、第1情報は、固定長の大きさを有する。以降、第1情報は、各32×32画素ブロックに関して、該32×32画素ブロックに関する情報が格納されている記憶領域の先頭アドレスを表す情報であるとする。すなわち、第1情報は、該32×32画素ブロックに含まれている非ゼロブロックの個数と、該32×32画素ブロックに関する情報が格納されている記憶領域の先頭アドレスを示す第1位置情報とを含む。
 本実施形態に係る情報圧縮装置207は、ステップS203において設定した第2ブロックに対してブロック番号を割り当て、割り当てたブロック番号と、ステップS203において算出した第1個数と、ステップS204において算出した第1位置情報とが関連付けされた第1情報を作成する。
 次に、図9を参照しながら、第2情報が有するデータ構造について説明する。図9は、第2情報が有するデータ構造の一例を概念的に表す図である。
 図9を参照すると、第2情報は、ある第1ブロックに関して、該第1ブロックに含まれている第3ブロックに関する変換係数列(または、数値列)を格納する記憶領域を指し示す第2位置情報を含む情報である。第2情報は、さらに、該第1ブロックに含まれている第3ブロックが非ゼロブロックであるか否かを表す情報(図9における「非ゼロ?」の列)を含んでいてもよい。第2情報は、第2ブロックに含まれている1つ以上の第3ブロックの位置を表す情報(図9における「位置」の「縦方向」及び「横方向」)を含んでいてもよい。
 第2情報は、さらに、該第1ブロックのサイズと、第1ブロックに関する数値列を所定のスキャン順序に従いスキャンした場合に、該第1ブロックにおいて、非ゼロである最後の変換係数の値が出現する位置(図9における「非ゼロ位置」の「縦方向」及び「横方向」)を含んでいてもよい。
 言い換えると、第2情報は、第1ブロックに関して、以下のような情報1乃至情報6に例示された情報を含んでいてもよい。
  (情報1)第1ブロックが輝度ブロックであるか、または、色差ブロックかを表す情報(図9における「種別情報」、cIdx)、
  (情報2)第2ブロックに含まれている1つ以上の第1ブロックの位置を表す位置情報(図9における「位置」、縦方向(posY)、及び、横方向(posX))、
  (情報3)該第2ブロックのサイズを表すサイズ情報(図9における「サイズ」、log2trafoSize)、
  (情報4)該第2ブロックに含まれている非ゼロの変換係数を、所定のスキャン順序に従いスキャンした場合に、該第2ブロックにおいて最後に非ゼロの変換係数が出現する位置を表す非ゼロ位置情報(図9における「非ゼロ位置」、lastSignificantCoeffX(横方向)、及び、lastSignificantCoeffY(縦方向))、
  (情報5)該第2ブロックにおいて、第3ブロックを所定のスキャン順序に従いスキャンした場合に、各第3ブロックが非ゼロブロックであるか否かを示すブロック情報(図9における「非ゼロ?」、coded_sub_block_flag)、
  (情報6)該第2ブロックにおいて、非ゼロブロックである各第3ブロックに関する変換係数が格納されている記憶領域の先頭アドレスを表す第2位置情報(index)。第2位置情報は、たとえば、非ゼロブロックである第3ブロックに関する変換係数が格納されている記憶領域を指し示す先頭アドレスを、先頭の第3ブロックからの相対位置によって表した値を格納してもよい。
 したがって、情報圧縮装置207、及び、情報復元部212等は、情報6における第2位置情報を参照することによって、ある非ゼロブロックにおける非ゼロ4×4ブロックに関する変換係数の値を読み取ることができる。
 たとえば、図9に例示された第2情報においては、種別情報「2」、位置の縦方向「1」、位置の横方向「1」、サイズ「8」、非ゼロ位置の縦方向「5」、非ゼロ位置の横方向「5」、非ゼロ「0,1,1,・・・」、及び、第2位置情報「5」が関連付けされている。これは、たとえば、第1ブロックの種別が色差ブロックであり、第2ブロックにおける第1ブロックの位置が(1,1)であり、第1ブロックのサイズが8であることを表す。さらに、これは、第1ブロックを所定のスキャン順序に従いスキャンした場合に、最後に非ゼロの変換係数値が現れる位置が(5,5)であり、第1ブロックにおいて第3ブロックを所定のスキャン順序にスキャンした場合に、ゼロブロック(0)、非ゼロブロック(1)、非ゼロブロック(1)の順に並んでいることを表す。さらに、これは、非ゼロブロックである第3ブロックに関する変換係数を格納する先頭位置が5であることを表す。
 図9に例示された第2情報における第2位置情報は、ステップS204に関して上述したように、たとえば、図9の3行目(種別情報「2」、縦方向「1」、・・・に示される行)に関する処理を開始するまで(この場合に、第1、乃至、2行目)に算出された第2個数の累計数によって算出される。尚、図9には、第1行目に示された第1ブロックが2つの非ゼロ第3ブロックを含んでおり、第2行目に示された第1ブロックが2つの非ゼロ第3ブロックを含んでいる場合の第2情報が例示されている。この場合に、図9の3行目に記された第2情報は、5(=2+2+1)である。第2情報は、図9に示された例に限定されない。たとえば、第2情報における第2位置情報は、たとえば、第1ブロックに含まれている非ゼロブロックである第3ブロックごとに、当該第3ブロックに関する変換係数を格納する記憶領域を指し示す先頭アドレスを含んでいてもよい。
 本実施形態に係る情報圧縮装置207は、ステップS205において、たとえば、第2ブロックに含まれている1つ以上の第1ブロックの位置を特定することによって、上述した「情報2」を作成する。情報圧縮装置207は、第2ブロックに含まれている非ゼロの変換係数を、所定のスキャン順序に従いスキャンした場合に非ゼロの変換係数が現れる位置を特定することによって、上述した「情報4」を作成する。情報圧縮装置207は、第2ブロックにおいて、第3ブロックを所定のスキャン順序に従いスキャンし、スキャンした各第3ブロックが非ゼロブロックであるか否かを判定することによって、上述した「情報5」を作成する。尚、情報圧縮装置207は、「情報1」に関して、読み取った種別情報を、第2情報に格納する。
 次に、図10を参照しながら、変換係数情報が有するデータ構造について説明する。図10は、変換係数情報が有するデータ構造の一例を概念的に表す図である。図10に例示された変換係数情報においては、図7に例示された変換係数値列に含まれている変換係数の値が具体的に示されている。
 図10に例示された変換係数情報を参照すると、変換係数情報は、変換係数値「1,2,3,・・・」を含む。これは、非ゼロブロックである第3ブロックに関する変換係数の値が「1,2,3,・・・」であることを表す。
 したがって、本実施形態に係る情報圧縮装置207は、図8に例示された第1情報と、図9に例示された第2情報と、図10に例示された変換係数情報とを含む記録情報を作成する。
 また、第1情報が格納されている記憶領域、第2情報が格納されている記憶領域、及び、変換係数情報が格納されている記憶領域は、主記憶装置(メモリ)のアドレス空間において、連続しているアドレスに配置するのが望ましい。この理由は、これらの3つの情報が相互に関連しているので、ある1つの情報を転送する場合には、他の2つの情報を転送する必要があるからである。たとえば、これら3つの情報が格納されている記憶領域を、連続しているアドレスに配置することによって、情報圧縮装置207は、CPU214からGPU213に転送する場合に、1回の処理にて情報を転送することが可能なバースト転送を実行することができる。
 図4を参照しながら上述した説明において、ステップS201及びステップS202に示された処理が非ゼロブロックごとに独立している処理であるので、情報圧縮装置207は、ステップS201及びステップS202を、複数の非ゼロブロックに関して並列的または擬似並列的に処理してもよい。また、ステップS203に示された処理、及び、ステップS204に示された処理が32×32画素ブロックごとに相互に独立している処理であるので、情報圧縮装置207は、ステップS203、及び、ステップS204を、複数の32×32画素ブロックに関して並列的または擬似並列的に処理してもよい。ステップS201乃至ステップS204に記載された処理は、上述した例に限定されない。
 ステップS204に示された処理においては、ある画素ブロックに関して、該ある画素ブロックとは異なる画素ブロックに関する処理結果を参照する処理を含む。該処理は、連続する数値列の部分和を計算する処理であり、scan処理、または、prefix_sum処理とも呼ばれている。該scan処理、または、prefix_sum処理に関しては、効率的な並列処理技術が提案されているが、ここでは、該並列処理技術に関する説明を省略する。
 このように、図4におけるステップS201乃至ステップS204は、それぞれ、効率的な並列処理が可能な処理であるので、該処理をGPU213のような並列処理向けのプロセッサに割り当てることによって、動画像符号化処理を高速処理することが可能である。
 また、第1情報を格納する記憶領域、第2情報を格納する記憶領域、及び、変換係数情報を格納する記憶領域を、連続しているアドレスに割り当てることによって、情報圧縮装置207は、ステップS207に示されたデータ転送を、1度のバースト転送によって実現することができる。このように記憶領域を割り当てることによって、情報圧縮装置207は、短期間でのデータ転送を実現することができる。
 次に、第2の実施形態に係る動画像符号化装置201に関する効果について説明する。
 第2の実施形態に係る動画像符号化装置201によれば、符号化処理に必要な情報を、より小さなサイズに圧縮することができる。この理由は、第2の実施形態に係る動画像符号化装置201が、第1の実施形態に係る情報圧縮装置101を含むからである。この理由について詳細に説明する。
 動画像符号化装置201は、各フレームを4×4画素ブロックという単位にて管理し、そのうち、さらに、非ゼロ4×4ブロックの情報のみに関してデータ転送する処理を実行する。1つの画素ブロックのサイズが大きいほど、値がゼロである変換係数を含む可能性が高い。しかし、値がゼロである変換係数は、動画像符号化処理の後処理において利用されることはないので、GPU213が実行する処理において算出されたとして、後処理を実行するCPU214に転送される必要がない。本実施形態に係る動画像符号化装置201によれば、たとえば、非ゼロ4×4ブロックの変換係数のみが転送されるので、転送データのサイズを大きく削減できる。たとえば、非ゼロ4×4ブロックがフレーム中の数%(パーセント)~10%程度しか存在しない場合には、本実施形態に係る動画像符号化装置201によれば、転送データのサイズを10分の1程度以下に削減することができる。
 さらに、本実施形態に係る動画像符号化装置201によれば、データ変換処理を高速に実行することできる。これは、データ変換処理自体が高効率な並列処理であり、さらに、該データ変換処理をGPU213等の並列プロセッサにて実現することができるからである。動画像符号化装置201によれば、32×32画素を有する画素ブロックに関する情報を、直交変換ブロック、4×4画素ブロック等の小さな画素ブロックによって階層的に管理するので、各データ変換処理自体を高並列に実現することができる。
 これに対して、たとえば、非特許文献5に記載された方法におけるデータ変換処理は複雑である。該方法は、直交変換ブロックに関して、所定のスキャン順序に従い、すべての変換係数をスキャンし、スキャンされた順序にて該変換係数を含んでいる変換係数値列を算出する。該方法は、該変換係数値列に含まれている変換係数に基づき、EOB、Index等の値を逐次的に算出する。言い換えれば、該方法は、EOBを算出する処理に、変換係数ごとの条件判定を逐次的に算出する。したがって、この方法がGPU213等の並列処理可能なプロセッサに実装されたとしても、該方法を短期間に処理することはできない。
 たとえば、非特許文献5に記載の技術においては、32×32画素を有する直交変換ブロックに関して、1024個の変換係数に関して逐次処理が必要である。これに対して、本実施形態に係る動画像符号化装置201によれば、複数の変換係数を含む第3ブロックに分割されているので、逐次処理が必要である処理は、高々64(=1024÷(4×4))個の直交変換ブロック、64個の4×4画素ブロック、または、16(=4×4)個の変換係数に対する処理である。したがって、本実施形態に係る動画像符号化装置201によれば、逐次処理を大きく低減できることができるので、短期間に動画像符号化処理を実行することができる。
 符号化方式がH.265方式である場合には、16×16画素や32×32画素等のサイズを有する直交変換ブロックを処理する必要があるので、H.265方式に従ったデータ変換処理には、さらに多くの処理を要する。たとえば、非特許文献5に記載された技術は、H.265方式に従い32×32画素の直交変換ブロックを処理する場合に、1024個の変換係数を含む変換係数値列に対して、逐次的に処理を実行する必要がある。この結果、該データ変換処理には、長い処理時間を要する。この結果、非特許文献5に記載された技術によれば、データ変換処理、及び、データ逆変換処理等の処理に要する時間が長くなるので、動画像符号化処理を短期間に実行することができない。
 <第3の実施形態>
 次に、上述した第1の実施形態を基本とする本発明の第3の実施形態について説明する。
 以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図11を参照しながら、本発明の第3の実施形態に係る情報圧縮装置301について説明する。図11は、本発明の第3の実施形態に係る情報圧縮装置301が有する構成を示すブロック図である。
 本発明の第3の実施形態に係る情報圧縮装置301は、個数算出部302と、位置算出部103と、情報作成部104と、情報格納部105と、パラメータ判定部303とを有する。
 情報圧縮装置301は、たとえば、図3に例示されているような動画像符号化装置201において処理を実行する。この場合に、情報圧縮装置301は、図3に示された情報圧縮装置207に対応する。
 次に、図12を参照しながら、情報圧縮装置301における処理を中心に、第3の実施形態に係る情報圧縮装置301を有する動画像符号化装置における処理について説明する。図12は、第3の実施形態に係る情報圧縮装置301を有する動画像符号化装置201における処理の流れを示すフローチャートである。
 説明の便宜上、第3ブロックは、4×4画素を有する画素ブロック(すなわち、4×4画素ブロック)のうち、非ゼロブロックであると判定された画素ブロックを、「非ゼロ4×4ブロック」と表すとする。第1ブロックに対して直交変換処理が適用されるので、第1ブロックを「直交変換ブロック」と表すとする。直交変換ブロックのうち、非ゼロブロックであると判定された画素ブロックを、「非ゼロ直交変換ブロック」と表すとする。尚、第1ブロック、及び、第3ブロックは、上述した例に限定されない。
 減算変換部205は、動画像データに含まれている1つ以上のフレームに関して、所定の大きさを有する第1ブロックを対象として、該画素ブロックにおける画像を直交変換処理することによって、該第1ブロックにおける画像を表す変換係数値列を作成する(ステップS201)。減算変換部205は、作成した変換係数値列を、量子化部206に対して出力する。
 量子化部206は、減算変換部205が出力した変換係数値列を入力し、入力した変換係数値列に含まれている各値を量子化処理することによって、該変換係数値列が量子化された変換係数値列を作成する(ステップS202)。量子化部206は、該量子化された変換係数値列を情報圧縮装置301に対して出力する。すなわち、量子化部206が出力する変換係数値列は、各フレームに関して、第1ブロックを対象として作成された変換係数値列である。
 次に、情報圧縮装置301における個数算出部302は、量子化部206が出力した数値列(すなわち、直交変換ブロックに関する変換係数値列)を入力する。個数算出部302は、図4を参照しながら説明したような、ステップS203における処理を実行することによって、第1個数、及び、第2個数を算出する(ステップS303)。個数算出部302は、算出した第1個数、及び、第2個数をパラメータ判定部303に対して出力する。
 パラメータ判定部303は、個数算出部302が出力した第1個数、及び、第2個数を入力する。パラメータ判定部303は、入力した第2個数が所定の第2基準を満たしているか否かを判定する(ステップS304)。たとえば、所定の第2基準は、該第2個数が所定の個数を超えているか否かを表す条件である。たとえば、所定の個数は、フレームに含まれている非ゼロ直交変換ブロックに含まれている4×4画素ブロック(すなわち、「第3ブロック」)の個数に対する割合(たとえば、該個数の20%)を用いて定義されていてもよい。パラメータ判定部303は、該第2個数が所定の第2基準を満たしているか否かを判定する処理によって、該フレームを動画像符号化処理する場合に必要な転送データ量(発生符号量)が多いか少ないかを判定することができる。
 パラメータ判定部303は、入力した第2個数が所定の第2基準を満たしていない場合には(ステップS304にてNO)、量子化パラメータの値をより大きな値に設定する(ステップS305)。たとえば、第2個数がフレームにおける4×4画素ブロックの個数の20%を越えている場合、パラメータ判定部303は、該転送データ量が多すぎると判定し、非ゼロブロックであるか否かを判定する量子化パラメータの値として、より大きな値を設定する。量子化パラメータの値を大きくすることによって、第3ブロック(または、第1ブロック)が非ゼロブロックであると判定される画素ブロックの個数が減少する。この結果、非ゼロ4×4ブロックの個数等は、量子化パラメータの値を大きくすることによって減少する。
 その後、個数算出部302は、設定された量子化パラメータに基づき、第1ブロック(たとえば、非ゼロブロック)の第1個数、及び、第3ブロック(たとえば、非ゼロ4×4ブロック)の第2個数を算出する(ステップS303)。
 入力した第2個数が所定の第2基準を満たしている場合に(ステップS304にてYES)、位置算出部103は、ステップS204に示した処理を実行する。
 所定の第2基準は、上述した例に限定されない。たとえば、所定の第2基準は、該フレームに含まれている非ゼロ直交変換ブロックの第1個数と、該フレームに含まれている非ゼロ4×4ブロックの第2個数とを加重平均する処理により算出される評価値が所定の上限値を超えるか否かを表す条件であってもよい。加重平均を算出する処理は、たとえば、第1個数に所定の重みを掛け算した値と、第2個数に所定の重みを掛け算した値とを算出し、算出した2つの値を加算する処理である。この場合に、パラメータ判定部303は、算出した評価値が所定の上限値を超える場合に、該所定の上限値に対する該評価値の割合を算出し、算出した割合に応じて、量子化パラメータに設定する値を増大する幅(増大幅)を算出する。パラメータ判定部303は、算出した増大幅に基づき、量子化パラメータの値を設定する。
 以降、情報圧縮装置301は、図4を参照しながら説明したような、ステップS205乃至ステップS207に示された処理と同様な処理を実行する。
 次に、第3の実施形態に係る情報圧縮装置301に関する効果について説明する。
 第3の実施形態に係る情報圧縮装置301によれば、符号化処理に必要な情報をより小さなサイズに圧縮することができる。情報圧縮装置301が当該効果を奏する理由は、第1の実施形態に係る情報圧縮装置101が当該効果を奏する理由と同様な理由である。
 さらに、第3の実施形態に係る情報圧縮装置301によれば、動画像符号化処理に要する時間を調整することができる。この理由は、情報圧縮装置301が量子化パラメータの値を設定し、設定した値に基づき量子化処理を実行するからである。この理由について詳細に説明する。
 量子化パラメータの値は、第1ブロック(または、第3ブロック)が非ゼロブロックであるか否かを判定する基準を表している。情報圧縮装置301は、転送データ量が多いと判定する場合に量子化パラメータの値をより大きな値に設定することによって、転送データ量を減らす。したがって、第3の実施形態に係る情報圧縮装置301によれば、転送データ量を調整することができるので、動画像符号化処理に要する時間を調整することができる。また、情報圧縮装置301によれば、より大きな値を量子化パラメータに設定する処理によって、転送データ量をより削減することができるので、より処理効率の高い動画像符号化処理を提供することができる。
 パラメータ判定部303が、非ゼロ直交変換ブロックの個数、及び、非ゼロ4×4ブロックの個数に基づき量子化パラメータの値を調整するので、量子化パラメータの値を調整する処理は処理量(演算量)が少ない。したがって、パラメータ判定部303を含む情報圧縮装置301によれば、少ない演算量による処理によって適切な量子化処理を実現でき、さらに、該量子化処理によってフレームを表す特徴量を算出することができる。したがって、情報圧縮装置301によれば、量子化パラメータの値が不適当であった場合、または、入力画像が非常に複雑である結果として転送データ量が極度に多い場合であっても、動画像符号化処理を安定的に実現することができる。
 また、動画像データに関するビットレートを維持する目的のために、動画像符号化装置においては、該動画像データにおける特定のフレームに関して転送データ量が極度に多い場合に、該特定のフレームと異なるフレームに関する転送データ量を減らす処理が実行されることもある。この場合に、該特定のフレームと異なるフレームに係る画質は低下する。情報圧縮装置301が量子化パラメータの値を適切に設定するので、発生符号量が極度に大きいフレームは生じない。したがって、情報圧縮装置301によれば、該特定のフレームと異なるフレームに係る画質が低下する状況は生じない。言い換えれば、第3の実施形態に係る情報圧縮装置301によれば、動画像データに関して安定した画質を提供することができる。
 上述した例においては、H.265方式に従って符号化処理を実行する例を参照しながら、情報圧縮装置301における処理、及び、動画像符号化装置における処理等について説明した。しかし、符号化方式は、H.265方式に限定されず、VC-1方式等の異なる符号化方式、国際標準の動画像符号化方式等に含まれていない符号化方式であってもよい。また、変換係数に関する処理は、上述した例に限定されず、たとえば、画素ブロックに関する変換係数の情報が階層的に管理される方式であってもよい。
 上述した例においては、DCT等の直交変換処理を実行する動画像符号化方式の例を参照しながら、情報圧縮装置301における処理、及び、動画像符号化処理装置における処理等について説明した。しかし、情報圧縮装置301における処理、及び、動画像符号化装置は、Wavelet変換等の変換方式に基づく符号化方式、または、予測誤差画像に対する変換処理を実行することなく量子化処理するような符号化方式等の場合であっても、上述した直交変換処理の場合と同様な処理を実行してもよい。
 上述した例においては、アクセラレータがGPUである場合の例を参照しながら、情報圧縮装置301における処理、及び、動画像符号化装置における処理等について説明した。しかし、アクセラレータが、複数のCPU、PCクラスタ、FPGA、専用LSI回路等の装置であってもよく、この場合に、情報圧縮装置301は、アクセラレータがGPUである場合に実行した処理と同様な処理を実行する。
 尚、LSIは、Large-Scale_Integrationの略称を表す。PCは、personal_computerの略称を表す。
 (ハードウェア構成例)
 上述した本発明の各実施形態における情報圧縮装置または符号化装置を、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係る情報圧縮装置または符号化装置は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係る情報圧縮装置または符号化装置は、専用の装置として実現してもよい。
 図13は、第1の実施形態乃至第3の実施形態に係る情報圧縮装置または符号化装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置220は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)221、メモリ222、ディスク223、不揮発性記録媒体224、通信インターフェース(以降、「通信IF」と表す)227、及び、ディスプレー228を有する。計算処理装置220は、入力装置225、出力装置226に接続可能であってもよい。計算処理装置220は、通信IF227を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
 不揮発性記録媒体224は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体224は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体224は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体224は、上述した媒体に限定されない。また、不揮発性記録媒体224の代わりに、通信IF227、及び、通信ネットワークを介して、係るプログラムを持ち運びしてもよい。
 すなわち、CPU221は、ディスク223に記憶されているソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ222にコピーし、演算処理を実行する。CPU221は、プログラム実行に必要なデータをメモリ222から読み取る。表示が必要な場合には、CPU221は、ディスプレー228に出力結果を表示する。外部への出力が必要な場合には、CPU221は、出力装置226に出力結果を出力する。外部からプログラムを入力する場合、CPU221は、入力装置225からプログラムを読み取る。CPU221は、上述した図1、図3、または、図11に示す各部が表す機能(処理)に対応するところのメモリ222にある情報圧縮プログラム(図2、図4、または、図12)を解釈し実行する。CPU221は、上述した本発明の各実施形態において説明した処理を順次実行する。
 すなわち、このような場合、本発明は、係る情報圧縮プログラム、または、符号化プログラムによっても成し得ると捉えることができる。さらに、係る情報圧縮プログラム、または、符号化プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2015年11月11日に出願された日本出願特願2015-220990を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 101  情報圧縮装置
 102  個数算出部
 103  位置算出部
 104  情報作成部
 105  情報格納部
 201  動画像符号化装置
 202  動き予測部
 203  フィルタ部
 204  フレームバッファ
 205  減算変換部
 206  量子化部
 207  情報圧縮装置
 208  逆量子化部
 209  逆変換加算部
 210  量子化制御部
 211  符号化部
 212  情報復元部
 213  GPU
 214  CPU
 301  情報圧縮装置
 302  個数算出部
 303  パラメータ判定部
 220  計算処理装置
 221  CPU
 222  メモリ
 223  ディスク
 224  不揮発性記録媒体
 225  入力装置
 226  出力装置
 227  通信IF
 228  ディスプレー
 501  動画像符号化装置
 502  動き予測部
 503  フィルタ部
 504  フレームバッファ
 505  量子化部
 506  減算変換部
 507  逆量子化部
 508  逆変換加算部
 509  量子化制御部
 510  符号化部
 521  GPU
 522  CPU
 523  GPU
 524  CPU
 511  情報圧縮装置
 512  情報復元部
 525  GPU
 526  CPU

Claims (10)

  1.  対象画像が第1サイズに分割された複数の第1ブロックにおける、前記対象画像を表す数値列に基づき、前記第1サイズ以上の第2サイズを有する第2ブロックに関して、前記第2ブロックに含まれている前記第1ブロックに関する前記数値列に含まれている数値が所定の値以上である前記第1ブロックの第1個数と、前記第1サイズ以下の第3サイズを有する第3ブロックに関して、前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である第2個数とを算出する個数算出手段と、
     算出した前記第2個数に基づき前記第3ブロックに関する前記数値列をメモリに格納する際の第2位置情報を算出し、算出した前記第1個数と前記第2個数とに基づき、前記第2ブロックに含まれている前記第1ブロックに関する第2情報であって、前記第1ブロックに含まれている前記第3ブロックに関する前記第2位置情報を少なくとも含んでいる前記第2情報を前記メモリに格納する際の第1位置情報を算出する位置算出手段と、
     少なくとも前記第1位置情報を含む第1情報と、前記第2情報とを作成し、作成した前記第2情報を、前記メモリのうち前記第1位置情報が表す記憶領域に格納する情報作成手段と、
     前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である前記第3ブロックに関する前記数値列を、前記メモリのうち前記第2位置情報が表す記憶領域に格納する情報格納手段と
     を備える情報圧縮装置。
  2.  前記情報作成手段は、前記第2ブロックにおける第1ブロックの位置を表す位置情報を作成し、作成した前記位置情報を含む前記第2情報を作成する
     請求項1に記載の情報圧縮装置。
  3.  前記情報作成手段は、前記第1ブロックのサイズを表すサイズ情報を作成し、作成した前記サイズ情報を含む前記第2情報を作成する
     請求項1または請求項2に記載の情報圧縮装置。
  4.  前記情報作成手段は、前記第1ブロックに関する前記数値列を、所定のスキャン順序に従いスキャンした場合に、値がゼロではない数値が最後に現れる位置を特定し、特定した位置を表す非ゼロ位置情報を作成し、作成した非ゼロ位置情報を含む前記第2情報を作成する
     請求項1乃至請求項3のいずれかに記載の情報圧縮装置。
  5.  前記情報作成手段は、前記第2ブロックにおいて前記所定のスキャン順序に従い、前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上であるか否かを判定し、各前記第3ブロックに関して判定した結果を表すブロック情報を作成し、作成したブロック情報を含む前記第2情報を作成する
     請求項1乃至請求項4のいずれかに記載の情報圧縮装置。
  6.  前記第2個数が所定の個数よりも多いか否かを判定し、前記第2個数が前記所定の個数よりも多い場合には、前記所定の値として、より大きな値を設定するパラメータ判定手段
     をさらに備え、
     前記個数算出手段は、前記パラメータ判定手段が設定した前記所定の値に基づいて、前記第1個数と、前記第2個数とを算出する
     請求項1乃至請求項5のいずれかに記載の情報圧縮装置。
  7.  前記個数算出手段は、前記第2個数を算出する場合に、前記第1ブロックごとに、並列的に、または、擬似並列的に処理を実行する
     請求項1乃至請求項6のいずれかに記載の情報圧縮装置。
  8.  請求項1乃至請求項7のいずれかに記載の情報圧縮装置
     を備える動画像符号化装置。
  9.  対象画像が第1サイズに分割された複数の第1ブロックにおける、前記対象画像を表す数値列に基づき、前記第1サイズ以上の第2サイズを有する第2ブロックに関して、前記第2ブロックに含まれている前記第1ブロックに関する前記数値列に含まれている数値が所定の値以上である前記第1ブロックの第1個数と、前記第1サイズ以下の第3サイズを有する第3ブロックに関して、前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である第2個数とを算出し、
     算出した前記第2個数に基づき前記第3ブロックに関する前記数値列をメモリに格納する際の第2位置情報を算出し、算出した前記第1個数と前記第2個数とに基づき、前記第2ブロックに含まれている前記第1ブロックに関する第2情報であって、前記第1ブロックに含まれている前記第3ブロックに関する前記第2位置情報を少なくとも含んでいる前記第2情報を前記メモリに格納する際の第1位置情報を算出し、
     少なくとも前記第1位置情報を含む第1情報と、前記第2情報とを作成し、作成した前記第2情報を、前記メモリのうち前記第1位置情報が表す記憶領域に格納し、
     前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である前記第3ブロックに関する前記数値列を、前記メモリのうち前記第2位置情報が表す記憶領域に格納する情報圧縮方法。
  10.  対象画像が第1サイズに分割された複数の第1ブロックにおける、前記対象画像を表す数値列に基づき、前記第1サイズ以上の第2サイズを有する第2ブロックに関して、前記第2ブロックに含まれている前記第1ブロックに関する前記数値列に含まれている数値が所定の値以上である前記第1ブロックの第1個数と、前記第1サイズ以下の第3サイズを有する第3ブロックに関して、前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である第2個数とを算出する個数算出機能と、
     算出した前記第2個数に基づき前記第3ブロックに関する前記数値列をメモリに格納する際の第2位置情報を算出し、算出した前記第1個数と前記第2個数とに基づき、前記第2ブロックに含まれている前記第1ブロックに関する第2情報であって、前記第1ブロックに含まれている前記第3ブロックに関する前記第2位置情報を少なくとも含んでいる前記第2情報を前記メモリに格納する際の第1位置情報を算出する位置算出機能と、
     少なくとも前記第1位置情報を含む第1情報と、前記第2情報とを作成し、作成した前記第2情報を、前記メモリのうち前記第1位置情報が表す記憶領域に格納する情報作成機能と、
     前記第3ブロックに関する前記数値列に含まれている数値が前記所定の値以上である前記第3ブロックに関する前記数値列を、前記メモリのうち前記第2位置情報が表す記憶領域に格納する情報格納機能と
     をコンピュータに実現させる情報圧縮プログラムが記録された記録媒体。
PCT/JP2016/083262 2015-11-11 2016-11-09 情報圧縮装置、情報圧縮方法、記録媒体、及び、符号化装置 WO2017082304A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017550361A JPWO2017082304A1 (ja) 2015-11-11 2016-11-09 情報圧縮装置、情報圧縮方法、情報圧縮プログラム、及び、符号化装置
US15/773,216 US10448035B2 (en) 2015-11-11 2016-11-09 Information compression device, information compression method, non-volatile recording medium, and video coding device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-220990 2015-11-11
JP2015220990 2015-11-11

Publications (1)

Publication Number Publication Date
WO2017082304A1 true WO2017082304A1 (ja) 2017-05-18

Family

ID=58695412

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/083262 WO2017082304A1 (ja) 2015-11-11 2016-11-09 情報圧縮装置、情報圧縮方法、記録媒体、及び、符号化装置

Country Status (3)

Country Link
US (1) US10448035B2 (ja)
JP (1) JPWO2017082304A1 (ja)
WO (1) WO2017082304A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080810B2 (en) * 2017-04-21 2021-08-03 Intel Corporation Dynamically reconfigurable memory subsystem for graphics processors
US20240015301A1 (en) * 2022-07-11 2024-01-11 Samsung Electronics Co., Ltd. Evc decoding complexity metrics

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02226886A (ja) * 1989-02-28 1990-09-10 Sony Corp データ伝送装置及び伝送方法
JPH10336677A (ja) * 1997-06-02 1998-12-18 Oki Electric Ind Co Ltd 動画像復号化装置
JP2006295796A (ja) * 2005-04-14 2006-10-26 Nec Electronics Corp 画像データ復号装置及び画像データ復号方法
WO2013088687A1 (ja) * 2011-12-15 2013-06-20 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化復号装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996280B1 (en) * 1998-06-09 2006-02-07 Matsushita Electric Industrial Co., Ltd. Image encoder, image decoder, character checker, and data storage medium
JP5136474B2 (ja) * 2009-03-13 2013-02-06 ソニー株式会社 画像処理装置および方法、学習装置および方法、並びに、プログラム
US20120207400A1 (en) * 2011-02-10 2012-08-16 Hisao Sasai Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
EP2530488B1 (en) * 2011-06-01 2016-04-13 u-blox AG Hybrid satellite positioning with prediction
JP6186429B2 (ja) 2013-04-12 2017-08-23 株式会社スクウェア・エニックス・ホールディングス 情報処理装置、制御方法、プログラム、及び記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02226886A (ja) * 1989-02-28 1990-09-10 Sony Corp データ伝送装置及び伝送方法
JPH10336677A (ja) * 1997-06-02 1998-12-18 Oki Electric Ind Co Ltd 動画像復号化装置
JP2006295796A (ja) * 2005-04-14 2006-10-26 Nec Electronics Corp 画像データ復号装置及び画像データ復号方法
WO2013088687A1 (ja) * 2011-12-15 2013-06-20 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化復号装置

Also Published As

Publication number Publication date
US20180324446A1 (en) 2018-11-08
US10448035B2 (en) 2019-10-15
JPWO2017082304A1 (ja) 2018-09-06

Similar Documents

Publication Publication Date Title
KR102426721B1 (ko) 색차 성분 양자화 매개 변수 결정 방법 및 이러한 방법을 사용하는 장치
JP6660074B2 (ja) 映像復号化方法及び装置
KR101717510B1 (ko) 화상 예측 부호화 장치, 방법 및 프로그램, 화상 예측 복호 장치, 방법 및 프로그램, 및 부호화·복호 시스템 및 방법
US7711196B2 (en) Apparatus and method for generating coded block pattern for alpha channel image and alpha channel image encoding/decoding apparatus and method using the same
JP2009531980A (ja) デジタルビデオエンコーダの内部予測及びモード決定処理の計算を低減する方法
JP2015159574A (ja) 映像復号化装置
KR20110071231A (ko) 부호화 방법, 복호화 방법 및 장치
KR101614828B1 (ko) 화상 부호화 및 복호 방법, 장치, 프로그램
JP7343669B2 (ja) Vvcにおける色変換のための方法及び機器
KR20100066586A (ko) 복호 장치 및 복호 방법
KR20060109290A (ko) 화상 복호 장치 및 화상 복호 방법과 화상 복호 프로그램
JP5195032B2 (ja) 符号化装置/復号化装置、符号化方法/復号化方法及びプログラム
KR20200091848A (ko) 인트라 예측 방법 및 그 장치
JP2015136172A (ja) 映像復号化装置
JP7413557B2 (ja) サインデータハイディング関連映像デコーディング方法及びその装置
JP2007013298A (ja) 画像符号化装置
KR20090072150A (ko) 스캔 패턴 결정 장치 및 이를 이용한 영상 데이터 부호화방법과 그 장치, 그리고, 이를 이용한 영상 데이터 복호화방법과 그 장치
JP2008219205A (ja) 画像情報符号化装置及び画像情報符号化方法
WO2017082304A1 (ja) 情報圧縮装置、情報圧縮方法、記録媒体、及び、符号化装置
JP6708211B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
JP4318019B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
KR20160088951A (ko) 동화상 예측 부호화 장치, 동화상 예측 부호화 방법, 동화상 예측 부호화 프로그램, 동화상 예측 복호 장치, 동화상 예측 복호 방법, 및 동화상 예측 복호 프로그램
KR20170058870A (ko) 비선형 매핑을 통한 영상 부호화/복호화 방법 및 장치
JP6030989B2 (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、それらのプログラム並びにプログラムを記録した記録媒体
JP2007266861A (ja) 画像符号化装置

Legal Events

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

Ref document number: 16864265

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017550361

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15773216

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16864265

Country of ref document: EP

Kind code of ref document: A1