WO2021084679A1 - 動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置 - Google Patents

動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置 Download PDF

Info

Publication number
WO2021084679A1
WO2021084679A1 PCT/JP2019/042759 JP2019042759W WO2021084679A1 WO 2021084679 A1 WO2021084679 A1 WO 2021084679A1 JP 2019042759 W JP2019042759 W JP 2019042759W WO 2021084679 A1 WO2021084679 A1 WO 2021084679A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantization
data
frame
frames
coding
Prior art date
Application number
PCT/JP2019/042759
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 JP2021553979A priority Critical patent/JPWO2021084679A1/ja
Priority to PCT/JP2019/042759 priority patent/WO2021084679A1/ja
Priority to CN201980100551.6A priority patent/CN114424549B/zh
Publication of WO2021084679A1 publication Critical patent/WO2021084679A1/ja
Priority to US17/729,818 priority patent/US20220256155A1/en

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present disclosure relates to a moving image coding method, a coding processing method, a moving image coding device, and a coding processing device.
  • a service that distributes moving images via a network is known.
  • the quantization processing and coding processing of the frames constituting the moving image are accelerated, and the rate control for controlling the bit rate during the coding processing is made highly accurate. Is required to do.
  • Patent Document 1 discloses a technique for performing quantization processing and coding processing of the next frame based on the amount of data of the frame after the coding processing. Further, Non-Patent Document 1 discloses a technique for speeding up the coding process by executing the coding process of a plurality of frames in parallel.
  • Non-Patent Document 1 discloses that the coding process is executed in parallel, but does not disclose how to improve the accuracy of rate control.
  • the present disclosure has been made in view of the above circumstances, and an object of the present disclosure is to provide a moving image coding method and the like capable of achieving high-speed quantization processing, high-speed coding processing, and high-precision rate control. To do.
  • the moving image coding method in one form of the present disclosure accumulates the quantization data of a plurality of frames by serially accumulating the quantization data of the quantization-processed frames for each of the quantization data of one frame.
  • the quantization parameters for performing the quantization processing of the frame immediately after the plurality of frames are determined.
  • Entropy coding is performed to generate the quantization data of the frame immediately after the above by performing the quantization process based on the quantization parameter, and to perform entropy coding on the quantization data of a plurality of frames including the frame immediately after the above. Is executed in parallel between a plurality of frames including the frame immediately after the above.
  • the coding processing method in one form of the present disclosure is to accumulate the quantization data of a plurality of frames by serially accumulating the quantization data of the quantization-processed frames for each of the quantization data of one frame. Based on the quantization data of at least one frame out of the quantization data of the plurality of frames, the quantization parameters for performing the quantization processing of the frame immediately after the plurality of frames are determined. Generate the quantization data of the frame immediately after the above by performing the quantization process based on the quantization parameter, and transfer the quantization data of a plurality of frames including the frame immediately after the above to an external CPU (Central Processing Unit). Including to output.
  • CPU Central Processing Unit
  • the moving image encoding device accumulates the quantization data of a plurality of frames by serially accumulating the quantization data of the quantization-processed frames for each of the quantization data of one frame.
  • the quantization data storage unit, a rate control unit that determines the amount of bit data of the frame immediately after the plurality of frames based on the quantization data of at least one frame among the quantization data of the plurality of frames, and the above-mentioned Based on the bit data amount obtained by the rate control unit, the parameter determination unit that determines the quantization parameter when performing the quantization processing of the frame immediately after the above, and the quantization processing based on the quantization parameter are performed.
  • the quantization unit that generates the quantization data of the frame immediately after the above, and the coding process that performs entropy coding on the quantization data of a plurality of frames including the frame immediately after the above, are performed on a plurality of frames including the frame immediately after the above. It includes a coding unit that executes in parallel between them.
  • the coding processing apparatus serially accumulates the quantization data of the quantized frames for each of the quantization data of one frame, thereby accumulating the quantization data of a plurality of frames.
  • the amount of bit data determined by using the quantization data storage unit and the quantization data of at least one frame out of the quantization data of the plurality of frames is received from the outside, and the quantization process of the frame immediately after the plurality of frames is received. It is provided with a parameter determination unit for determining the quantization parameter at the time of performing the above, and a quantization unit for generating the quantization data of the frame immediately after the above by performing the quantization process based on the quantization parameter.
  • a recording medium such as a system, an apparatus, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the apparatus, the integrated circuit, the computer. It may be realized by any combination of a program and a recording medium.
  • the moving image coding method and the like of the present disclosure it is possible to achieve high-speed quantization processing, high-speed coding processing, and high accuracy of rate control.
  • FIG. 1 is a block configuration diagram of the moving image coding device according to the first embodiment.
  • FIG. 2 is a diagram showing circuit components constituting the moving image coding device according to the first embodiment.
  • FIG. 3 is a diagram showing a configuration of a coding unit of the moving image coding device according to the first embodiment.
  • FIG. 4 is a schematic diagram showing the coded data generated by the coding unit of the moving image coding device according to the first embodiment.
  • FIG. 5 is a flowchart showing a moving image coding method according to the first embodiment.
  • FIG. 6 is a diagram showing the timing of the quantization processing and the coding processing of each frame executed by the moving image coding method according to the first embodiment.
  • FIG. 7 is a flowchart showing the coding processing method according to the first embodiment.
  • FIG. 1 is a block configuration diagram of the moving image coding device according to the first embodiment.
  • FIG. 2 is a diagram showing circuit components constituting the moving image coding device according to the first embodiment.
  • FIG. 8 is a block configuration diagram of the moving image coding device according to the first modification of the first embodiment.
  • FIG. 9 is a block configuration diagram of the moving image coding device according to the second modification of the first embodiment.
  • FIG. 10 is a flowchart showing a moving image coding method according to the second embodiment.
  • FIG. 11 is a diagram showing a configuration example of a CPU and an accelerator in a moving image coding device.
  • FIG. 1 is a block configuration diagram of the moving image coding device 1 according to the first embodiment.
  • the moving image coding device 1 is a device that quantizes and encodes a plurality of frames constituting a moving image on a frame-by-frame basis.
  • the moving image coding device 1 includes a subtraction unit 104, a conversion unit 106, a quantization unit 108, a quantization data storage unit 109, a parameter determination unit 110, and a coding unit 130. , A coded data storage unit 136, and a rate control unit 138. Further, the moving image coding device 1 includes an inverse quantization unit 112, an inverse conversion unit 114, an addition unit 116, a blocking filter 120, a frame memory 122, a motion detection / compensation unit 124, and an intra prediction unit 126. And a prediction control unit 128.
  • FIG. 2 is a diagram showing an example of circuit components constituting the moving image coding device 1.
  • the moving image coding device 1 is composed of a CPU (Central Processing Unit) 30 and an accelerator 20.
  • a CPU Central Processing Unit
  • the CPU 30 and the accelerator 20 are connected by a communication interface 50 compliant with the PCI (Peripheral Component Interconnect) standard.
  • PCI Peripheral Component Interconnect
  • the accelerator 20 is a circuit component that supports speeding up of arithmetic processing of the CPU 30, that is, an FPGA (Field Programmable Gate Array).
  • the accelerator 20 corresponds to the coding processing device 2.
  • the CPU 30 is a circuit component that manages the overall operation of the moving image coding device 1.
  • a memory 40 is built in the CPU 30, and a software program is stored in the memory 40.
  • the CPU 30 can execute a plurality of threads corresponding to a plurality of programs in parallel.
  • To execute a plurality of threads in parallel means to execute the processes in the plurality of threads independently while overlapping them in time. For example, when the CPU 30 can execute the processing of 8 threads, the CPU 30 associates the 8 frames constituting the moving image with the 8 threads on a one-to-one basis, and makes each thread individually in the same time zone or a different time zone. Can be executed.
  • the functions of the coding unit 130, the coded data storage unit 136, and the rate control unit 138 shown in FIG. 1 are realized by the CPU 30. Further, the subtraction unit 104, the conversion unit 106, the quantization unit 108, the quantization data storage unit 109, the parameter determination unit 110, the inverse quantization unit 112, the inverse conversion unit 114, the addition unit 116, the blocking filter 120, the motion detection / compensation Each function of the unit 124, the intra prediction unit 126, and the prediction control unit 128 is realized by the accelerator 20.
  • the function of the coded data storage unit 136 may be realized by a circuit component different from that of the CPU 30.
  • the subtraction unit 104 calculates the prediction error of each frame constituting the moving image by subtracting the prediction signal from the original signal input to the moving image coding device 1.
  • the prediction error calculated by the subtraction unit 104 is output to the conversion unit 106.
  • the prediction error and the prediction signal will be described later.
  • the conversion unit 106 converts the prediction error in the spatial domain into the data in the frequency domain. Specifically, the conversion unit 106 performs a discrete cosine transform (DCT) on, for example, a prediction error in a spatial region. The data converted by the conversion unit 106 is output to the quantization unit 108.
  • DCT discrete cosine transform
  • the quantization unit 108 generates the quantization data d1 by performing the quantization process on the data output from the conversion unit 106. Specifically, the quantization unit 108 quantizes the data in the frequency domain based on the quantization parameter QP described later.
  • the quantization parameter QP is a parameter that defines the quantization step. For example, if the quantization parameter QP is changed and the quantization step is increased, coarse quantization occurs and the amount of data decreases.
  • the quantization process by the quantization unit 108 is executed serially for each frame. The arithmetic processing for the data in the frame may be executed serially or in parallel.
  • the quantization data d1 generated by the quantization unit 108 is output to the quantization data storage unit 109 and the inverse quantization unit 112.
  • the quantization data storage unit 109 stores the quantization data d1 of the frame quantized by the quantization unit 108. Specifically, the quantization data storage unit 109 serially stores the quantization data d1 generated for each frame by the quantization unit 108 for each quantization data d1 of one frame. As a result, the quantization data d1 of a plurality of frames is accumulated in the quantization data storage unit 109. The quantization data d1 stored in the quantization data storage unit 109 is output to the coding unit 130 and the rate control unit 138.
  • the one-frame quantization data d1 stored in the quantization data storage unit 109 is output to the coding unit 130 and the rate control unit 138 each time the quantization process is completed.
  • the quantization data d1 of one frame that has been quantized by the accelerator 20 is output to the CPU 30 via the communication interface 50 each time the quantization processing is completed.
  • the data output from the quantization data storage unit 109 to the coding unit 130 is not limited to the quantization data d1, and may be arithmetic data processed based on the quantization data d1.
  • the arithmetic data may be binarized data based on the binarized data d1 or arithmetically coded data after being binarized based on the binarized data d1.
  • the coding unit 130 generates the coded data d2 by entropy-coding the quantization data d1 output from the quantization data storage unit 109.
  • the coded data d2 is a bit stream compression-molded by entropy coding.
  • FIG. 3 is a diagram showing the configuration of the coding unit 130 of the moving image coding device 1.
  • the coding unit 130 encodes the binarized data by the binarizing unit 131 and the binarizing unit 131 that binarizes the input quantization data d1. It is composed of a coding unit 132 and a stream forming unit 133 that forms a bit stream.
  • FIG. 4 is a schematic diagram showing the coded data d2 generated by the coding unit 130.
  • the coded data d2 includes header information, additional information, filler data, and image compression data.
  • Header information is information about a frame, frame group, or slice that is part of a frame.
  • the additional information is, for example, information such as a display method, and is various information necessary for the application.
  • the filler data is padding data required for rate control.
  • the image compression data is image data generated by encoding the quantization data d1.
  • the coding process by the coding unit 130 is processed in units of one frame, and is executed in parallel between a plurality of frames constituting the moving image.
  • the coded data d2 generated by the coding unit 130 is output to the coded data storage unit 136. Note that the coding process can be started individually at any time as long as the previous process is completed, because there is no processing dependency in each frame.
  • the coding process executed in parallel by the coding unit 130 is a process executed by at least one of the binarization unit 131, the arithmetic coding unit 132, and the stream forming unit 133 shown in FIG. All you need is.
  • the coding process executed by the coding unit 130 is performed by the arithmetic coding unit 132 and the stream.
  • the process may be performed by the molding unit 133.
  • the coding process executed by the coding unit 130 is performed. It may be a process executed by the stream forming unit 133.
  • the coded data storage unit 136 is a FIFO (First In First Out) that buffers the coded data d2 generated by the coded unit 130. Further, the coded data storage unit 136 rearranges each frame in the same order as the order in which the coding process is started by the coding unit 130, and outputs the frames to the outside of the moving image coding device 1. Further, the coded data storage unit 136 outputs information regarding the amount of data of the coded data d2 stored in the coded data storage unit 136 to the rate control unit 138.
  • FIFO First In First Out
  • the rate control unit 138 determines the amount of bit data when processing the next data based on the past data.
  • the rate control unit 138 acquires information on the amount of coded data d2 output from the coded data storage unit 136, and also receives the quantization data d1 output from the quantization data storage unit 109, and receives the past quantization data d1. Acquires information on the amount of data of the quantization data d1.
  • the rate control unit 138 determines the amount of bit data when the coding process is performed in the next frame based on the acquired information.
  • the bit data amount determined by the rate control unit 138 of the CPU 30 is output to the parameter determination unit 110 of the accelerator 20 via the communication interface 50.
  • the parameter determination unit 110 determines the quantization parameter QP when performing the next quantization process based on the amount of bit data output from the rate control unit 138. Specifically, the parameter determination unit 110 determines the quantization parameter QP so that the coded data d2 generated by the next quantization process and the coding process is generated to a value close to the bit data amount. .. The determination of the quantization parameter QP is executed serially every frame.
  • the rate control unit 138 determines the bit data amount based on the data of a plurality of frames in the past, but in the present embodiment, the code generated by the coding unit 130 Instead of using all of the encoded data d2, the encoded data d2 of the corresponding frame is estimated using the quantization data d1 of at least one frame, and the encoded data d2 and the estimated encoded data d2 are used in the past.
  • the amount of bit data is determined as the data of a plurality of frames in. More specifically, in the present embodiment, the amount of bit data is determined by using the quantization data d1 of a predetermined number of frames out of a plurality of frames.
  • the predetermined number of frames is, for example, the number of threads of the coding process executed in parallel by the coding unit 130 of the CPU 30 (see FIG. 6).
  • the rate control unit 138 determines the bit data amount using the data amount of the quantization data d1.
  • Using the data amount of the quantized data d1 means using the data to be encoded among the quantized data. Further, this bit data amount is determined based on a value obtained by multiplying the data amount of the quantization data d1 by a predetermined coefficient in order to match the scale of the data amount of the quantization data d1 and the data amount of the coded data d2. Will be done.
  • the predetermined coefficient is appropriately set according to the type of moving image.
  • the quantization parameter QP determined by the parameter determination unit 110 is output to the quantization unit 108.
  • the quantization unit 108 executes the quantization process of the next frame based on the quantization parameter QP received from the parameter determination unit 110.
  • the dequantization unit 112 dequantizes the quantization data d1 output from the quantization unit 108.
  • the inverse transformation unit 114 restores the prediction error by inversely transforming the data output from the inverse quantization unit 112.
  • the addition unit 116 reconstructs the frame by adding the prediction error output from the inverse conversion unit 114 and the prediction signal output from the prediction control unit 128.
  • the frame reconstructed by the addition unit 116 is output to the frame memory 122 via the blocking filter 120.
  • the frame memory 122 stores the reconstructed frame filtered by the blocking filter 120. This reconstructed frame is used as a reference picture of the motion detection / compensation unit 124 and the intra prediction unit 126.
  • the motion detection / compensation unit 124 refers to the reference picture stored in the frame memory 122 to perform frame inter-prediction (also referred to as inter-screen prediction). For example, the motion detection / compensation unit 124 generates a frame inter-prediction signal by performing a motion search in the reference picture and performing motion compensation using the motion vector obtained by the motion search. The inter-prediction signal generated by the motion detection / compensation unit 124 is output to the prediction control unit 128.
  • frame inter-prediction also referred to as inter-screen prediction.
  • Intra-prediction unit 126 performs intra-prediction of frames (also referred to as in-screen prediction). For example, the intra-prediction unit 126 generates an intra-prediction signal by performing intra-prediction with reference to data of frames adjacent to each other in a predetermined direction. The intra prediction signal generated by the intra prediction unit 126 is output to the prediction control unit 128.
  • the prediction control unit 128 selects either an intra prediction signal or an inter prediction signal, and outputs the selected signal as a prediction signal to the subtraction unit 104 and the addition unit 116.
  • the motion vector generated by the motion detection / compensation unit 124 and the direction of the intra prediction generated by the intra prediction unit 126 may be output to the coding unit 130 of the CPU via the communication interface 50.
  • the moving image coding device 1 of the present embodiment serially accumulates the quantized data d1 of the quantized frame for each quantized data d1 of one frame, so that the quantized data d1 of a plurality of frames Rate control that determines the amount of bit data of the frame immediately after a plurality of frames by using the quantization data storage unit 109 that accumulates the quantization data and the quantization data d1 of at least one frame out of the quantization data d1 of a plurality of frames.
  • the parameter determination unit 110 that determines the quantization parameter QP when performing the quantization processing of the frame immediately after the above based on the bit data amount obtained by the unit 138 and the rate control unit 138, and the quantization parameter QP.
  • the quantization unit 108 that generates the quantization data d1 of the frame immediately after the above by performing the quantization processing, and the coding process that performs entropy coding on the quantization data d1 of a plurality of frames including the frame immediately after the above.
  • a coding unit 130 that executes in parallel between a plurality of frames including the frame immediately after the above.
  • the rate control unit 138 determines the amount of bit data using the quantization data d1 of at least one frame out of the quantization data d1 of the plurality of frames, so that, for example, the coding unit 130 encodes the data. Even when the processing is not completed, the bit data amount can be determined using the quantization data d1, and the quantization parameter QP can be determined by the parameter determination unit 110 based on the bit data amount. As a result, the quantization process and the coding process can be speeded up.
  • rate control in the coding process is performed as compared with the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. Can be made highly accurate.
  • the coding processing device 2 of the present embodiment serially accumulates the quantized data d1 of the quantized frame for each quantized data d1 of one frame, thereby accumulating the quantized data d1 of a plurality of frames.
  • the amount of bit data determined by using the quantized data storage unit 109 to be accumulated and the quantized data d1 of at least one frame out of the quantized data d1 of a plurality of frames is received from the outside, and the frame immediately after the plurality of frames is received.
  • Parameter determination unit 110 that determines the quantization parameter QP when performing the quantization process of, and the quantization unit 108 that generates the quantization data d1 immediately after the above by performing the quantization process based on the quantization parameter QP. And.
  • the parameter determination unit 110 determines the quantization parameter QP based on the amount of bit data determined using the quantization data d1 of at least one frame out of the quantization data d1 of the plurality of frames. Therefore, for example, even when the coding process executed in the subsequent stage of the coding processing device 2 is not completed, the quantization parameter QP can be determined based on the quantization data d1. As a result, the quantization process can be speeded up. Further, by determining the quantization parameter QP based on the quantization data d1 of one frame, rate control in the coding process is performed as compared with the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. Can be made highly accurate.
  • FIG. 5 is a flowchart showing a moving image coding method according to the first embodiment.
  • the moving image coding method includes the processes S11 to S15 shown below.
  • (S11) Accumulating the quantization data d1 of a plurality of frames by serially accumulating the quantization data d1 of the quantized frame for each quantization data of one frame.
  • (S12) To determine the quantization parameter QP when performing the quantization processing of the frame immediately after the plurality of frames based on the quantization data d1 of a predetermined number of frames among the plurality of frames.
  • S13 To generate the quantization data d1 of the frame immediately after the above by performing the quantization processing based on the quantization parameter QP.
  • This moving image coding method is executed by the moving image coding device 1.
  • the processes S11 to S15 are described in chronological order focusing on a specific frame, but in the actual moving image coding method, the quantization process and the coding process are simultaneously advanced by the accelerator 20 and the CPU 30. To.
  • FIG. 6 is a timing chart showing the operation of the moving image coding device 1 according to the first embodiment.
  • FIG. 6 describes an example in which the number of threads of the coding process executed in parallel by the coding unit 130 is eight, that is, the number of threads started by the CPU 30 is eight.
  • FIG. 6 shows a scene in which the quantization processing for frames f11 to f18 is completed and the processing for the next frame, frame f19, is about to start.
  • FIG. 6 shows an example in which the coding processing of frames f11 to f18 by the coding unit 130 is started individually at different times in all the frames of the eight frames and ends individually at different times. Has been done.
  • the processing of a plurality of frames does not include the serial processing, and all the processing is executed individually and independently.
  • the reason why the start and end times are different in each frame f11 to f18 in this way is that the amount of data in each frame f11 to f18 is different.
  • the quantization process by the accelerator 20 is started by receiving the quantization instruction output from the CPU 30.
  • This quantization instruction is output from the CPU 30 after the quantization process of the frame f18 immediately before the frame f19 to be performed the quantization process is started.
  • the coding processing of the frames f11, f13, and f14 is completed, but the coding processing of the other frames f12, f15 to f18 is completed. Is not finished.
  • the quantization parameter QP when the quantization parameter QP is determined, the quantization parameter QP is determined without using the coded data d2 that has been coded. That is, the quantization parameter QP is determined based on a predetermined number of quantization data d1 regardless of whether or not the coding processing of each frame f11 to f18 is completed.
  • the predetermined number of frames is the number of threads of the coding process executed in parallel by the coding unit 130.
  • the quantization parameter QP is determined based on the total value of the quantization data d1 of all the frames f11 to f18.
  • the above quantization instruction is output from the CPU 30 after the quantization process of the frame f18 immediately before the frame f19 is started, but is not limited to this.
  • the quantization instruction is given to a predetermined thread among the plurality of threads. It may be output from the CPU 30 after the coding process of the one frame is completed, that is, when a free thread that has not been processed is created. In this case, as soon as the coding process of the one frame is completed, the coding process of the frame different from the one frame is started, so that the quantization instruction is substantially the coding process of the one frame. Is completed, and the coding process of a frame different from the above one frame is started, and then the output is output from the CPU 30.
  • the quantization data d1 of the frame f19 is generated by performing the quantization process based on the determined quantization parameter QP. Then, the entropy coding process is performed on the quantization data d1 of the frame f19. Further, the entropy coding process is similarly executed for the subsequent plurality of frames, such as frames f20 and f21. Each frame f19, f20, f21 ... The coding process is executed in parallel.
  • the quantization parameter QP is determined based on the quantization data d1 of at least one frame out of the quantization data d1 of a plurality of frames, for example, the codes of the plurality of frames. Even when the quantization process is not completed, the quantization parameter QP can be determined based on the quantization data d1. As a result, the quantization process and the coding process can be speeded up. Further, by determining the quantization parameter QP based on the quantization data d1 of one frame, rate control in the coding process is performed as compared with the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. Can be made highly accurate.
  • FIG. 7 is a flowchart showing the coding processing method according to the first embodiment.
  • the coding processing method includes the processing of S11, S12, S13 and S13A shown below.
  • S11 Accumulating the quantization data of a plurality of frames by serially accumulating the quantization data of the quantization-processed frames for each of the quantization data of one frame.
  • S12 To determine the quantization parameter QP when performing the quantization processing of the frame immediately after the plurality of frames based on the quantization data of a predetermined number of frames among the plurality of frames.
  • S13 To generate the quantization data d1 of the frame immediately after the above by performing the quantization processing based on the quantization parameter QP.
  • S13A Output the quantization data d1 of a plurality of frames including the frame immediately after the above to the external CPU 30.
  • This coding processing method is executed by the coding processing device 2, that is, the accelerator 20.
  • the quantization data d1 of a plurality of frames is accumulated by serially accumulating the quantization data d1 of the quantized frame for each of the quantization data of one frame.
  • the quantization data d1 of the frame immediately after the above is generated, and the quantization data d1 of a plurality of frames including the frame immediately after the above is entropy-encoded.
  • the coding process for performing the above is executed in parallel between a plurality of frames including the frame immediately after the above.
  • the quantization parameter QP based on the quantization data d1 of at least one frame out of the quantization data d1 of the plurality of frames, for example, when the coding process of the plurality of frames is not completed. Even if there is, the quantization parameter QP can be determined based on the quantization data d1. As a result, the quantization process and the coding process can be speeded up. Further, by determining the quantization parameter QP based on the quantization data d1 of one frame, rate control in the coding process is performed as compared with the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. Can be made highly accurate.
  • the coding process may be started individually at different times for a plurality of frames including the frame immediately after the above.
  • the coding process of each frame can be started in a timely manner according to the end of the quantization process of each frame. As a result, the coding process can be speeded up.
  • the moving image coding method may further include outputting the processing results obtained by the coding process in the same order as the order in which the coding process is started.
  • the processing results of the coding processing executed in parallel between a plurality of frames can be correctly rearranged.
  • the quantization parameter QP may be determined based on the data amount of the quantization data of at least one frame.
  • the quantization parameter QP can be appropriately determined.
  • the rate control in the coding process can be made highly accurate.
  • the quantization parameter QP may be determined based on a value obtained by multiplying the above data amount by a predetermined coefficient.
  • the quantization parameter QP can be appropriately determined by determining the quantization parameter QP based on the value obtained by multiplying the above data amount by a predetermined coefficient.
  • the rate control in the coding process can be made highly accurate.
  • the quantization parameter QP may be determined based on the quantization data of a predetermined number of frames out of a plurality of frames.
  • the quantization parameter QP can be determined based on the quantization data d1 regardless of whether or not the coding processing of a plurality of frames has been completed. As a result, the quantization process can be speeded up.
  • the coding process is executed by the CPU 30, the quantization process is executed by the accelerator 20 connected to the CPU via the communication interface 50, and the quantization process is further performed by the accelerator 20. It may include outputting the quantization data d1 of the frame or the arithmetic data based on the quantization data d1 to the CPU 30 via the communication interface 50.
  • the quantization process can be executed by the accelerator 20 capable of high-speed processing, and the coding process can be executed by the highly versatile CPU 30. As a result, the quantization process and the coding process can be speeded up.
  • the quantization data of one frame or the above-mentioned calculation data may be output from the accelerator 20 to the CPU 30 each time the quantization process of the accelerator 20 is completed.
  • the coding process can be executed every time the quantization process is completed, and the quantization process and the coding process can be speeded up.
  • the quantization data d1 of a plurality of frames is accumulated by serially accumulating the quantization data d1 of the quantization processed frame for each the quantization data d1 of one frame.
  • the quantization data d1 of the frame immediately after the above is generated, and the quantization data d1 of a plurality of frames including the frame immediately after the above is generated by the external CPU. Including to output to.
  • the quantization parameter QP based on the quantization data d1 of at least one frame out of the quantization data d1 of the plurality of frames, for example, when the coding process of the plurality of frames is not completed. Even if there is, the quantization parameter QP can be determined based on the quantization data d1. As a result, the quantization process can be speeded up. Further, by determining the quantization parameter QP based on the quantization data d1 of one frame, rate control in the coding process is performed as compared with the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. Can be made highly accurate.
  • the quantization parameter QP may be determined based on the quantization data of a predetermined number of frames out of a plurality of frames.
  • the quantization parameter QP can be determined based on the quantization data d1 regardless of whether or not the coding processing of a plurality of frames has been completed. As a result, the quantization process can be speeded up.
  • the quantization process may be started by receiving the quantization instruction output from the CPU 30.
  • the quantization process can be started reliably, and the quantization process can be speeded up.
  • the quantization instruction may be output from the CPU 30 after the quantization processing of the frame immediately before the frame to be performed the quantization processing is started.
  • the quantization process can be started at an appropriate timing, and the quantization process can be speeded up.
  • the quantization instruction is given to a predetermined thread among the plurality of threads. It may be output from the CPU 30 after the coding process of the one frame is completed and the coding process of a frame different from the one frame is started.
  • the quantization process can be started at an appropriate timing, and the quantization process can be speeded up.
  • the moving image coding device 1 of the present embodiment serially accumulates the quantized data d1 of the quantized frame for each quantized data d1 of one frame, so that the quantized data d1 of a plurality of frames Rate control that determines the amount of bit data of the frame immediately after a plurality of frames by using the quantization data storage unit 109 that accumulates the quantization data and the quantization data d1 of at least one frame out of the quantization data d1 of a plurality of frames.
  • the parameter determination unit 110 that determines the quantization parameter QP when performing the quantization processing of the frame immediately after the above based on the bit data amount obtained by the unit 138 and the rate control unit 138, and the quantization parameter QP.
  • the quantization unit 108 that generates the quantization data d1 of the frame immediately after the above by performing the quantization processing, and the coding process that performs entropy coding on the quantization data d1 of a plurality of frames including the frame immediately after the above.
  • a coding unit 130 that executes in parallel between a plurality of frames including the frame immediately after the above.
  • the rate control unit 138 determines the bit data amount using the quantization data d1 of at least one frame out of the quantization data d1 of the plurality of frames, and the parameter determination unit based on the bit data amount.
  • rate control in the coding process is performed as compared with the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. Can be made highly accurate.
  • the coding processing device 2 of the present embodiment serially accumulates the quantized data d1 of the quantized frame for each quantized data d1 of one frame, thereby accumulating the quantized data d1 of a plurality of frames.
  • the amount of bit data determined by using the quantized data storage unit 109 to be accumulated and the quantized data d1 of at least one frame out of the quantized data d1 of a plurality of frames is received from the outside, and the frame immediately after the plurality of frames is received.
  • Parameter determination unit 110 that determines the quantization parameter QP when performing the quantization process of, and the quantization unit that generates the quantization data d1 of the frame immediately after the above by performing the quantization process based on the quantization parameter QP. 108 and.
  • the parameter determination unit 110 receives the amount of bit data determined using the quantization data d1 of at least one frame out of the quantization data d1 of the plurality of frames from the outside and determines the quantization parameter QP.
  • the quantization parameter QP can be determined based on the quantization data d1.
  • the quantization process can be speeded up.
  • rate control in the coding process is performed as compared with the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. Can be made highly accurate.
  • FIG. 8 is a block configuration diagram of the moving image coding device 1A according to the first modification.
  • the moving image coding device 1A includes a subtraction unit 104, a conversion unit 106, a quantization unit 108, a quantization data storage unit 109, a parameter determination unit 110, and a coding unit 130. , A coded data storage unit 136, and a rate control unit 138.
  • each function of the coding unit 130 and the coded data storage unit 136 shown in FIG. 8 is realized by the CPU 30.
  • each function of the subtraction unit 104, the conversion unit 106, the quantization unit 108, the quantization data storage unit 109, the parameter determination unit 110, and the rate control unit 138 is realized by the accelerator 20.
  • Information regarding the amount of data of the coded data d2 stored in the coded data storage unit 136 is output to the rate control unit 138 of the accelerator 20 via the communication interface 50.
  • the rate control unit 138 determines the amount of bit data when processing the next data based on the past data.
  • the rate control unit 138 acquires information on the amount of coded data d2 output from the coded data storage unit 136, and also receives the quantization data d1 output from the quantization data storage unit 109, and receives the past quantization data d1. Acquires information on the amount of data of the quantization data d1.
  • the rate control unit 138 determines the amount of bit data when the coding process is performed in the next frame based on the acquired information.
  • the quantization process and the code are obtained by determining the quantization parameter QP based on the quantization data d1 of at least one frame out of the quantization data d1 of a plurality of frames.
  • the conversion process can be speeded up.
  • the rate control is made more accurate than the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. can do.
  • the rate control unit is composed of the first rate control unit 138a and the second rate control unit 138b, the first rate control unit 138a is provided in the CPU 30, and the second rate control unit 138b is an accelerator.
  • An example provided in 20 will be described.
  • FIG. 9 is a block configuration diagram of the moving image coding device 1B according to the second modification.
  • the moving image coding device 1B includes a subtraction unit 104, a conversion unit 106, a quantization unit 108, a quantization data storage unit 109, a first rate control unit 138a, and a second.
  • the rate control unit 138b, the parameter determination unit 110, the coding unit 130, the coded data storage unit 136, and the rate control unit 138 are provided.
  • the functions of the coding unit 130, the coded data storage unit 136, and the first rate control unit 138a shown in FIG. 9 are realized by the CPU 30.
  • each function of the subtraction unit 104, the conversion unit 106, the quantization unit 108, the quantization data storage unit 109, the parameter determination unit 110, the second rate control unit 138b, and the like is realized by the accelerator 20.
  • Information regarding the amount of data of the coded data d2 stored in the coded data storage unit 136 is output to the first rate control unit 138a.
  • the first rate control unit 138a acquires information regarding the amount of data of the coded data d2 output from the coded data storage unit 136, and obtains the acquired information via the communication interface 50 in the second rate control unit 138b. Output to.
  • the second rate control unit 138b receives the quantization data d1 output from the quantization data storage unit 109, and acquires information on the amount of data of the past quantization data d1.
  • the rate control unit 138b determines the amount of bit data when the coding process is performed in the next frame based on the acquired information.
  • the quantization process and the code are obtained by determining the quantization parameter QP based on the quantization data d1 of at least one frame out of the quantization data d1 of a plurality of frames.
  • the conversion process can be speeded up.
  • the rate control is made more accurate than the case where the quantization parameter QP is determined based on, for example, a part of the data of the frame. can do.
  • the moving image coding method of the second embodiment will be described with reference to FIG.
  • the moving image coding method of the second embodiment describes an example in which both the quantization data d1 and the coding data d2 are used when determining the quantization parameter QP. Since the moving image coding device 1 that executes the moving image coding method of the second embodiment is the same as that of the first embodiment, the description thereof will be omitted.
  • FIG. 10 is a flowchart showing a moving image coding method according to the second embodiment.
  • the moving image coding method includes the processes of S11, S12A, S13, S14, and S15 shown below.
  • S11 Accumulating the quantization data d1 of a plurality of frames by serially accumulating the quantization data d1 of the quantized frame for each quantization data of one frame.
  • S12A Of the plurality of frames, the data amount of the coded data d2 of the coded frame is used for the frame for which the coding process has been completed, and the quantization data d1 for the frame for which the coding process has not been completed.
  • This moving image coding method is executed by the moving image coding device 1.
  • the processes S11 to S14 are described in chronological order focusing on a specific frame, but in the actual moving image coding method, the quantization process and the coding process are simultaneously performed by the accelerator 20 and the CPU 30. To.
  • the data amount of the coded data d2 of the coded frame is used for the frame for which the coding process is completed, and the quantum is used for the frame for which the coding process is not completed.
  • the quantization parameter QP is determined based on the amount of data d1. As a result, the rate control can be made more accurate than that of the first embodiment.
  • the parameter determination unit 110 is provided in the accelerator 20 in the moving image coding device 1 of the first embodiment, but the present invention is not limited to this, and the parameter determination unit 110 may be provided in the CPU 30. .. In that case, the quantization parameter QP determined by the parameter determination unit 110 of the CPU 30 is output to the quantization unit 108 of the accelerator 20 via the communication interface 50.
  • the coding process of the moving image coding device 1 is composed of a binarization process, an arithmetic coding process, and a stream shaping process is shown, but the coding process is not limited thereto.
  • the coding process may consist of at least one of a binarization process, an arithmetic coding process, and a stream forming process. Then, the coding process composed of at least one of the above processes may be executed in parallel between a plurality of frames.
  • the functions of the coding unit 130, the coded data storage unit 136, and the rate control unit 138 shown in FIG. 1 are realized by the CPU 30, and the subtraction unit 104,
  • Each function of the conversion unit 106, the quantization unit 108, the quantization data storage unit 109, the parameter determination unit 110, and the like has been shown as an example realized by the accelerator 20, but is not limited thereto.
  • the moving image coding device may be configured by the CPU and the accelerator shown in FIGS. 11A to 11C.
  • the moving image coding device 1 is composed of the CPU 30a and the CPU 30b.
  • the functions of the coding unit 130, the coded data storage unit 136, and the rate control unit 138 are realized by the CPU 30b, and the subtraction unit 104, the conversion unit 106, the quantization unit 108, the quantization data storage unit 109, and the parameter determination unit 110 are realized.
  • Each function such as is realized by the CPU 30a different from the CPU 30b.
  • the CPU 30a corresponds to the coding processing device.
  • the CPU 30a and the CPU 30b may be composed of one CPU.
  • the moving image coding device 1 is composed of an accelerator 20a and an accelerator 20b.
  • the functions of the coding unit 130, the coded data storage unit 136, and the rate control unit 138 are realized by the accelerator 20b, and the subtraction unit 104, the conversion unit 106, the quantization unit 108, the quantization data storage unit 109, and the parameter determination unit are realized.
  • Each function such as 110 is realized by an accelerator 20a different from the accelerator 20b.
  • the accelerator 20a corresponds to the coding processing device.
  • the accelerator 20a and the accelerator 20b may be configured by one accelerator.
  • the moving image coding device 1 is composed of a CPU 30a and an accelerator 20b.
  • the functions of the coding unit 130, the coded data storage unit 136, and the rate control unit 138 are realized by the accelerator 20b, and the subtraction unit 104, the conversion unit 106, the quantization unit 108, the quantization data storage unit 109, and the parameter determination unit are realized.
  • Each function such as 110 is realized by the CPU 30a.
  • the CPU 30a corresponds to the coding processing device.
  • a part of the components constituting the moving image coding device may be a computer system composed of a microprocessor, a ROM, a RAM, and the like.
  • a computer program is stored in the RAM.
  • the microprocessor achieves its function by operating according to the computer program.
  • a computer program is configured by combining a plurality of instruction codes indicating commands to a computer in order to achieve a predetermined function.
  • a part of the components constituting the moving image coding device may be composed of one system LSI (Large Scale Integration: large-scale integrated circuit).
  • a system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, is a computer system including a microprocessor, a ROM, a RAM, and the like. ..
  • a computer program is stored in the RAM. When the microprocessor operates according to the computer program, the system LSI achieves its function.
  • the present disclosure can be applied to a moving image coding device for encoding a moving image and a coding processing device.

Landscapes

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

Abstract

動画像符号化方法は、量子化処理されたフレームの量子化データ(d1)を1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データ(d1)を蓄積することと、複数のフレームの量子化データ(d1)のうち予め決められた数のフレームの量子化データ(d1)に基づいて、複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータ(QP)を決定することと、量子化パラメータ(QP)に基づいて量子化処理を行うことで上記の直後のフレームの量子化データ(d1)を生成することと、上記の直後のフレームを含む複数のフレームの量子化データ(d1)にエントロピー符号化を行う符号化処理を、上記の直後のフレームを含む複数のフレーム間でパラレルに実行することと、を含む。

Description

動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置
 本開示は、動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置に関する。
 ネットワークを介して動画像を配信するサービスが知られている。このようなサービスを拡大するために、動画像を構成するフレームの量子化処理および符号化処理を高速化すること、および、符号化処理を行う際のビットレートを制御するレート制御を高精度化することが求められている。
 特許文献1には、符号化処理された後のフレームのデータ量に基づいて次のフレームの量子化処理および符号化処理を行う技術が開示されている。また非特許文献1には、複数のフレームの符号化処理をパラレルに実行することで、符号化処理の高速化を図る技術が開示されている。
特開2007-166192号公報
谷田部祐介、外5名、「動画像リアルタイムエンコーダにおけるH.264 CABACの並列処理技術」、情報処理学会論文誌 コンシューマ・デバイス&システム Vol.5 No.5 1-8(Dec.2015)
 特許文献1に開示された技術では、符号化処理された後のフレームのデータ量に基づいて量子化処理および符号化処理を行っているが、フレーム内の全データのうちの一部のデータに基づいて符号化処理等を行っているので、レート制御の精度が低くなるという問題がある。非特許文献1には、符号化処理をパラレルに実行することが開示されているが、どのようにしてレート制御を高精度化するかについては開示されていない。
 本開示は、上記の事情を鑑みてなされたもので、量子化処理、符号化処理の高速化およびレート制御の高精度化を図ることができる動画像符号化方法等を提供することを目的とする。
 本開示の一形態における動画像符号化方法は、量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積することと、前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データに基づいて、前記複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータを決定することと、前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成することと、前記直後のフレームを含む複数のフレームの量子化データにエントロピー符号化を行う符号化処理を、前記直後のフレームを含む複数のフレーム間でパラレルに実行することと、を含む。
 本開示の一形態における符号化処理方法は、量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積することと、前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データに基づいて、前記複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータを決定することと、前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成することと、前記直後のフレームを含む複数のフレームの量子化データを外部のCPU(Central Processing Unit)へ出力することと、を含む。
 本開示の一形態における動画像符号化装置は、量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積する量子化データ蓄積部と、前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データに基づいて、前記複数のフレームの直後のフレームのビットデータ量を決定するレート制御部と、前記レート制御部で求めた前記ビットデータ量に基づいて、前記直後のフレームの量子化処理を行う際の量子化パラメータを決定するパラメータ決定部と、前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成する量子化部と、前記直後のフレームを含む複数のフレームの量子化データにエントロピー符号化を行う符号化処理を、前記直後のフレームを含む複数のフレーム間でパラレルに実行する符号化部と、を備える。
 本開示の一形態における符号化処理装置は、量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積する量子化データ蓄積部と、前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データを用いて決定されたビットデータ量を外部から受け取り、前記複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータを決定するパラメータ決定部と、前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成する量子化部と、を備える。
 なお、これらの包括的又は具体的な態様は、システム、装置、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 本開示の動画像符号化方法等によれば、量子化処理、符号化処理の高速化およびレート制御の高精度化を図ることができる。
図1は、実施の形態1に係る動画像符号化装置のブロック構成図である。 図2は、実施の形態1に係る動画像符号化装置を構成する回路部品を示す図である。 図3は、実施の形態1に係る動画像符号化装置の符号化部の構成を示す図である。 図4は、実施の形態1に係る動画像符号化装置の符号化部にて生成される符号化データを示す模式図である。 図5は、実施の形態1に係る動画像符号化方法を示すフローチャートである。 図6は、実施の形態1に係る動画像符号化方法にて実行される各フレームの量子化処理および符号化処理のタイミングを示す図である。 図7は、実施の形態1に係る符号化処理方法を示すフローチャートである。 図8は、実施の形態1の変形例1に係る動画像符号化装置のブロック構成図である。 図9は、実施の形態1の変形例2に係る動画像符号化装置のブロック構成図である。 図10は、実施の形態2に係る動画像符号化方法を示すフローチャートである。 図11は、動画像符号化装置におけるCPUおよびアクセラレータの構成例を示す図である。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本開示の一形態に係る実施形態を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。本開示の実施形態は、現行の独立請求項に限定されるものではなく、他の独立請求項によっても表現され得る。
 なお、各図は模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付しており、重複する説明は省略または簡略化される場合がある。
 (実施の形態1)
 [1-1.動画像符号化装置の構成]
 実施の形態1の動画像符号化装置の構成について、図1~図4を参照しながら説明する。
 図1は、実施の形態1に係る動画像符号化装置1のブロック構成図である。動画像符号化装置1は、動画像を構成する複数のフレームをフレーム単位で量子化および符号化する装置である。
 図1に示すように、動画像符号化装置1は、減算部104と、変換部106と、量子化部108と、量子化データ蓄積部109と、パラメータ決定部110と、符号化部130と、符号化データ蓄積部136と、レート制御部138と、を備える。また、動画像符号化装置1は、逆量子化部112と、逆変換部114と、加算部116と、ブロッキングフィルタ120と、フレームメモリ122と、動き検出・補償部124と、イントラ予測部126と、予測制御部128と、を備える。
 図2は、動画像符号化装置1を構成する回路部品の一例を示す図である。
 図2に示すように、動画像符号化装置1は、CPU(Central Processing Unit)30、および、アクセラレータ20によって構成されている。
 CPU30およびアクセラレータ20は、PCI(Peripheral Component Interconnect)規格に準拠した通信インターフェース50によって接続されている。
 アクセラレータ20は、CPU30の演算処理の高速化を支援する回路部品、すなわちFPGA(Field Programmable Gate Array)である。このアクセラレータ20は、符号化処理装置2に該当する。
 CPU30は、動画像符号化装置1の全体の動作を管理する回路部品である。CPU30にはメモリ40が内蔵され、メモリ40にはソフトウェアプログラムが格納されている。CPU30は、複数のプログラムに対応する複数のスレッドをパラレルに実行することができる。複数のスレッドをパラレルに実行するとは、複数のスレッドにおける処理を時間的にオーバラップさせながら独立して実行することである。例えば、CPU30で8スレッドの処理が実行可能である場合、CPU30は、動画像を構成する8フレームを8スレッドに1対1で対応させて、各スレッドを同じ時間帯または異なる時間帯に個別に実行することができる。
 このソフトウェアプログラムが実行されたとき、図1に示す符号化部130、符号化データ蓄積部136およびレート制御部138の各機能は、CPU30によって実現される。また、減算部104、変換部106、量子化部108、量子化データ蓄積部109、パラメータ決定部110、逆量子化部112、逆変換部114、加算部116、ブロッキングフィルタ120、動き検出・補償部124、イントラ予測部126および予測制御部128の各機能は、アクセラレータ20によって実現される。なお、符号化データ蓄積部136の機能は、CPU30と異なる回路部品によって実現されてもよい。
 まず、アクセラレータ20およびCPU30にて実現される各機能について、図1を参照しながら説明する。
 減算部104は、動画像符号化装置1に入力された原信号から予測信号を減算することで、動画像を構成する各フレームの予測誤差を算出する。減算部104にて算出された予測誤差は、変換部106に出力される。予測誤差および予測信号については後述する。
 変換部106は、空間領域の予測誤差を周波数領域のデータに変換する。具体的には、変換部106は、例えば空間領域の予測誤差に対して離散コサイン変換(DCT)を行う。変換部106にて変換された当該データは、量子化部108に出力される。
 量子化部108は、変換部106から出力されたデータを量子化処理することで量子化データd1を生成する。具体的には、量子化部108は、上記周波数領域のデータを後述する量子化パラメータQPに基づいて量子化する。量子化パラメータQPとは、量子化ステップを定義するパラメータである。例えば、量子化パラメータQPを変更して量子化ステップを大きくすると粗い量子化になり、データ量が小さくなる。量子化部108による量子化処理は、1つのフレームごとにシリアルに実行される。なお、フレーム内のデータに対する演算処理は、シリアルに実行されてもよいし、パラレルに実行されてもよい。量子化部108にて生成された量子化データd1は、量子化データ蓄積部109および逆量子化部112に出力される。
 量子化データ蓄積部109は、量子化部108にて量子化処理されたフレームの量子化データd1を蓄積する。具体的には、量子化データ蓄積部109は、量子化部108にて1つのフレームごとに生成された量子化データd1を、1つのフレームの量子化データd1ごとにシリアルに蓄積する。これにより、量子化データ蓄積部109には、複数のフレームの量子化データd1が蓄積される。量子化データ蓄積部109に蓄積された量子化データd1は、符号化部130およびレート制御部138に出力される。
 量子化データ蓄積部109に蓄積された1つのフレームの量子化データd1は、量子化処理が終了するごとに、符号化部130およびレート制御部138に出力される。言い換えると、アクセラレータ20にて量子化処理された1つのフレームの量子化データd1は、量子化処理が終了するごとに、通信インターフェース50を介してCPU30に出力される。
 なお、量子化データ蓄積部109から符号化部130に出力されるデータは、量子化データd1に限られず、量子化データd1に基づいて演算処理された演算データであってもよい。例えば、演算データは、量子化データd1に基づいて二値化されたデータ、または、量子化データd1に基づいて二値化された後、算術符号化されたデータであってもよい。
 符号化部130は、量子化データ蓄積部109から出力された量子化データd1をエントロピー符号化することで符号化データd2を生成する。符号化データd2は、エントロピー符号化によって圧縮成形されたビットストリームである。
 図3は、動画像符号化装置1の符号化部130の構成を示す図である。
 図3に示すように、符号化部130は、入力された量子化データd1を二値化する二値化部131と、二値化部131にて二値化されたデータを符号化する算術符号化部132と、ビットストリームを成形するストリーム成形部133とによって構成されている。
 図4は、符号化部130にて生成される符号化データd2を示す模式図である。
 符号化データd2は、ヘッダ情報、付加情報、フィラー(Filler)データおよび画像圧縮データを含む。ヘッダ情報は、フレーム、フレームグループまたはフレームの一部であるスライスに関する情報である。付加情報は、例えば表示方法などの情報であり、アプリケーションに必要な各種情報である。フィラーデータは、レート制御に必要なパディングデータである。画像圧縮データは、量子化データd1を符号化することで生成される画像データである。
 符号化部130による符号化処理は、1フレーム単位で処理され、動画像を構成する複数のフレーム間でパラレルに実行される。符号化部130にて生成された符号化データd2は、符号化データ蓄積部136に出力される。なお、符号化処理はその前段の処理が終わっていれば,各フレームで処理の依存関係がないので、個別にいつでも開始できる。
 なお、符号化部130にてパラレルに実行される符号化処理は、図3に示す二値化部131、算術符号化部132およびストリーム成形部133のうちの少なくとも1つによって実行される処理であればよい。例えば、アクセラレータ20からCPU30に出力されるデータが、量子化データd1に基づいて二値化されたデータである場合、符号化部130によって実行される符号化処理は、算術符号化部132およびストリーム成形部133によって実行される処理であってもよい。また、アクセラレータ20からCPU30に出力されるデータが、量子化データd1に基づいて二値化された後、算術符号化されたデータである場合、符号化部130によって実行される符号化処理は、ストリーム成形部133によって実行される処理であってもよい。
 符号化データ蓄積部136は、符号化部130にて生成された符号化データd2をバッファリングするFIFO(First In First Out)である。また、符号化データ蓄積部136は、符号化部130にて符号化処理を開始した順番と同じ順番に各フレームを並び変え、動画像符号化装置1の外部に出力する。また、符号化データ蓄積部136は、符号化データ蓄積部136に蓄積された符号化データd2のデータ量に関する情報をレート制御部138に出力する。
 レート制御部138は、過去のデータに基づいて次のデータを処理する際のビットデータ量を決める。レート制御部138は、符号化データ蓄積部136から出力された符号化データd2のデータ量に関する情報を取得し、また、量子化データ蓄積部109から出力された量子化データd1を受け付け、過去の量子化データd1のデータ量に関する情報を取得する。レート制御部138は、取得したこれらの情報に基づいて、次のフレームで符号化処理を行う際のビットデータ量を決める。CPU30のレート制御部138で決めたビットデータ量は、通信インターフェース50を介してアクセラレータ20のパラメータ決定部110に出力される。
 パラメータ決定部110は、レート制御部138から出力されたビットデータ量に基づいて、次の量子化処理を行う際の量子化パラメータQPを決定する。具体的には、パラメータ決定部110は、次の量子化処理および符号化処理によって生成される符号化データd2が、上記ビットデータ量に近い値に生成されるように量子化パラメータQPを決定する。この量子化パラメータQPの決定は、1フレームごとにシリアルに実行される。
 レート制御部138は、このビットデータ量を決定するときに、過去における複数のフレームのデータに基づいてビットデータ量を決定するが、本実施の形態では、符号化部130にて生成された符号化データd2の全てを用いるのでなく、少なくとも1つのフレームの量子化データd1を用いて、該当のフレームの符号化データd2を推定し、符号化データd2と推定された符号化データd2とを過去における複数のフレームのデータとしてビットデータ量を決定する。より具体的には、本実施の形態では、複数のフレームのうち予め決められた数のフレームの量子化データd1を用いて、ビットデータ量を決定する。なお、予め決められた数のフレームとは、例えば、CPU30の符号化部130にてパラレルに実行される符号化処理のスレッド数である(図6参照)。
 また、レート制御部138は、ビットデータ量を決定するときに、量子化データd1のデータ量を用いてビットデータ量を決定する。量子化データd1のデータ量を用いてとは、量子化後のデータのうち符号化対象となるデータを用いてという意味である。また、このビットデータ量は、量子化データd1のデータ量と符号化データd2のデータ量とのスケールを合わせるため、上記量子化データd1のデータ量に所定の係数を乗じた値に基づいて決定される。なお、所定の係数は、動画像の種類に応じて適宜設定される。
 パラメータ決定部110にて決定された量子化パラメータQPは、量子化部108に出力される。量子化部108は、パラメータ決定部110から受け取った量子化パラメータQPに基づいて、次のフレームの量子化処理を実行する。
 引き続き、アクセラレータ20にて実現される他の機能について簡単に説明する。
 逆量子化部112は、量子化部108から出力された量子化データd1を逆量子化する。
 逆変換部114は、逆量子化部112から出力されたデータを逆変換することにより予測誤差を復元する。
 加算部116は、逆変換部114から出力された予測誤差と予測制御部128から出力された予測信号とを加算することでフレームを再構成する。加算部116にて再構成されたフレームはブロッキングフィルタ120を介してフレームメモリ122に出力される。
 フレームメモリ122は、ブロッキングフィルタ120によってフィルタリングされた再構成フレームを格納する。この再構成フレームは、動き検出・補償部124およびイントラ予測部126の参照ピクチャとして用いられる。
 動き検出・補償部124は、フレームメモリ122に格納された参照ピクチャを参照してフレームのインター予測(画面間予測ともいう)を行う。例えば、動き検出・補償部124は、参照ピクチャ内で動き探索を行い、動き探索により得られた動きベクトルを用いて動き補償を行うことで、フレームのインター予測信号を生成する。動き検出・補償部124にて生成されたインター予測信号は、予測制御部128に出力される。
 イントラ予測部126は、フレームのイントラ予測(画面内予測ともいう)を行う。例えば、イントラ予測部126は、所定の方向に隣接するフレームのデータを参照してイントラ予測を行うことで、イントラ予測信号を生成する。イントラ予測部126にて生成されたイントラ予測信号は、予測制御部128に出力される。
 予測制御部128は、イントラ予測信号およびインター予測信号のいずれかを選択し、選択した信号を予測信号として減算部104および加算部116に出力する。なお、動き検出・補償部124で生成された動きベクトルおよびイントラ予測部126で生成されたイントラ予測の方向は、通信インターフェース50を介してCPUの符号化部130に出力されてもよい。
 本実施の形態の動画像符号化装置1は、量子化処理されたフレームの量子化データd1を1つのフレームの量子化データd1ごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積する量子化データ蓄積部109と、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いて、複数のフレームの直後のフレームのビットデータ量を決定するレート制御部138と、レート制御部138で求めたビットデータ量に基づいて、上記直後のフレームの量子化処理を行う際の量子化パラメータQPを決定するパラメータ決定部110と、量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成する量子化部108と、上記の直後のフレームを含む複数のフレームの量子化データd1にエントロピー符号化を行う符号化処理を、上記の直後のフレームを含む複数のフレーム間でパラレルに実行する符号化部130と、を備える。
 このように、レート制御部138にて、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いてビットデータ量を決定することで、例えば符号化部130による符号化処理が終わっていない場合であっても、当該量子化データd1を用いてビットデータ量を決定し、そのビットデータ量に基づいてパラメータ決定部110で量子化パラメータQPを決定することができる。これにより、量子化処理および符号化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、符号化処理におけるレート制御を高精度化することができる。
 本実施の形態の符号化処理装置2は、量子化処理されたフレームの量子化データd1を1つのフレームの量子化データd1ごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積する量子化データ蓄積部109と、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いて決定されたビットデータ量を外部から受け取り、複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータQPを決定するパラメータ決定部110と、量子化パラメータQPに基づいて量子化処理を行うことで上記の直後の量子化データd1を生成する量子化部108と、を備える。
 このように、パラメータ決定部110にて、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いて決定されたビットデータ量に基づいて量子化パラメータQPを決定することで、例えば符号化処理装置2の後段で実行される符号化処理が終わっていない場合であっても、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、符号化処理におけるレート制御を高精度化することができる。
 [1-2.動画像符号化方法]
 実施の形態1に係る動画像符号化方法について、図5および図6を参照しながら説明する。
 図5は、実施の形態1に係る動画像符号化方法を示すフローチャートである。動画像符号化方法は、以下に示すS11~S15の処理を含む。
(S11)量子化処理されたフレームの量子化データd1を1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積すること。
(S12)複数のフレームのうち予め決められた数のフレームの量子化データd1に基づいて、複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータQPを決定すること。
(S13)量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成すること。
(S14)上記の直後のフレームを含む複数のフレームの量子化データd1にエントロピー符号化を行う符号化処理を、上記の直後のフレームを含む複数のフレーム間でパラレルに実行すること。
(S15)符号化処理によって得られた処理結果を、符号化処理を開始した順番と同じ順番で出力すること。
 この動画像符号化方法は、動画像符号化装置1によって実行される。上記S11~S15の処理は、特定のフレームに着目して時系列で記載されているが、実際の動画像符号化方法では、量子化処理および符号化処理がアクセラレータ20およびCPU30にて同時進行される。
 図6は、実施の形態1に係る動画像符号化装置1の動作を示すタイミングチャートである。図6では、符号化部130にてパラレルに実行される符号化処理のスレッド数が8つ、すなわちCPU30で立ち上げるスレッド数が8つである例について説明する。
 図6には、フレームf11~f18までの量子化処理が終了し、次のフレームであるフレームf19の処理をこれから開始する場面が示されている。具体的には、図6には、符号化部130によるフレームf11~f18の符号化処理が8つのフレームの全てのフレームで異なる時刻に個別に開始され、異なる時刻に個別に終了する例が示されている。この例では複数のフレームの処理が、シリアル処理を含まず、全ての処理が個別に独立して実行されている。全てがこのように開始および終了の時刻が各フレームf11~f18で異なるのは、各フレームf11~f18のデータ量が異なるためである。
 アクセラレータ20による量子化処理は、CPU30から出力された量子化指示を受け付けることで開始される。この量子化指示は、これから量子化処理を行う対象のフレームf19の1つ前のフレームf18の量子化処理が開始された後に、CPU30から出力される。図6に示すように、次のフレームf19の量子化処理を開始する時点では、フレームf11、f13、f14の符号化処理は終了しているが、他のフレームf12、f15~f18の符号化処理は終了していない。
 そこで、本実施の形態では、量子化パラメータQPを決定するときに、符号化処理された符号化データd2を用いずに量子化パラメータQPを決定する。すなわち、各フレームf11~f18の符号化処理が終了しているか否かにかかわらず予め決められた数の量子化データd1に基づいて量子化パラメータQPを決定する。予め決められた数のフレームとは、符号化部130にてパラレルに実行される符号化処理のスレッド数である。図6に示す例では、複数のフレームf11~f18のうち全てのフレームの量子化データd1の合計値に基づいて量子化パラメータQPを決定している。
 なお、上記の量子化指示は、フレームf19の1つ前のフレームf18の量子化処理が開始された後に、CPU30から出力されているが、それに限られない。例えば、CPU30において、複数のスレッドが同時に実行され、複数のスレッドのそれぞれに1つのフレームの符号化処理が割り当てられている場合、上記量子化指示は、複数のスレッドのうちの所定のスレッドにおいて、上記1つのフレームの符号化処理が終了した後、すなわち処理を行っていない空きスレッドができたときに、CPU30から出力されてもよい。なおこの場合、上記1つのフレームの符号化処理が終了するとすぐに上記1つのフレームと異なるフレームの符号化処理が開始されるので、量子化指示は実質的に、上記1つのフレームの符号化処理が終了し、上記1つのフレームと異なるフレームの符号化処理が開始された後に、CPU30から出力される。
 次に、決定した量子化パラメータQPに基づいて量子化処理を行うことでフレームf19の量子化データd1を生成する。そして、フレームf19の量子化データd1にエントロピー符号化処理を行う。さらに後の複数のフレームであるフレームf20、f21・・についてもエントロピー符号化処理を同様に実行する。各フレームf19、f20、f21・・符号化処理はパラレルに実行される。
 本実施の形態の動画像符号化方法では、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えば複数のフレームの符号化処理が終わっていない場合であっても、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理および符号化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、符号化処理におけるレート制御を高精度化することができる。
 上記では動画像符号化方法について説明したが、以下では、符号化処理装置2において実行される符号化処理方法について説明する。
 図7は、実施の形態1に係る符号化処理方法を示すフローチャートである。符号化処理方法は、以下に示すS11、S12、S13およびS13Aの処理を含む。
(S11)量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積すること。
(S12)複数のフレームのうち予め決められた数のフレームの量子化データに基づいて、前記複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータQPを決定すること。
(S13)量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成すること。
(S13A)上記の直後のフレームを含む複数のフレームの量子化データd1を外部のCPU30へ出力すること。
 この符号化処理方法は、符号化処理装置2すなわちアクセラレータ20にて実行される。
 [1-3.効果等]
 本実施の形態の動画像符号化方法は、量子化処理されたフレームの量子化データd1を1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積することと、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1に基づいて、複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータQPを決定することと、量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成することと、上記の直後のフレームを含む複数のフレームの量子化データd1にエントロピー符号化を行う符号化処理を、上記の直後のフレームを含む複数のフレーム間でパラレルに実行することと、を含む。
 このように、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えば複数のフレームの符号化処理が終わっていない場合であっても、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理および符号化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、符号化処理におけるレート制御を高精度化することができる。
 また、符号化処理は、上記の直後のフレームを含む複数のフレームに対して異なる時刻に個別に開始されてもよい。
 このように、符号化処理を異なる時刻に個別に開始することで、各フレームの量子化処理の終了に応じて各フレームの符号化処理をタイミングよく開始することができる。これにより、符号化処理を高速化することができる。
 また、動画像符号化方法は、さらに、符号化処理によって得られた処理結果を、符号化処理を開始した順番と同じ順番で出力すること、を含んでいてもよい。
 これによれば、複数のフレーム間でパラレルに実行された符号化処理の処理結果を正しく並べ変えることができる。
 また、量子化パラメータQPを決定するときに、少なくとも1つのフレームの量子化データのデータ量に基づいて、量子化パラメータQPを決定してもよい。
 このように、量子化データd1のデータ量に基づいて量子化パラメータQPを決定することで、量子化パラメータQPを適切に決定することができる。これにより、符号化処理におけるレート制御を高精度化することができる。
 また、量子化パラメータQPは、上記データ量に所定の係数を乗じた値に基づいて決定されてもよい。
 このように、量子化パラメータQPを上記データ量に所定の係数を乗じた値に基づいて決定することで、量子化パラメータQPを適切に決定することができる。これにより、符号化処理におけるレート制御を高精度化することができる。
 また、量子化パラメータQPを決定するときに、複数のフレームのうち予め決められた数のフレームの量子化データに基づいて、量子化パラメータQPを決定してもよい。
 これによれば、複数のフレームの符号化処理が終わっているか否かにかかわらず、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理を高速化することができる。
 また、符号化処理は、CPU30にて実行され、量子化処理は、通信インターフェース50を介して前記CPUに接続されたアクセラレータ20にて実行され、さらに、アクセラレータ20にて量子化処理された1つのフレームの量子化データd1または量子化データd1に基づく演算データを、通信インターフェース50を介してCPU30に出力すること、を含んでいてもよい。
 これによれば、量子化処理を高速処理可能なアクセラレータ20にて実行し、符号化処理を汎用性の高いCPU30にて実行することができる。これにより、量子化処理および符号化処理を高速化することができる。
 また、1つのフレームの量子化データまたは上記演算データは、アクセラレータ20の量子化処理が終了するごとに、アクセラレータ20からCPU30に出力されてもよい。
 これによれば、量子化処理が終了するごとに符号化処理を実行することができ、量子化処理および符号化処理を高速化することができる。
 本実施の形態の符号化処理方法は、量子化処理されたフレームの量子化データd1を1つのフレームの量子化データd1ごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積することと、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1に基づいて、複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータQPを決定することと、量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成することと、上記の直後のフレームを含む複数のフレームの量子化データd1を外部のCPUへ出力することと、を含む。
 このように、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えば複数のフレームの符号化処理が終わっていない場合であっても、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、符号化処理におけるレート制御を高精度化することができる。
 また、量子化パラメータQPを決定するときに、複数のフレームのうち予め決められた数のフレームの量子化データに基づいて、量子化パラメータQPを決定してもよい。
 これによれば、複数のフレームの符号化処理が終わっているか否かにかかわらず、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理を高速化することができる。
 また、量子化処理は、CPU30から出力された量子化指示を受け付けることで開始されてもよい。
 これによれば、量子化処理を確実に開始することができ、量子化処理を高速化することができる。
 また、上記量子化指示は、量子化処理を行う対象のフレームの1つ前のフレームの量子化処理が開始された後に、CPU30から出力されてもよい。
 これによれば、量子化処理を適切なタイミングで開始することができ、量子化処理を高速化することができる。
 また、CPU30において、複数のスレッドが同時に実行され、複数のスレッドのそれぞれに1つのフレームの符号化処理が割り当てられている場合に、上記量子化指示は、複数のスレッドのうちの所定のスレッドにおいて、上記1つのフレームの符号化処理が終了し、上記1つのフレームと異なるフレームの符号化処理が開始された後に、CPU30から出力されてもよい。
 これによれば、量子化処理を適切なタイミングで開始することができ、量子化処理を高速化することができる。
 本実施の形態の動画像符号化装置1は、量子化処理されたフレームの量子化データd1を1つのフレームの量子化データd1ごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積する量子化データ蓄積部109と、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いて、複数のフレームの直後のフレームのビットデータ量を決定するレート制御部138と、レート制御部138で求めたビットデータ量に基づいて、上記直後のフレームの量子化処理を行う際の量子化パラメータQPを決定するパラメータ決定部110と、量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成する量子化部108と、上記の直後のフレームを含む複数のフレームの量子化データd1にエントロピー符号化を行う符号化処理を、上記の直後のフレームを含む複数のフレーム間でパラレルに実行する符号化部130と、を備える。
 このように、レート制御部138にて、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いてビットデータ量を決定し、そのビットデータ量に基づいてパラメータ決定部110で量子化パラメータQPを決定することで、例えば符号化部130による符号化処理が終わっていない場合であっても、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理および符号化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、符号化処理におけるレート制御を高精度化することができる。
 本実施の形態の符号化処理装置2は、量子化処理されたフレームの量子化データd1を1つのフレームの量子化データd1ごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積する量子化データ蓄積部109と、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いて決定されたビットデータ量を外部から受け取り、複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータQPを決定するパラメータ決定部110と、量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成する量子化部108と、を備える。
 このように、パラメータ決定部110にて、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1を用いて決定されたビットデータ量を外部から受け取って量子化パラメータQPを決定することで、例えば複数のフレームの符号化処理が終わっていない場合であっても、当該量子化データd1に基づいて量子化パラメータQPを決定することができる。これにより、量子化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、符号化処理におけるレート制御を高精度化することができる。
 [1-4.実施の形態1の変形例1]
 次に、実施の形態1の変形例1に係る動画像符号化装置1Aについて説明する。変形例1では、レート制御部138がCPU30でなくアクセラレータ20に設けられている例について説明する。
 図8は、変形例1に係る動画像符号化装置1Aのブロック構成図である。
 図8に示すように、動画像符号化装置1Aは、減算部104と、変換部106と、量子化部108と、量子化データ蓄積部109と、パラメータ決定部110と、符号化部130と、符号化データ蓄積部136と、レート制御部138と、を備える。メモリ40に格納されたソフトウェアプログラムが実行されたとき、図8に示す符号化部130および符号化データ蓄積部136の各機能は、CPU30によって実現される。また、減算部104、変換部106、量子化部108、量子化データ蓄積部109、パラメータ決定部110およびレート制御部138の各機能は、アクセラレータ20によって実現される。
 符号化データ蓄積部136に蓄積された符号化データd2のデータ量に関する情報は、通信インターフェース50を介してアクセラレータ20のレート制御部138に出力される。
 レート制御部138は、過去のデータに基づいて次のデータを処理する際のビットデータ量を決める。レート制御部138は、符号化データ蓄積部136から出力された符号化データd2のデータ量に関する情報を取得し、また、量子化データ蓄積部109から出力された量子化データd1を受け付け、過去の量子化データd1のデータ量に関する情報を取得する。レート制御部138は、取得したこれらの情報に基づいて、次のフレームで符号化処理を行う際のビットデータ量を決める。
 変形例1の動画像符号化装置1Aにおいても、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、量子化処理および符号化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、レート制御を高精度化することができる。
 [1-5.実施の形態1の変形例2]
 次に、実施の形態1の変形例2に係る動画像符号化装置1Bについて説明する。変形例1では、レート制御部が第1のレート制御部138aおよび第2のレート制御部138bによって構成され、第1のレート制御部138aがCPU30に設けられ、第2のレート制御部138bがアクセラレータ20に設けられている例について説明する。
 図9は、変形例2に係る動画像符号化装置1Bのブロック構成図である。
 図9に示すように、動画像符号化装置1Bは、減算部104と、変換部106と、量子化部108と、量子化データ蓄積部109と、第1のレート制御部138aと、第2のレート制御部138bと、パラメータ決定部110と、符号化部130と、符号化データ蓄積部136と、レート制御部138と、を備える。メモリ40に格納されたソフトウェアプログラムが実行されたとき、図9に示す符号化部130、符号化データ蓄積部136および第1のレート制御部138aの各機能は、CPU30によって実現される。また、減算部104、変換部106、量子化部108、量子化データ蓄積部109、パラメータ決定部110および第2のレート制御部138b等の各機能は、アクセラレータ20によって実現される。
 符号化データ蓄積部136に蓄積された符号化データd2のデータ量に関する情報は、第1のレート制御部138aに出力される。第1のレート制御部138aは、符号化データ蓄積部136から出力された符号化データd2のデータ量に関する情報を取得し、取得した情報を、通信インターフェース50を介して第2のレート制御部138bに出力する。第2のレート制御部138bは、量子化データ蓄積部109から出力された量子化データd1を受け付け、過去の量子化データd1のデータ量に関する情報を取得する。レート制御部138bは、取得したこれらの情報に基づいて、次のフレームで符号化処理を行う際のビットデータ量を決める。
 変形例2の動画像符号化装置1Bにおいても、複数のフレームの量子化データd1のうち少なくとも1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、量子化処理および符号化処理を高速化することができる。また、1つのフレームの量子化データd1に基づいて量子化パラメータQPを決定することで、例えばフレームの一部のデータに基づいて量子化パラメータQPを決定する場合に比べ、レート制御を高精度化することができる。
 (実施の形態2)
 実施の形態2の動画像符号化方法について、図10を参照しながら説明する。実施の形態2の動画像符号化方法は、量子化パラメータQPを決定するときに、量子化データd1および符号化データd2の両方のデータを用いる例について説明する。なお、実施の形態2の動画符号化方法を実行する動画像符号化装置1は、実施の形態1と同じであるので、説明を省略する。
 図10は、実施の形態2に係る動画像符号化方法を示すフローチャートである。動画像符号化方法は、以下に示すS11、S12A、S13、S14、S15の処理を含む。
(S11)量子化処理されたフレームの量子化データd1を1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データd1を蓄積すること。
(S12A)複数のフレームのうち、符号化処理が終了したフレームについては符号化処理されたフレームの符号化データd2のデータ量を用い、符号化処理が終了していないフレームについては量子化データd1のデータ量に基づいて、複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータQPを決定すること。
(S13)量子化パラメータQPに基づいて量子化処理を行うことで上記直後のフレームの量子化データd1を生成すること。
(S14)上記の直後のフレームを含む複数のフレームの量子化データd1にエントロピー符号化を行う符号化処理を、上記の直後のフレームを含む複数のフレーム間でパラレルに実行すること。
(S15)符号化処理によって得られた処理結果を、符号化処理を開始した順番と同じ順番で出力すること。
 この動画像符号化方法は、動画像符号化装置1によって実行される。上記S11~S14の処理は、特定のフレームに着目して時系列で記載されているが、実際の動画像符号化方法では、量子化処理および符号化処理がアクセラレータ20およびCPU30にて同時進行される。
 実施の形態2の動画像符号化方法では、符号化処理が終了したフレームについては符号化処理されたフレームの符号化データd2のデータ量を用い、符号化処理が終了していないフレームについては量子化データd1のデータ量に基づいて量子化パラメータQPを決定する。これにより、実施の形態1に比べてレート制御を高精度化することができる。
 (その他の実施の形態)
 以上、本開示の態様に係る動画像符号化装置等について、実施の形態等に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。例えば、本明細書において記載した構成要素を任意に組み合わせて、また、構成要素のいくつかを除外して実現される別の実施の形態を本開示の実施の形態としてもよい。また、上記実施の形態に対して本開示の主旨、すなわち、請求の範囲に記載される文言が示す意味を逸脱しない範囲で当業者が思いつく各種変形を施して得られる変形例も本開示に含まれる。
 実施の形態1の動画像符号化装置1では、パラメータ決定部110がアクセラレータ20内に設けられている例を示したが、それに限られず、パラメータ決定部110は、CPU30に設けられていてもよい。その場合、CPU30のパラメータ決定部110で決定した量子化パラメータQPは、通信インターフェース50を介してアクセラレータ20の量子化部108に出力される。
 動画像符号化装置1の符号化処理は、二値化処理、算術符号化処理およびストリーム成形処理によって構成される例を示したが、それに限られない。例えば、符号化処理は、二値化処理、算術符号化処理およびストリーム成形処理の少なくとも1つの処理で構成されてもよい。そして、上記少なくとも1つの処理で構成される符号化処理が複数のフレーム間でパラレルに実行されてもよい。
 動画像符号化装置1では、ソフトウェアプログラムが実行されたとき、図1に示す符号化部130、符号化データ蓄積部136およびレート制御部138の各機能は、CPU30によって実現され、減算部104、変換部106、量子化部108、量子化データ蓄積部109、パラメータ決定部110等の各機能は、アクセラレータ20によって実現される例を示したが、それに限られない。
 例えば、図11の(a)~(c)に示すCPUおよびアクセラレータによって動画像符号化装置が構成されていてもよい。
 図11の(a)では、動画像符号化装置1が、CPU30aおよびCPU30bによって構成されている。符号化部130、符号化データ蓄積部136およびレート制御部138の各機能は、CPU30bによって実現され、減算部104、変換部106、量子化部108、量子化データ蓄積部109、パラメータ決定部110等の各機能は、CPU30bとは異なるCPU30aによって実現される。この場合、CPU30aが符号化処理装置に該当する。CPU30aおよびCPU30bは1つのCPUによって構成されてもよい。
 図11の(b)では、動画像符号化装置1が、アクセラレータ20aおよびアクセラレータ20bによって構成されている。符号化部130、符号化データ蓄積部136およびレート制御部138の各機能は、アクセラレータ20bによって実現され、減算部104、変換部106、量子化部108、量子化データ蓄積部109、パラメータ決定部110等の各機能は、アクセラレータ20bとは異なるアクセラレータ20aによって実現される。この場合、アクセラレータ20aが符号化処理装置に該当する。アクセラレータ20aおよびアクセラレータ20bは1つのアクセラレータによって構成されてもよい。
 図11の(c)では、動画像符号化装置1が、CPU30aおよびアクセラレータ20bによって構成されている。符号化部130、符号化データ蓄積部136およびレート制御部138の各機能は、アクセラレータ20bによって実現され、減算部104、変換部106、量子化部108、量子化データ蓄積部109、パラメータ決定部110等の各機能は、CPU30aによって実現される。この場合、CPU30aが符号化処理装置に該当する。
 また、以下に示す形態も、本開示の一つまたは複数の態様の範囲内に含まれてもよい。
 (1)上記の動画像符号化装置を構成する構成要素の一部は、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムであってもよい。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (2)上記の動画像符号化装置を構成する構成要素の一部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 本開示は、動画像を符号化する動画像符号化装置、及び、符号化処理装置に適用することができる。
 1、1A、1B 動画像符号化装置
 2   符号化処理装置
 20、20a、20b アクセラレータ
 30、30a、30b CPU
 40  メモリ
 50  通信インターフェース
 104 減算部
 106 変換部
 108 量子化部
 109 量子化データ蓄積部
 110 パラメータ決定部
 112 逆量子化部
 114 逆変換部
 116 加算部
 120 ブロッキングフィルタ
 122 フレームメモリ
 124 動き検出・補償部
 126 イントラ予測部
 128 予測制御部
 130 符号化部
 131 二値化部
 132 算術符号化部
 133 ストリーム成形部
 136 符号化データ蓄積部
 138、138a、138b レート制御部
 d1  量子化データ
 d2  符号化データ
 f11~f19 フレーム
 QP  量子化パラメータ

Claims (16)

  1.  動画像の符号化を行う方法であって、
     量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積することと、
     前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データに基づいて、前記複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータを決定することと、
     前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成することと、
     前記直後のフレームを含む複数のフレームの量子化データにエントロピー符号化を行う符号化処理を、前記直後のフレームを含む複数のフレーム間でパラレルに実行することと、
     を含む動画像符号化方法。
  2.  前記符号化処理は、前記直後のフレームを含む複数のフレームに対して異なる時刻に個別に開始される
     請求項1に記載の動画像符号化方法。
  3.  さらに、
     前記符号化処理によって得られた処理結果を、前記符号化処理を開始した順番と同じ順番で出力すること、
     を含む請求項1または2に記載の動画像符号化方法。
  4.  前記量子化パラメータを決定するときに、前記少なくとも1つのフレームの量子化データのデータ量に基づいて、前記量子化パラメータを決定する
     請求項1~3のいずれか1項に記載の動画像符号化方法。
  5.  前記量子化パラメータは、前記データ量に所定の係数を乗じた値に基づいて決定される
     請求項4に記載の動画像符号化方法。
  6.  前記量子化パラメータを決定するときに、前記複数のフレームのうち予め決められた数のフレームの量子化データに基づいて、前記量子化パラメータを決定する
     請求項1~5のいずれか1項に記載の動画像符号化方法。
  7.  前記量子化パラメータを決定するときに、前記複数のフレームのうち、前記符号化処理が終了したフレームについては前記符号化処理されたフレームの符号化データのデータ量に基づき、前記符号化処理が終了していないフレームについては前記量子化データのデータ量に基づいて前記量子化パラメータを決定する
     請求項4または5に記載の動画像符号化方法。
  8.  前記符号化処理は、CPU(Central Processing Unit)にて実行され、
     前記量子化処理は、通信インターフェースを介して前記CPUに接続されたアクセラレータにて実行され、
     さらに、
     前記アクセラレータにて前記量子化処理された前記1つのフレームの量子化データまたは前記量子化データに基づく演算データを、前記通信インターフェースを介して前記CPUに出力すること、
     を含む請求項1~7のいずれか1項に記載の動画像符号化方法。
  9.  前記1つのフレームの量子化データまたは前記演算データは、前記アクセラレータの前記量子化処理が終了するごとに、前記アクセラレータから前記CPUに出力される
     請求項8に記載の動画像符号化方法。
  10.  符号化を行う方法であって、
     量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積することと、
     前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データに基づいて、前記複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータを決定することと、
     前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成することと、
     前記直後のフレームを含む複数のフレームの量子化データを外部のCPU(Central Processing Unit)へ出力することと、
     を含む符号化処理方法。
  11.  前記量子化パラメータを決定するときに、前記複数のフレームのうち予め決められた数のフレームの量子化データに基づいて、前記量子化パラメータを決定する
     請求項10に記載の符号化処理方法。
  12.  前記量子化処理は、前記CPUから出力された量子化指示を受け付けることで開始される
     請求項10または11に記載の符号化処理方法。
  13.  前記量子化指示は、量子化処理を行う対象のフレームの1つ前のフレームの量子化処理が開始された後に、前記CPUから出力される
     請求項12に記載の符号化処理方法。
  14.  前記CPUにおいて、複数のスレッドが同時に実行され、前記複数のスレッドのそれぞれに前記1つのフレームの符号化処理が割り当てられている場合に、
     前記量子化指示は、前記複数のスレッドのうちの所定のスレッドにおいて、前記1つのフレームの符号化処理が終了し、前記1つのフレームと異なるフレームの符号化処理が開始された後に、前記CPUから出力される
     請求項12に記載の符号化処理方法。
  15.  量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積する量子化データ蓄積部と、
     前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データに基づいて、前記複数のフレームの直後のフレームのビットデータ量を決定するレート制御部と、
     前記レート制御部で求めた前記ビットデータ量に基づいて、前記直後のフレームの量子化処理を行う際の量子化パラメータを決定するパラメータ決定部と、
     前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成する量子化部と、
     前記直後のフレームを含む複数のフレームの量子化データにエントロピー符号化を行う符号化処理を、前記直後のフレームを含む複数のフレーム間でパラレルに実行する符号化部と、
     を備える動画像符号化装置。
  16.  量子化処理されたフレームの量子化データを1つのフレームの量子化データごとにシリアルに蓄積することで、複数のフレームの量子化データを蓄積する量子化データ蓄積部と、
     前記複数のフレームの量子化データのうち少なくとも1つのフレームの量子化データを用いて決定されたビットデータ量を外部から受け取り、前記複数のフレームの直後のフレームの量子化処理を行う際の量子化パラメータを決定するパラメータ決定部と、
     前記量子化パラメータに基づいて量子化処理を行うことで前記直後のフレームの量子化データを生成する量子化部と、
     を備える符号化処理装置。
PCT/JP2019/042759 2019-10-31 2019-10-31 動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置 WO2021084679A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021553979A JPWO2021084679A1 (ja) 2019-10-31 2019-10-31
PCT/JP2019/042759 WO2021084679A1 (ja) 2019-10-31 2019-10-31 動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置
CN201980100551.6A CN114424549B (zh) 2019-10-31 2019-10-31 运动图像编码方法、编码处理方法、运动图像编码装置及编码处理装置
US17/729,818 US20220256155A1 (en) 2019-10-31 2022-04-26 Video encoding method, encoding processing method, and video encoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/042759 WO2021084679A1 (ja) 2019-10-31 2019-10-31 動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/729,818 Continuation US20220256155A1 (en) 2019-10-31 2022-04-26 Video encoding method, encoding processing method, and video encoding apparatus

Publications (1)

Publication Number Publication Date
WO2021084679A1 true WO2021084679A1 (ja) 2021-05-06

Family

ID=75714975

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/042759 WO2021084679A1 (ja) 2019-10-31 2019-10-31 動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置

Country Status (4)

Country Link
US (1) US20220256155A1 (ja)
JP (1) JPWO2021084679A1 (ja)
CN (1) CN114424549B (ja)
WO (1) WO2021084679A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159441A (ja) * 2003-11-20 2005-06-16 Seiko Epson Corp 画像データ圧縮装置及びエンコーダ
JP2005323166A (ja) * 2004-05-10 2005-11-17 Seiko Epson Corp 画像データ圧縮装置、エンコーダ、電子機器及び画像データ圧縮方法
US20160173875A1 (en) * 2014-12-11 2016-06-16 Intel Corporation Rate control for parallel video encoding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0514876A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 動画像符号化方式
US7356079B2 (en) * 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7936814B2 (en) * 2002-03-28 2011-05-03 International Business Machines Corporation Cascaded output for an encoder system using multiple encoders
CN101502122B (zh) * 2006-11-28 2011-06-01 松下电器产业株式会社 编码装置及编码方法
JP2010081498A (ja) * 2008-09-29 2010-04-08 Hitachi Kokusai Electric Inc 画像圧縮符号化方法、及び装置
CN105516722B (zh) * 2010-09-30 2018-12-07 三菱电机株式会社 运动图像编码装置及方法、运动图像解码装置及方法
JP5875236B2 (ja) * 2011-03-09 2016-03-02 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2013150215A (ja) * 2012-01-20 2013-08-01 Fujitsu Ltd 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
JP2014007469A (ja) * 2012-06-21 2014-01-16 Canon Inc 画像符号化装置及び画像符号化方法
JP6376719B2 (ja) * 2012-06-29 2018-08-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6023596B2 (ja) * 2013-01-24 2016-11-09 株式会社日立情報通信エンジニアリング 画像符号化装置
WO2016194380A1 (ja) * 2015-06-03 2016-12-08 日本電気株式会社 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
JP6065090B2 (ja) * 2015-11-09 2017-01-25 富士通株式会社 動画像復号装置、動画像復号方法、動画像復号プログラム
JP6470191B2 (ja) * 2016-01-06 2019-02-13 日本電信電話株式会社 映像符号化方法、映像符号化装置及び映像符号化プログラム
JP6806466B2 (ja) * 2016-06-01 2021-01-06 キヤノン株式会社 画像符号化装置及びその制御方法
WO2018079444A1 (ja) * 2016-10-24 2018-05-03 日本電気株式会社 符号化装置、符号化方法およびプログラム記録媒体
JP6660868B2 (ja) * 2016-11-15 2020-03-11 Kddi株式会社 動画像符号化装置及び動画像復号装置並びにプログラム
US10638127B2 (en) * 2017-05-15 2020-04-28 Qualcomm Incorporated Adaptive anchor frame and quantization parameter decision in video coding
KR20190056888A (ko) * 2017-11-17 2019-05-27 삼성전자주식회사 비디오 부호화 장치 및 방법
JP6966936B2 (ja) * 2017-12-22 2021-11-17 キヤノン株式会社 画像符号化装置及びその制御方法及びプログラム
KR102543449B1 (ko) * 2018-01-26 2023-06-14 삼성전자주식회사 이미지 처리 장치 및 이미지 처리 장치의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159441A (ja) * 2003-11-20 2005-06-16 Seiko Epson Corp 画像データ圧縮装置及びエンコーダ
JP2005323166A (ja) * 2004-05-10 2005-11-17 Seiko Epson Corp 画像データ圧縮装置、エンコーダ、電子機器及び画像データ圧縮方法
US20160173875A1 (en) * 2014-12-11 2016-06-16 Intel Corporation Rate control for parallel video encoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YATABE, YUSUKE ET AL: "A parallelization technology of H.264 CABAC for real time encoder of moving picture", IPSJ TRANSACTIONS ON CONSUMER DEVICES & SYSTEMS, vol. 5, no. 5, December 2015 (2015-12-01), pages 1 - 8 *

Also Published As

Publication number Publication date
CN114424549B (zh) 2024-06-11
JPWO2021084679A1 (ja) 2021-05-06
CN114424549A (zh) 2022-04-29
US20220256155A1 (en) 2022-08-11

Similar Documents

Publication Publication Date Title
JP5777080B2 (ja) 合成ビデオのためのロスレス・コード化および関連するシグナリング方法
JP3109854B2 (ja) 画像符号化方法及び装置
US7848579B2 (en) Image coding device, method and computer program with data coding amount prediction
US7561736B2 (en) Image processing apparatus and method of the same
JP5545783B2 (ja) 画像シーケンスを表す符号化されたデータのストリームを復号する方法および画像シーケンスを符号化する方法
US9047669B1 (en) Bit rate control for data compression
KR20210091807A (ko) 비디오 코딩을 위한 방법 및 장치
JP2010178319A (ja) 画像符号化装置及び画像符号化方法
JP2022043053A (ja) 画像復号装置、画像復号方法及びプログラム
US20240089448A1 (en) Image encoding apparatus, image decoding apparatus, control methods thereof, and non-transitory computer-readable storage medium
JP6708211B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
WO2021084679A1 (ja) 動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置
WO2020255771A1 (ja) 画像処理装置および方法
US11350134B2 (en) Encoding apparatus, image interpolating apparatus and encoding program
JP2017028372A (ja) 符号化方式変換装置、方法及びプログラム
JP2014179709A (ja) 画像処理装置、方法及びプログラム
JP7451131B2 (ja) 画像符号化装置、画像符号化方法、及びプログラム
US10034011B2 (en) Video coding apparatus
US9832488B2 (en) Video stream generator
JPH0946709A (ja) 画像符号化装置
KR20170114427A (ko) 동영상 병렬 부호화를 위한 로드 밸런싱 방법
JP2005269484A (ja) 動画像符号化装置,動画像符号化方法,動画像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2012173449A2 (ko) 비디오 인코딩 및 디코딩 방법과 이를 이용한 장치
JP2001197492A (ja) 符号化装置
JP2016146602A (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: 19950351

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021553979

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19950351

Country of ref document: EP

Kind code of ref document: A1