WO2013190796A1 - 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置 - Google Patents

画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置 Download PDF

Info

Publication number
WO2013190796A1
WO2013190796A1 PCT/JP2013/003607 JP2013003607W WO2013190796A1 WO 2013190796 A1 WO2013190796 A1 WO 2013190796A1 JP 2013003607 W JP2013003607 W JP 2013003607W WO 2013190796 A1 WO2013190796 A1 WO 2013190796A1
Authority
WO
WIPO (PCT)
Prior art keywords
flag
coefficient
decoding
encoding
unit
Prior art date
Application number
PCT/JP2013/003607
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
Priority to SG11201408361TA priority Critical patent/SG11201408361TA/en
Priority to JP2014513833A priority patent/JP5603525B2/ja
Priority to CA2875196A priority patent/CA2875196C/en
Priority to BR112014031146-3A priority patent/BR112014031146B1/pt
Priority to KR1020207002807A priority patent/KR102163398B1/ko
Priority to AU2013278760A priority patent/AU2013278760B2/en
Priority to EP13807769.8A priority patent/EP2866444B1/en
Priority to KR1020147034952A priority patent/KR102073399B1/ko
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to MX2014014880A priority patent/MX339710B/es
Priority to RU2014150558A priority patent/RU2635895C2/ru
Priority to CN201380031036.XA priority patent/CN104350747B/zh
Publication of WO2013190796A1 publication Critical patent/WO2013190796A1/ja
Priority to AU2017200514A priority patent/AU2017200514B2/en
Priority to AU2018282369A priority patent/AU2018282369B2/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/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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/18Methods 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 a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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

Definitions

  • the present invention relates to an image encoding method and an image decoding method.
  • H.264 As an image coding standard, H.264 is used. H.264 / AVC (MPEG-4 AVC) is available, but the HEVC (High Efficiency Video Coding) standard is being studied as a next-generation standard (for example, see Non-Patent Document 1).
  • JCT-VC Join Collaborative Team on Video Coding
  • HEVC High efficiency video coding
  • An object of the present invention is to provide an image encoding method and an image decoding method capable of reducing the processing amount while suppressing deterioration in encoding efficiency.
  • an image coding method is an image coding method using arithmetic coding, in which an absolute value of a coefficient to be processed included in a coefficient block to be processed is A first flag encoding step of arithmetically encoding a first flag indicating whether or not the first flag is greater than 1, and a second flag indicating whether or not the absolute value of the coefficient to be processed is greater than 2 Whether or not there is a coefficient whose absolute value exceeds the threshold in the coefficient block immediately before the coefficient block to be processed in the first flag encoding step and the second flag encoding step.
  • the context used for arithmetic coding of the first flag and the second flag is switched according to the determination result.
  • the present invention can provide an image encoding method and an image decoding method capable of reducing the processing amount while suppressing deterioration in encoding efficiency.
  • FIG. 1 is a block diagram of an image coding apparatus according to Embodiment 1.
  • FIG. 2 is a flowchart of the image encoding process according to the first embodiment.
  • FIG. 3 is a block diagram of the variable length coding unit according to Embodiment 1.
  • FIG. 4 is a flowchart of variable-length encoding processing according to Embodiment 1.
  • FIG. 5 is a block diagram of the level encoding unit according to the first embodiment.
  • FIG. 6 is a flowchart of the level encoding process according to the first embodiment.
  • FIG. 7 is a flowchart of the greeter1_flag encoding process according to the first embodiment.
  • FIG. 8 is a flowchart of the greeter2_flag encoding process according to the first embodiment.
  • FIG. 9 is a flowchart of the retaining encoding process according to the first embodiment.
  • FIG. 10 is a flowchart of context set selection processing according to the first embodiment.
  • FIG. 11 is a flowchart of the greeter1_flag context selection process according to the first embodiment.
  • FIG. 12 is a diagram illustrating an example of context numbers according to the first embodiment.
  • FIG. 13 is a flowchart of the retaining binarization process according to the first embodiment.
  • FIG. 14 is a flowchart of the Prefix / Suffix determination process according to the first embodiment.
  • FIG. 15A is a diagram illustrating an example of a correspondence relationship between remaining, Prefix, and Suffix bin according to Embodiment 1.
  • FIG. 15A is a diagram illustrating an example of a correspondence relationship between remaining, Prefix, and Suffix bin according to Embodiment 1.
  • FIG. 15A is a diagram illustrating an example of a correspondence relationship between remaining, Prefix, and Suffix bin according to
  • FIG. 15B is a diagram illustrating an example of a correspondence relationship between remaining, Prefix, and Suffix bin according to the first embodiment.
  • FIG. 15C is a diagram illustrating an example of a correspondence relationship between remaining, Prefix, and Suffix bin according to Embodiment 1.
  • FIG. 16 is a flowchart of the Prefix bin output process according to the first embodiment.
  • FIG. 17 is a flowchart of the Suffix bin output process according to the first embodiment.
  • FIG. 18 is a flowchart of the binarization parameter update process according to the first embodiment.
  • FIG. 19 is a diagram illustrating an evaluation result of the image coding method according to the first embodiment.
  • FIG. 20 is a block diagram of an image decoding apparatus according to Embodiment 2.
  • FIG. 20 is a block diagram of an image decoding apparatus according to Embodiment 2.
  • FIG. 21 is a flowchart of image decoding processing according to the second embodiment.
  • FIG. 22 is a block diagram of a variable length decoding unit according to Embodiment 2.
  • FIG. 23 is a flowchart of variable length decoding processing according to the second embodiment.
  • FIG. 24 is a block diagram of the level decoding unit according to the second embodiment.
  • FIG. 25 is a flowchart of the level decoding process according to the second embodiment.
  • FIG. 26 is a flowchart of the greeter1_flag decoding process according to the second embodiment.
  • FIG. 27 is a flowchart of the greeter2_flag decoding process according to the second embodiment.
  • FIG. 28 is a flowchart of the retaining decoding process according to the second embodiment.
  • FIG. 29 is a flowchart of the retaining multi-value process according to the second embodiment.
  • FIG. 30 is a flowchart of the Prefix decoding process according to the second embodiment.
  • FIG. 31 is a flowchart of the Suffix decoding process and the Prefix / Suffix combination process according to the second embodiment.
  • FIG. 32A is a flowchart of an image encoding method according to Embodiment 1.
  • FIG. 32B is a flowchart of the first flag encoding process and the second flag encoding process according to Embodiment 1.
  • FIG. 33A is a flowchart of an image decoding method according to Embodiment 2.
  • FIG. 33B is a flowchart of the first flag decoding process and the second flag decoding process according to Embodiment 2.
  • FIG. 34 is a block diagram of the level encoding unit according to the third embodiment.
  • FIG. 35 is a flowchart of the level encoding process according to the third embodiment.
  • FIG. 36 is a flowchart of the context set selection process according to the third embodiment.
  • FIG. 37 is a diagram illustrating an evaluation result of the image coding method according to the third embodiment.
  • FIG. 38 is a block diagram of the level decoding unit according to the fourth embodiment.
  • FIG. 39 is a flowchart of the level decoding process according to the fourth embodiment.
  • FIG. 40 is an overall configuration diagram of a content supply system that implements a content distribution service.
  • FIG. 41 is an overall configuration diagram of a digital broadcasting system.
  • FIG. 42 is a block diagram illustrating a configuration example of a television.
  • FIG. 43 is a block diagram illustrating a configuration example of an information reproducing / recording unit that reads and writes information from and on a recording medium that is an optical disk.
  • FIG. 44 is a diagram illustrating a structure example of a recording medium that is an optical disk.
  • FIG. 45A illustrates an example of a mobile phone.
  • FIG. 45B is a block diagram illustrating a configuration example of a mobile phone.
  • FIG. 46 shows a structure of multiplexed data.
  • FIG. 47 is a diagram schematically showing how each stream is multiplexed in the multiplexed data.
  • FIG. 48 is a diagram showing in more detail how the video stream is stored in the PES packet sequence.
  • FIG. 49 is a diagram showing the structure of TS packets and source packets in multiplexed data.
  • FIG. 50 is a diagram illustrating a data structure of the PMT.
  • FIG. 51 is a diagram showing an internal configuration of multiplexed data information.
  • FIG. 52 shows the internal structure of stream attribute information.
  • FIG. 53 is a diagram showing steps for identifying video data.
  • FIG. 54 is a block diagram illustrating a configuration example of an integrated circuit that implements the moving picture coding method and the moving picture decoding method according to each embodiment.
  • FIG. 55 is a diagram showing a configuration for switching the drive frequency.
  • FIG. 56 is a diagram showing steps for identifying video data and switching between driving frequencies.
  • FIG. 57 is a diagram showing an example of a look-up table in which video data standards are associated with drive frequencies.
  • FIG. 58A is a diagram illustrating an example of a configuration for sharing a module of a signal processing unit.
  • FIG. 58B is a diagram illustrating another example of a configuration for sharing a module of a signal processing unit.
  • An image encoding method in the current HEVC standard includes a step of predicting an encoded image, a step of obtaining a difference between the predicted image and an encoding target image, and calculating the difference image as a frequency coefficient. And a step of arithmetically encoding the frequency coefficient.
  • arithmetic encoding a plurality of coefficients included in a coefficient block to be encoded are encoded in order from a high frequency component to a low frequency component.
  • a context is selected according to the encoded coefficient, and the encoding target coefficient is arithmetically encoded using a symbol occurrence probability determined corresponding to the selected context.
  • coefficients closer to low-frequency components often have larger values. Therefore, it is biased to the probability of symbol generation by determining the context with reference to the already-encoded coefficients (coefficients to be encoded). Can be given. For example, if the encoded coefficient (coefficient having a higher frequency than the encoding target coefficient) is large, the probability that the encoding target coefficient is also large is large. Therefore, the image coding apparatus can suppress the generated code amount by using a context for a large value. In the current HEVC standard, the number of coefficients having an absolute value of 2 or more in the encoded coefficients is counted, and the context of the encoding target coefficient is determined according to the number.
  • the image coding method has a problem that it is necessary to count the number of coefficients having an absolute value of 2 or more in the already encoded coefficients, and a process for counting and a register for storing the count value are required.
  • the present inventor found out.
  • an image coding method is an image coding method using arithmetic coding, in which an absolute value of a coefficient to be processed included in a coefficient block to be processed is A first flag encoding step of arithmetically encoding a first flag indicating whether or not the first flag is greater than 1, and a second flag indicating whether or not the absolute value of the coefficient to be processed is greater than 2 Whether or not there is a coefficient whose absolute value exceeds the threshold in the coefficient block immediately before the coefficient block to be processed in the first flag encoding step and the second flag encoding step.
  • the context used for arithmetic coding of the first flag and the second flag is switched according to the determination result.
  • the image coding method switches the context depending on whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block. Therefore, the image coding method can reduce the processing amount as compared with the case where the context is switched according to the number of coefficients. In addition, the image encoding method can reduce the processing amount while suppressing a decrease in encoding efficiency.
  • an absolute value is set to a threshold value in the immediately preceding coefficient block using a variable generated during arithmetic encoding of the immediately preceding coefficient block. It may be determined whether there are more coefficients.
  • the image coding method can reduce the processing amount by diverting the variable used in other processing to the context switching processing.
  • the binarization parameter is determined according to whether there is a coefficient whose absolute value exceeds a threshold in the immediately preceding coefficient block,
  • the variable may be the binarization parameter.
  • the threshold may be 1.
  • An image decoding method is an image decoding method using arithmetic decoding, in which an absolute value of a coefficient to be processed included in a coefficient block to be processed is greater than 1.
  • a first flag decoding step that arithmetically decodes one flag; and a second flag decoding step that arithmetically decodes a second flag indicating whether or not the absolute value of the coefficient to be processed is greater than 2.
  • the image decoding method switches the context depending on whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block. Therefore, the image decoding method can reduce the processing amount as compared with the case where the context is switched according to the number of coefficients. In addition, the image decoding method can reduce the processing amount while suppressing a decrease in encoding efficiency.
  • a coefficient whose absolute value exceeds a threshold value is used in the immediately preceding coefficient block using a variable generated during arithmetic decoding of the immediately preceding coefficient block. It may be determined whether or not it exists.
  • the image decoding method can reduce the amount of processing by diverting variables used in other processing to context switching processing.
  • the binarization parameter is converted into multi-values according to the conversion table specified by the binarization parameter, and the binarization parameter is determined according to whether or not there is a coefficient whose absolute value exceeds a threshold in the immediately preceding coefficient block, and the variable May be the binarization parameter.
  • the threshold may be 1.
  • An image encoding device is an image encoding device that uses arithmetic encoding, and includes a control circuit and a storage device that is accessible from the control circuit.
  • a second flag encoding step that arithmetically encodes a second flag that indicates whether the coefficient block is greater than the second flag encoding step.
  • the first flag encoding step and the second flag encoding step It is determined whether there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block, and the context used for arithmetic coding of the first flag and the second flag is switched according to the determination result. Frogs.
  • the image coding apparatus switches the context according to whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block. Therefore, the image coding apparatus can reduce the processing amount as compared with the case where the context is switched according to the number of coefficients. In addition, the image encoding apparatus can reduce the processing amount while suppressing a decrease in encoding efficiency.
  • An image decoding device is an image decoding device that uses arithmetic decoding, and includes a control circuit and a storage device that is accessible from the control circuit.
  • a second flag decoding step that arithmetically decodes a second flag indicating that, in the first flag decoding step and the second flag decoding step, the absolute value of the coefficient block immediately before the coefficient block to be processed is a threshold value It is determined whether or not there is a coefficient exceeding the threshold, and the context used for arithmetic decoding of the first flag and the second flag is switched according to the determination result.
  • the image decoding apparatus switches the context according to whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block. Therefore, the image decoding apparatus can reduce the processing amount as compared with the case where the context is switched according to the number of coefficients. In addition, the image decoding apparatus can reduce the processing amount while suppressing a decrease in encoding efficiency.
  • an image encoding / decoding device includes the image encoding device and the image decoding device.
  • FIG. 1 is a block diagram showing a configuration of an image encoding device according to the present embodiment.
  • the image encoding apparatus 100 includes a code block dividing unit 101, a subtracting unit 102, a converting unit 103, a variable length encoding unit 104, an inverse converting unit 105, an adding unit 106, a frame memory 107, a prediction Unit 108.
  • Step S101 The code block dividing unit 101 divides the input image 121 into code blocks 122 and sequentially outputs the code blocks 122 to the subtracting unit 102 and the predicting unit 108.
  • the size of the code block 122 is variable, and the code block dividing unit 101 divides the input image 121 into code blocks 122 using the features of the input image 121.
  • the minimum size of the code block 122 is 4 horizontal pixels ⁇ 4 vertical pixels, and the maximum size is 32 horizontal pixels ⁇ 32 vertical pixels.
  • Step S102 The prediction unit 108 generates a prediction block 129 using the code block 122 and the decoded image 128 stored in the frame memory 107.
  • Step S103 The subtraction unit 102 generates a difference block 123 that is a difference between the code block 122 and the prediction block 129.
  • Step S104 The conversion unit 103 converts the difference block 123 into the frequency coefficient 124.
  • Step S105 The variable length coding unit 104 generates a code string 125 by performing variable length coding on the frequency coefficient 124.
  • Step S106 The inverse conversion unit 105 restores the difference block 126 by converting the frequency coefficient 124 into pixel data.
  • Step S107 The adding unit 106 generates a decoded block 127 by adding the restored difference block 126 and the prediction block 129, and stores the generated decoded block 127 as a decoded image 128 in the frame memory 107.
  • Step S108 Steps S102 to S107 are repeated until encoding of all code blocks in the encoding target image is completed.
  • variable length coding unit 104 will be described in detail.
  • FIG. 3 is a block diagram showing the configuration of the variable length coding unit 104.
  • variable length encoding unit 104 encodes the frequency coefficient 124 (hereinafter, also simply referred to as “coefficient”) using five parameters of significant_flag, greeter1_flag, glater2_flag, remaining, and sign_flag.
  • Significant_flag is a flag indicating whether or not the coefficient is 0. When the value is 0, the coefficient is 0, and when the value is 1, the coefficient is other than 0.
  • Greeter1_flag exists only for a coefficient whose significant_flag is 1 (a coefficient that is not 0).
  • glater1_flag is a flag indicating whether the absolute value of the coefficient is 2 or more (greater than 1). When the value of greeter1_flag is 0, the absolute value of the coefficient is 1, and when the value is 1, the absolute value of the coefficient is 2 or more.
  • Greeter2_flag exists only for a coefficient whose glater1_flag is 1 (a coefficient whose absolute value is 2 or more).
  • greeter2_flag is a flag indicating whether the absolute value of the coefficient is 3 or more (greater than 2). When the value of greeter2_flag is 0, the absolute value of the coefficient is 2, and when the value is 1, the absolute value of the coefficient is 3 or more.
  • Remaining exists only for a coefficient whose coefficient is equal to or greater than 1 (the coefficient whose absolute value is 3 or more). Remaining indicates a value obtained by subtracting 3 from the absolute value of the coefficient.
  • Sign_flag exists only for a coefficient whose significant_flag is 1 (a coefficient that is not 0).
  • the sign_flag is a flag indicating whether the coefficient is a negative value (whether it is negative or positive).
  • a sign_flag value of 0 indicates that the coefficient is a positive value, and a value of 1 indicates that the coefficient is a negative value.
  • variable length coding unit 104 includes a coefficient block division unit 131, a significant_flag coding unit 132, a level coding unit 133, and a sign_flag coding unit 134.
  • the significant_flag encoding unit 132 encodes the significant_flag.
  • the level encoding unit 133 encodes greeter1_flag, glater2_flag, and retaining.
  • the sign_flag encoding unit 134 encodes the sign_flag.
  • variable length encoding (variable length coding)>
  • the coefficient block dividing unit 131 divides the code block (frequency coefficient 124) into 4 ⁇ 4 coefficient blocks. Specifically, when the code block is 32 ⁇ 32, the coefficient block dividing unit 131 divides the code block into 8 horizontally and 8 vertically. The coefficient block division unit 131 does not perform division when the code block is 4 ⁇ 4.
  • the subsequent steps S122 to S124 are executed for each coefficient block. Further, the plurality of coefficient blocks are processed in the order of the coefficient block of the high frequency component to the coefficient block of the low frequency component.
  • the significant_flag encoding unit 132 encodes the significant_flag of each coefficient included in the coefficient block.
  • the level encoding unit 133 encodes the coefficient1_flag, the coefficient2_flag, and the retaining of each coefficient included in the coefficient block.
  • Step S124 The sign_flag encoding unit 134 encodes the sign_flag of each coefficient included in the coefficient block.
  • Step S125 Steps S122 to S124 are repeated until processing of all coefficient blocks included in the code block is completed.
  • level encoding unit 133 will be described in detail.
  • FIG. 5 is a block diagram illustrating a configuration of the level encoding unit 133.
  • the level encoding unit 133 includes a greater1_flag setting unit 141, a greater2_flag setting unit 142, a retaining setting unit 143, a binarization parameter update unit 144, a context set selection unit 145, and a glitter1_flag memory 146.
  • the retaining binarization unit 152 includes a Prefix Suffix determination unit 153, a Suffix bin output unit 154, and a Prefix bin output unit 155.
  • the level encoding unit 133 selects a context set to be used for arithmetic encoding of the greater1_flag and the greater2_flag.
  • the level encoding unit 133 encodes glitter1_flag, glitter2_flag, and retaining in this order.
  • the level encoding unit 133 converts remaining from a multilevel signal to a binary signal (bin) before arithmetic encoding.
  • the level encoding unit 133 adaptively changes the length of the binary signal (bin) using the binarization parameter (cParam).
  • the level encoding unit 133 adaptively selects a context set using this binarization parameter when selecting the context set.
  • FIG. 6 is a diagram illustrating the flow of the encoding process performed by the level encoding unit 133.
  • Step S141 The context set selection unit 145 sets a context set number to be used in arithmetic coding of the greater1_flag and the greater2_flag. Details will be described later.
  • Step S142 The binarization parameter update unit 144 initializes the binarization parameter (cParam) to 0. With this processing, cParam is set to 0 at the head of the 4 ⁇ 4 coefficient block. Note that step S141 and step S142 are performed once for the coefficient block. Step S143 and subsequent steps are performed for each coefficient.
  • Step S143 The level encoding unit 133 encodes the coefficient1_flag of each coefficient included in the coefficient block.
  • FIG. 7 is a flowchart showing details of this processing.
  • Step S151 The glitter1_flag setting unit 141 determines whether the absolute value of the target coefficient (coefficient to be processed) is 1 or more. If the absolute value of the target coefficient is 1 or more, the glitter1_flag is encoded in steps S152 to S154, and if the absolute value of the target coefficient is 0, the glitter1_flag is not encoded.
  • Step S152 The glater1_flag setting unit 141 sets greeter1_flag to 1 when the absolute value of the target coefficient is 2 or more, and sets greeter1_flag to 0 when the absolute value of the target coefficient is 1.
  • Step S153 The glitter1_flag context selection unit 147 sets a context number using the context set number selected in step S141. Details will be described later.
  • Step S154 The arithmetic coding unit 151 loads the context to be used from the greeter1_flag context memory 148 according to the context number selected in step S153, and performs arithmetic coding of greeter1_flag using the context.
  • the arithmetic encoding unit 151 stores the context updated by the arithmetic encoding in the same location as the original context in the glitter1_flag context memory 148.
  • Step S155 Steps S151 to S155 are repeated until processing of all the coefficients in the 4 ⁇ 4 coefficient block is completed.
  • the coefficient1_flag of each coefficient included in the coefficient block is encoded.
  • Step S144 The level encoding unit 133 encodes the coefficient2_flag of each coefficient included in the coefficient block.
  • FIG. 8 is a flowchart showing details of this processing.
  • Step S161 The greater2_flag setting unit 142 determines whether the absolute value of the target coefficient is 2 or more. If the absolute value of the target coefficient is 2 or more, the glitter2_flag is encoded in steps S162 to S165, and if the absolute value of the target coefficient is 1 or less, the glitter2_flag is not encoded.
  • Step S162 The glater2_flag setting unit 142 sets greeter2_flag to 1 when the absolute value of the target coefficient is 3 or more, and sets greeter2_flag to 0 when the absolute value of the target coefficient is 2.
  • Step S163 The greater2_flag context selection unit 149 sets the context set number selected in step S141 as the context number.
  • the context of the glitter2_flag is different from that of the glitter1_flag, and the context set number itself is set as the context number. That is, one context set of greeter2_flag includes only one context.
  • Step S164 The arithmetic encoding unit 151 loads a context to be used from the greeter2_flag context memory 150 according to the context number selected in step S150, and performs arithmetic encoding of the greeter2_flag using the context. In addition, the arithmetic encoding unit 151 stores the context updated by the arithmetic encoding in the same location as the original context in the greater2_flag context memory 150.
  • Step S165 Steps S161 to S164 are repeated until processing of all the coefficients in the 4 ⁇ 4 coefficient block is completed.
  • the coefficient2_flag of each coefficient included in the coefficient block is encoded.
  • Step S145 The level encoding unit 133 encodes remaining of each coefficient included in the coefficient block.
  • FIG. 9 is a flowchart showing details of this processing.
  • Step S171 The retaining setting unit 143 determines whether the absolute value of the target coefficient is 3 or more. If the absolute value of the target coefficient is 3 or more, the retaining is encoded in steps S172 to S175, and if the absolute value of the target coefficient is 2 or less, the retaining is not encoded.
  • Step S172 The remaining setting unit 143 sets a numerical value obtained by subtracting 3 from the absolute value of the target coefficient in remaining (multilevel signal).
  • Step S173 Remaining binarization section 152 converts a remaining multilevel signal into a binary signal. Details will be described later.
  • Step S174 The arithmetic encoding unit 151 performs a remnant arithmetic encoding. Remaining is encoded by Bypass arithmetic coding that does not use a context, unlike greeter1_flag and greeter2_flag.
  • Step S175 The binarization parameter update unit 144 updates the binarization parameter (cParam). Details will be described later.
  • Step S176 Steps S171 to S175 are repeated until the processing of all the coefficients in the coefficient block is completed.
  • the context set selection unit 145 determines whether the coefficient block to be processed is the lowest frequency coefficient block in the code block. If the coefficient block to be processed is the lowest frequency coefficient block, the context set number Is set to 0, otherwise, the context set number is set to 2. That is, the context set selection unit 145 sets the context set number to 0 when the coefficient block to be processed is the upper left coefficient block in the code block, and sets the context set number to 2 otherwise.
  • Steps S184 to S185 The context set selection unit 145 adds 1 to the context set number when the binarization parameter (cParam) after the update of the coefficient block processed immediately before (the immediately preceding coefficient block) is greater than 0. By doing this, when cParam is updated even once in the immediately preceding coefficient block, the context set is switched.
  • the context set number is set to any value from 0 to 3 in steps S181 to S185. That is, there are four types of context sets, and the context set selection unit 145 selects one type from the four types.
  • the glater1_flag context selection unit 147 calculates the number of glater1_flags (G1NUM) having a value of 1 in the processed coefficients in the coefficient block to be processed. That is, the greater1_flag context selection unit 147 calculates the number of coefficients having an absolute value of 2 or more. It should be noted that the processed coefficient greeter1_flag is stored in the glater1_flag memory 146, and the greeter1_flag context selection unit 147 acquires the processed coefficient greeter1_flag from the greeter1_flag memory 146.
  • Step S192 to S193 If the G1NUM calculated in step S191 is 1 or more, the greeter1_flag context selection unit 147 sets the context offset to 3, and if G1NUM is 0, the process proceeds to step S194. That is, if even one of the processed coefficients in the coefficient block has a coefficient whose absolute value is 2 or more, the context offset is set to 3.
  • the greater1_flag context selection unit 147 calculates the number of coefficients (G1NUM2) having the greater1_flag among the processed coefficients in the coefficient block to be processed. That is, the greater1_flag context selection unit 147 calculates the number of coefficients having an absolute value of 1 or more. It should be noted that the greater1_flag context selection unit 147 acquires the processed coefficient coefficient1_flag from the glitter1_flag memory 146.
  • the glitter1_flag context selection unit 147 sets the context offset to 2 if G1NUM2 calculated in step S194 is greater than 2, and sets the value of G1NUM2 to the context offset otherwise.
  • the context offset is set to any value from 0 to 3 in steps S191 to S197.
  • the greeter1_flag context selection unit 147 sets “(context set number ⁇ 4) + context offset” as the context number, and outputs the set context number to the greeter1_flag context memory 148.
  • the context set number is 0 to 3 and the context offset is 0 to 3
  • the context number is any value from 0 to 15.
  • One context set is selected from the four types by the context set selection unit 145, and one context is selected by the greeter1_flag context selection unit 147 from the four contexts in the selected context set.
  • the binary signal (bin) includes Prefix and Suffix.
  • the binarization parameter (cParam) the method for determining Prefix and Suffix is switched.
  • Step S201 The Prefix Suffix determination unit 153 determines Prefix and Suffix.
  • FIG. 14 is a flowchart showing details of this processing.
  • the Prefix Suffix determination unit 153 uses cParam for determination of Prefix and Suffix.
  • the processing is roughly divided into two. When remaining is small, Prefix and Suffix are determined by steps S213 to S214, and when remaining is large, Prefix and Suffix are determined by steps S215 to S222.
  • cParam is used as a threshold value for determining whether remaining is small or large. The larger the cParam, the larger the threshold value.
  • CParam is also related to the bin lengths of Prefix and Suffix.
  • FIGS. 15A to 15C are diagrams showing Prefix and Suffix bins according to cParam and remaining. As shown in FIGS. 15A to 15C, when the remaining is small, the bin length is shortened as the cParam is small, and when the remaining is large, the bin length is short as the cParam is large. In other words, when the probability that remaining is small is high, there is a high possibility that the encoding efficiency is improved by reducing cParam. On the other hand, when the probability of large remaining is high, there is a high possibility that the coding efficiency is improved by increasing cParam.
  • Step S202 The Prefix bin output unit 155 outputs a bin related to the Prefix to the arithmetic encoding unit 151.
  • FIG. 16 is a flowchart showing details of this processing.
  • the Prefix bin output unit 155 first outputs “1” by the number of Prefix values, and finally outputs “0”.
  • Step S203 The Suffix bin output unit 154 outputs a bin related to Suffix to the arithmetic coding unit 151.
  • FIG. 17 is a flowchart showing details of this processing.
  • the Suffix bin output unit 154 converts the value of the Suffix into a binary number, and outputs the converted binary number in order from the higher-order bit.
  • the Suffix bin output unit 154 outputs bins by the number of tmpLen, but when the number of bits of the Suffix value is smaller than tmpLen, the higher-order bit is output as 0.
  • Step S251 If the binarization parameter (cParam) is smaller than 4, the binarization parameter update unit 144 performs the update process in steps S252 to S254, and if it is 4 or more, the binarization parameter update unit 144 ends the process without performing the update process.
  • Steps S252 to S254 The binarization parameter updating unit 144 adds 1 to cParam when the absolute value of the target coefficient is larger than the threshold value.
  • the threshold is set by the formula “3 ⁇ (1 ⁇ cParam)”. “ ⁇ ” indicates a left shift. The larger the value of cParam, the larger the threshold value.
  • cParam is initialized to 0 at the top of the coefficient block processing, and is incremented by 1 every time a coefficient exceeding the threshold appears by the binarization parameter update unit 144 until the maximum value becomes 4.
  • the image coding apparatus 100 performs coding with a small amount of processing by switching the contexts of the greater1_flag and the greater2_flag when there is a coefficient whose absolute value exceeds the threshold in the processed coefficient block. Efficiency can be improved.
  • the binarization parameter (cParam) increases by 1 each time the absolute value of the coefficient exceeds the threshold value.
  • the context set number is switched when the value of cParam updated in the immediately preceding coefficient block process at the beginning of the coefficient block process is greater than 0, that is, when any coefficient exceeding the threshold exists in the immediately preceding coefficient block. That is, when there is a coefficient having a large value in the immediately preceding coefficient block (a coefficient block having a higher frequency than the coefficient block to be processed), the image encoding device 100 also has a coefficient having a large value in the coefficient block to be processed. It is determined that there is a high possibility of existence, and a context suitable for a coefficient having a large value is selected.
  • the number of coefficients having an absolute value of 2 or more among the processed coefficients is counted, and the context of the encoding target coefficient is determined according to the number.
  • the processed coefficients are not limited to the coefficients included in the immediately preceding coefficient block, but include a plurality of coefficients included in a plurality of coefficient blocks located on the higher frequency side than the coefficient block to be processed.
  • FIG. 19 is a diagram showing experimental results compared with those before mounting.
  • the experimental conditions are in accordance with the common experimental conditions of the HEVC standardization organization. A larger numerical value indicates that the encoding efficiency is lower, and a negative value indicates that the encoding efficiency is improved. As shown in FIG. 19, all values are -0.01 to 0.03%, and it can be seen that the coding efficiency is hardly changed even if the process of counting the number of coefficients is deleted.
  • the circuit scale can be reduced by unifying information used for context switching and information used for encoding encoding. Specifically, by using cParam, which increases each time the absolute value of the coefficient exceeds the threshold, for the binarization parameter of retaining and the context switching of the greater1_flag and the greater2_flag, multiple functions can be realized with one mechanism. Yes.
  • the image coding method according to the present embodiment eliminates the counting process of the number of coefficients while suppressing a decrease in coding efficiency without adding a new mechanism as compared with the current HEVC standard. Is realized.
  • the image encoding apparatus 100 switches the context set using the binarization parameter (cParam) updated in the immediately previous coefficient block, but the binary updated in the coefficient block other than the immediately preceding coefficient block.
  • Parameter may be used.
  • the image encoding apparatus 100 may switch the context set when cParam is greater than 0 in any of the processed coefficient blocks.
  • the coefficient block is processed from the high frequency block. Therefore, if cParam is greater than 0 in any coefficient block, that is, if a coefficient whose absolute value is greater than or equal to the threshold value appears, the coefficient value is likely to be large in all coefficient blocks thereafter. Therefore, in such a case, encoding efficiency can be improved by selecting a context set to be used when there is a high possibility that the coefficient value is large.
  • the image encoding apparatus 100 initializes the binarization parameter (cParam) to 0 at the beginning of the coefficient block processing, but does not initialize to 0 and continues the cParam updated with the immediately previous coefficient block. May be used. In this way, the state of the high-frequency coefficient block can be continuously used, and the encoding efficiency may be improved depending on the input image.
  • cParam binarization parameter
  • the image encoding apparatus 100 switches the context set when cParam is greater than 0.
  • the present invention is not limited thereto.
  • the context encoding is set when cParam is greater than 1 or greater than 2. You may switch.
  • the coding efficiency may be improved by switching the context set.
  • the present invention is not limited to this, and the number of context sets may be more or less than four types.
  • the image encoding apparatus 100 increments the context set number by 1 when the cParam is greater than 0 regardless of whether the context set number is 0 or 2, but the context set number is 2. Only one case may be increased by one.
  • the image encoding apparatus 100 uses a different context set for the lowest frequency coefficient block, but the switching may be eliminated.
  • the image encoding apparatus 100 may increase the context set number by 1 when cParam is greater than 0, and may further increase by 1 when cParam is greater than 1.
  • encoding efficiency may be improved by increasing the number of types of context sets. If the number of context sets is decreased, the types of contexts can be reduced, the circuit scale of selection processing can be reduced, and context storage is possible. It can reduce the memory for use.
  • the image encoding apparatus 100 sets the context of the glitter1_flag using G1NUM and G1NUM2 as shown in FIG. 11, but this is not a limitation.
  • the image coding apparatus 100 may set the context according to the position of the target coefficient in the coefficient block, or may set the context using only one of G1NUM and G1NUM2.
  • the image encoding apparatus 100 sets the context set number itself as the context number in the context selection of the greater2_flag, but this is not a limitation.
  • the image encoding device 100 may select the context of the glitter2_flag by a method similar to that of the glitter1_flag.
  • the greater1_flag and the greater2_flag exist when the absolute value of the target coefficient is 1 or more, or 2 or more, but the maximum number is limited in the coefficient block as in the current HEVC standard (Non-patent Document 1).
  • the maximum number of glitter1_flags may be eight, and the maximum number of glitter2_flags may be one.
  • the image encoding apparatus 100 configures bins with Prefix and Suffix in binarization of remaining, but the binarization signal of remaining can change the bin length by cParam. If so, that's fine.
  • the remaining binarization signal may be composed only of Prefix. It may be expressed by the exponent Golomb method of the H.264 video coding standard.
  • the last of the prefix bin is set to 0. However, if the prefix is maximum, the last 0 may be deleted. If it is not the maximum Prefix, it is necessary to specify the bin at the boundary between Prefix and Suffix by inserting “0”. However, if the image decoding apparatus knows the maximum value of the coefficient, the maximum Prefix is also I can grasp. Therefore, the image decoding apparatus can determine the boundary between Prefix and Suffix even if “0” is not present in the case of the maximum Prefix. By not inserting “0” in the case of the maximum Prefix, it is possible to reduce the bin length in a case where many coefficients of the maximum Prefix occur (a case where the code bit rate is high). Thereby, encoding efficiency can be improved.
  • the threshold value for updating the binarization parameter (cParam) is set by the formula “3 * (1 ⁇ cParam)”, but is not limited thereto.
  • the image encoding device may use another numerical value such as “4” instead of the coefficient “3”, or may use another arithmetic expression.
  • the image encoding apparatus arithmetically encodes the coefficients1_flag and glater2_flag of all the coefficients using the context.
  • the context is used for the coefficients1_flag or glater2_flag of some coefficients in the same manner as the retaining.
  • Bypass arithmetic coding may be used. For example, when the coefficient1_flag of the coefficient processed immediately before is 1, the image1 encoding apparatus may perform the BYPASS arithmetic coding of the coefficient1 of the target coefficient. Further, the image encoding apparatus may perform Bypass arithmetic encoding on the first greeter1_flag of the coefficient block. Using Bypass arithmetic coding eliminates the need for context loading and updating. In addition, the dependency relationship with other syntaxes using the same context can be deleted. As a result, the processing speed can be increased.
  • the code block has a maximum of 32 ⁇ 32 and a minimum of 4 ⁇ 4, but the size of the encoded block is not limited to this.
  • the code block may be a fixed size.
  • the code block is divided into 4 ⁇ 4 coefficient blocks.
  • the coefficient block may not be 4 ⁇ 4.
  • the coefficient block may be 8 ⁇ 8.
  • the coefficient block may be a rectangle such as 8 ⁇ 4.
  • processing in the present embodiment may be realized by software.
  • the software may be distributed by downloading or the like. Further, this software may be recorded on a recording medium such as a CD-ROM and distributed. This also applies to other embodiments in this specification.
  • Embodiment 2 an image decoding apparatus that decodes an encoded bitstream generated by the image encoding apparatus according to Embodiment 1 will be described.
  • FIG. 20 is a block diagram showing a configuration of image decoding apparatus 200 according to the present embodiment.
  • the code string 221 corresponds to, for example, the code string 125 generated by the image encoding device 100 described above.
  • the image decoding apparatus 200 includes a variable length decoding unit 201, an inverse conversion unit 202, an addition unit 203, a decoded block combination unit 204, and a frame memory 205.
  • Step S301 The variable length decoding unit 201 generates a frequency coefficient 222 by performing variable length decoding on the code string 221, and outputs the frequency coefficient 222 to the inverse transform unit 202.
  • Step S302 The inverse conversion unit 202 generates the difference block 223 by converting the frequency coefficient 222 into pixel data.
  • Step S303 The adding unit 203 generates a decoded block 224 by adding the decoded image 226 and the difference block 223 stored in the frame memory 205.
  • Step S304 Steps S301 to S303 are repeated until decoding of all the decoding blocks in the decoding target image is completed.
  • the decoded block combining unit 204 generates a decoded image 225 by combining a plurality of decoded blocks 224, and stores the decoded image 225 in the frame memory 205 as a decoded image 226.
  • variable length decoding unit 201 will be described in detail.
  • FIG. 22 is a block diagram illustrating a configuration of the variable length decoding unit 201.
  • the frequency coefficient 222 (hereinafter also simply referred to as “coefficient”) is expressed using the five parameters of significant_flag, greeter1_flag, glater2_flag, retaining, and sign_flag. Since the meaning of each parameter is the same as in the first embodiment, description thereof is omitted.
  • variable length decoding unit 201 includes a significant_flag decoding unit 231, a level decoding unit 232, a sign_flag decoding unit 233, and a coefficient decoding unit 234.
  • variable length decoding ⁇ Operation (variable length decoding)>
  • Step S321 The significant_flag decoding unit 231 decodes the significant_flag of each coefficient in the coefficient block, and outputs the significant_flag obtained by the decoding to the level decoding unit 232, the sign_flag decoding unit 233, and the coefficient decoding unit 234.
  • Step S322 The level decoding unit 232 decodes the coefficient1_flag, the value2_flag, and the retaining of each coefficient in the coefficient block, and outputs the value1_flag, the value2_flag, and the retaining obtained by the decoding to the coefficient decoding unit 234. It should be noted that the level decoding unit 232 decodes the glitter1_flag, the glitter2_flag, and the retaining only when the significant_flag is 1.
  • Step S323 The sign_flag decoding unit 233 decodes the sign_flag of each coefficient in the coefficient block, and outputs the sign_flag obtained by the decoding to the coefficient decoding unit 234.
  • the sign_flag decoding unit 233 decodes the sign_flag only when the significant_flag is 1.
  • Step S324 The coefficient decoding unit 234 decodes coefficients using the significant_flag, the greeter1_flag, the greeter2_flag, the retaining, and the sign_flag.
  • the meaning of each parameter is the same as in the first embodiment, and the coefficient decoding unit 234 decodes the coefficient according to the meaning.
  • level decoding unit 232 will be described in detail.
  • FIG. 24 is a block diagram illustrating a configuration of the level decoding unit 232.
  • the level decoding unit 232 includes a context set selection unit 241, a greeter1_flag context selection unit 242, a glater1_flag memory 243, a glater1_flag context memory 244, a glater2_flag context selection unit 245, a greeter2_flag context memory 46, and , An arithmetic decoding unit 247, a binarization parameter update unit 248, and a retaining multilevel conversion unit 249.
  • Remaining multilevel unit 249 includes Prefix decoding unit 250, Suffix decoding unit 251, and Prefix Suffix combining unit 252.
  • FIG. 25 is a diagram showing a flow of decoding processing by the level decoding unit 232.
  • Step S341 The context set selection unit 241 sets a context set number to be used in arithmetic decoding of the greater1_flag and the greater2_flag. This setting method is the same as the context set selection process (FIG. 10) of the first embodiment.
  • Step S342 The binarization parameter update unit 248 initializes the binarization parameter (cParam) to 0. This process sets cParam to 0 at the beginning of the coefficient block. Note that step S341 and step S342 are performed once for the coefficient block, but step S343 and subsequent steps are performed for each coefficient.
  • Step S343 The level decoding unit 232 decodes the coefficient1_flag of each coefficient included in the coefficient block.
  • FIG. 26 is a flowchart showing details of this processing.
  • Step S351 The level decoding unit 232 determines whether the significant_flag of the target coefficient is 1, and if the significant_flag is 1, it decodes the flager1_flag in steps S352 to S353, and does not decode the signator1_flag if the significant_flag is 0.
  • Step S352 The glitter1_flag context selection unit 242 sets a context number using the context set number selected in step S341.
  • This setting method is the same as the greeter1_flag context selection process (FIG. 11) of the first embodiment.
  • Step S353 The arithmetic decoding unit 247 loads the context to be used from the greeter1_flag context memory 244 according to the context number selected in step S352, and performs arithmetic decoding of the greeter1_flag using the context. In addition, the arithmetic decoding unit 247 stores the context updated by the arithmetic decoding in the same location as the original context in the glitter1_flag context memory 244.
  • Step S354 Steps S351 to S353 are repeated until the processing of all the coefficients in the coefficient block is completed.
  • the coefficient1_flag of each coefficient included in the coefficient block is decoded.
  • Step S344 The level decoding unit 232 decodes the coefficient2_flag of each coefficient included in the coefficient block.
  • FIG. 27 is a flowchart showing details of this processing.
  • Step S361 The level decoding unit 232 determines whether the coefficient1_flag is 1 or not, and if the value of the coefficient1_flag is 1, the level2_flag is decoded in steps S362 to S363, and if the value of the coefficient1_flag is 0, the leveler2_flag is not decoded. It should be noted that the level decoding unit 232 does not decode the glitter1_flag when the significant_flag of the target coefficient is 0, but also does not decode the glitter2_flag in that case.
  • Step S362 The greater2_flag context selection unit 245 sets the context set number selected in step S341 as the context number.
  • the context of the glitter2_flag is different from that of the glitter1_flag, and the context set number itself is set as the context number. That is, one context set of greeter2_flag includes only one context.
  • Step S363 The arithmetic decoding unit 247 loads the context to be used from the greeter2_flag context memory 246 according to the context number selected in step S362, and performs arithmetic decoding of the greeter2_flag using the context.
  • the arithmetic decoding unit 247 stores the context updated by the arithmetic decoding in the same location as the original context in the greater2_flag context memory 246.
  • Step S364 Steps S361 to S363 are repeated until the processing of all the coefficients in the coefficient block is completed.
  • the coefficient2_flag of each coefficient included in the coefficient block is decoded.
  • Step S345 The level decoding unit 232 decodes the remaining of each coefficient included in the coefficient block.
  • FIG. 28 is a flowchart showing details of this processing.
  • Step S371 The level decoding unit 232 determines whether or not the coefficient2_flag of the target coefficient is 1. If the value of the coefficient2_flag is 1, the leveling unit 232 decodes the retaining in steps S372 to S373, and does not decode the remaining if the value of the coefficient2_flag is 0. The level decoding unit 232 does not decode the glitter2_flag when the significant_flag of the target coefficient is 0 or the glitter1_flag is 0, but in this case, the decoding is not decoded.
  • Step S372 The arithmetic decoding unit 247 performs remaining arithmetic decoding. Remaining is decoded by Bypass arithmetic decoding that does not use context, unlike greeter1_flag and greeter2_flag.
  • Step S373 Remaining multi-value conversion section 249 converts a re-maining binary signal into a multi-value signal. Details will be described later.
  • Step S374 The binarization parameter update unit 248 updates binarization (cParam). This update method is the same as the binarization parameter update process (FIG. 18) of the first embodiment.
  • Step S375 Steps S371 to S374 are repeated until processing of all the coefficients in the coefficient block is completed.
  • Step S401 The Prefix decoding unit 250 decodes the Prefix.
  • FIG. 30 is a flowchart showing details of this processing.
  • the Prefix decoding unit 250 determines a Prefix. To explain the outline, the Prefix decoding unit 250 acquires codes one by one from the arithmetic decoding unit 247 until “0” appears, and sets the number of consecutive “1” s as the value of the Prefix.
  • Step S402 The Suffix decoding unit 251 decodes Suffix.
  • Step S403 The Prefix Suffix combiner 252 combines the Prefix and the Suffix to generate a remaining multilevel signal.
  • FIG. 31 is a flowchart showing details of steps S402 and S403.
  • the Suffix decoding unit 251 determines Suffix. In brief, when the Prefix is less than 8, the Suffix decoding unit 251 sets the cParam value to the bin length, and generates the Suffix by arranging the arithmetic decoding results of the bin length from the top. On the other hand, when the Prefix is 8 or more, the Suffix decoding unit 251 obtains a bin length from the Prefix and the cParam, and generates a Suffix by arranging the arithmetic decoding results of the bin length from the top.
  • the Prefix Suffix combiner 252 calculates the remaining using Prefix, Suffix, and cParam.
  • the image decoding apparatus can achieve the same effects as those of the first embodiment.
  • FIG. 32A is a flowchart of the image encoding process performed by the image encoding device 100 described above.
  • the image coding apparatus 100 arithmetically codes the first flag (greater1_flag) indicating whether or not the absolute value of the coefficient to be processed included in the coefficient block to be processed is larger than 1 (S701). ).
  • the image encoding apparatus 100 arithmetically encodes a second flag (greater2_flag) indicating whether or not the absolute value of the coefficient to be processed is larger than 2 (S702).
  • FIG. 32B is a flowchart of steps S701 and S702.
  • the image coding apparatus 100 determines whether there is a coefficient whose absolute value exceeds the threshold in the immediately preceding coefficient block (S711), and the first flag and the second flag are determined according to the determination result.
  • the context used for the arithmetic coding is switched (S712).
  • the image coding apparatus 100 refers to only the coefficient included in the immediately preceding coefficient block and does not refer to the coefficient included in the processed coefficient block other than the immediately preceding for this determination. That is, the image encoding apparatus 100 arithmetically encodes the first flag and the second flag using a context corresponding to the determination result among a plurality of contexts.
  • the immediately preceding coefficient block is a coefficient block immediately before the coefficient block to be processed in the processing order.
  • the image coding apparatus 100 increases the binarization parameter (cParam) when the absolute value of the coefficient is larger than the threshold (S253 to S254 in FIG. 18). Then, the image coding apparatus 100 switches the context (increases the context set number) when cParam of the immediately preceding coefficient block is larger than 0 (S184 to S185 in FIG. 10).
  • the image coding apparatus 100 determines whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block, using a variable generated during arithmetic coding of the immediately preceding coefficient block.
  • the image encoding apparatus 100 further calculates a remaining value (remaining) that is a value obtained by subtracting 3 from the absolute value of the coefficient to be processed.
  • a remaining value that is a value obtained by subtracting 3 from the absolute value of the coefficient to be processed.
  • binarization is performed according to the conversion table specified by the binarization parameter (cParam). This binarization parameter is determined depending on whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block.
  • the variable is the binarization parameter.
  • the threshold of the absolute value of the coefficient which is a reference for context switching, is determined according to the binarization parameter (S252 in FIG. 18), but as described in the related art,
  • the threshold value may be a predetermined value (“1”). That is, the image encoding apparatus 100 may determine whether there is a coefficient whose absolute value exceeds 1 (2 or more) in the immediately preceding coefficient block, and may switch the context to be used according to the determination result.
  • the number of coefficients whose absolute value exceeds the threshold is counted, and it is determined whether or not there is a coefficient whose absolute value exceeds the threshold as in the present embodiment. It is different from processing.
  • the image coding apparatus 100 uses a variable generated at the time of arithmetic coding of the immediately preceding coefficient block, so that a coefficient having an absolute value exceeding 1 is present in the immediately preceding coefficient block. It may be determined whether or not it exists. For example, this variable is greater1_flag. That is, the image coding apparatus 100 may switch the context depending on whether or not there is a coefficient having a value of 1 in the immediately preceding coefficient block.
  • FIG. 33A is a flowchart of the image decoding process performed by the image decoding apparatus 200 described above.
  • the image decoding apparatus 200 arithmetically decodes a first flag (glater1_flag) indicating whether or not the absolute value of the coefficient to be processed included in the coefficient block to be processed is larger than 1 (S751). .
  • the image decoding apparatus 200 arithmetically decodes the second flag (greater2_flag) indicating whether or not the absolute value of the coefficient to be processed is larger than 2 (S752).
  • FIG. 33B is a flowchart of steps S751 and S752.
  • the image decoding apparatus 200 determines whether there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block (S761), and the first flag and the second flag are determined according to the determination result.
  • the context used for the arithmetic decoding of is switched (S762). That is, the image decoding apparatus 200 arithmetically decodes the first flag and the second flag using the context corresponding to the determination result among the plurality of contexts.
  • the image decoding apparatus 200 increases the binarization parameter (cParam) when the absolute value of the coefficient is larger than the threshold (S253 to S254 in FIG. 18). Then, the image decoding apparatus 200 switches the context (increases the context set number) when cParam of the immediately preceding coefficient block is greater than 0 (S184 to S185 in FIG. 10).
  • the image decoding apparatus 200 determines whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block, using a variable generated during arithmetic decoding of the immediately preceding coefficient block.
  • the image decoding apparatus 200 further converts the remaining value that is a value obtained by subtracting 3 from the absolute value of the coefficient to be processed into a plurality of conversion tables. Among them, multi-value is made according to the conversion table specified by the binarization parameter. This binarization parameter is determined depending on whether or not there is a coefficient whose absolute value exceeds the threshold value in the immediately preceding coefficient block. The variable is a binarization parameter.
  • the threshold value may be a predetermined value (“1”).
  • the image decoding apparatus 200 uses a variable generated at the time of arithmetic coding of the immediately preceding coefficient block, and there is a coefficient whose absolute value exceeds 1 in the immediately preceding coefficient block. It may be determined whether or not to do so. For example, this variable is greater1_flag. That is, the image decoding apparatus 200 may switch the context depending on whether or not there is a coefficient having a value of 1 in the immediately preceding coefficient block.
  • the image encoding device according to the present embodiment differs from the level encoding unit 133 in the function of the level encoding unit 133A compared to the image encoding device according to the first embodiment.
  • the level encoding unit 133A will be described.
  • FIG. 34 is a block diagram illustrating a configuration of the level encoding unit 133A.
  • This level encoding unit 133A includes a greater_flag switching unit 160 in addition to the configuration of the level encoding unit 133 according to Embodiment 1. Further, the functions of the retaining setting unit 143A and the context set selection unit 145A are different from those of the retaining setting unit 143 and the context set selection unit 145.
  • Steps S501 to S503 are added to the level encoding process of the first embodiment. Further, steps S141A and S171A are different from steps S141 and S171. Note that the description of the same processing as in the first embodiment will be omitted.
  • Step S141A The context set selection unit 145A sets a context set number to be used in arithmetic coding of the greater1_flag and the greater2_flag. Details will be described later.
  • Step S501 The glitter_flag switching unit 160 determines whether the binarization parameter (cParam) after the update of the immediately preceding coefficient block is greater than zero.
  • the binarization parameter is 0, greeter1_flag and glater2_flag are encoded as in the first embodiment, but when the binarization parameter is greater than 0, greeter1_flag and glater2_flag are not encoded.
  • Steps S502, S503, S171A The remaining setting unit 143A sets the remaining base value to 1 when the binarization parameter (cParam) after the update of the immediately previous coefficient block is greater than 0, and sets the remaining base value when the binarization parameter is 0. Set to 3. Then, the level encoding unit 133A encodes the retaining in steps S172 to S175 when the absolute value of the coefficient is equal to or greater than the retaining base value, and does not encode the retaining when the absolute value of the coefficient is less than the retaining base value. When encoding remaining, the level encoding unit 133A sets the value obtained by subtracting the remaining base value from the absolute value of the coefficient to the remaining, and encodes it.
  • the value to be set in “remaining” changes because there is a case where “greater1_flag” and “greater2_flag” are not encoded depending on cParam.
  • the retaining base value is fixed to “3”.
  • the context set selection unit 145A determines whether the coefficient block to be processed is the lowest frequency coefficient block in the code block, and sets the context set number to 0 when the coefficient block is the lowest frequency coefficient block. Otherwise, the context set number is set to 1. That is, the context set selection unit 145A sets the context set number of the upper left coefficient block in the code block to 0, and otherwise sets the context set number to 1.
  • the context set selection unit 145A does not switch context sets when cParam is greater than zero. This is because, when cParam is larger than 0, as described above, the coding of greeter1_flag and glater2_flag is not performed, and the context is not selected.
  • the image coding apparatus does not code the greeter1_flag and glater2_flag according to the binarization parameter after the update of the immediately preceding coefficient block, and uses the refactoring instead of the greeter1_flag and glater2_flag. Encode. Therefore, the image coding apparatus uses Bypass arithmetic coding that does not use context instead of arithmetic coding that uses context when there is even one coefficient that exceeds the threshold value in the processing of the immediately preceding coefficient block. Bypass arithmetic coding does not require loading and updating of the context, and can start processing without waiting for completion of context update in the previous processing. Therefore, Bypass arithmetic coding can speed up processing compared to arithmetic coding using context.
  • the reater1_flag and the glater2_flag may be 0, and there is a case where the remaining may not be encoded.
  • the absolute value of the coefficient is small, there is almost no such a case. Therefore, the total bin amount is often reduced when the glater1_flag and the glater2_flag are not encoded.
  • the image coding apparatus When the cParam after the immediately preceding coefficient block processing is greater than 0 (when there is even one coefficient exceeding the threshold), the image coding apparatus according to the present embodiment has a coefficient having a large absolute value in this coefficient block. Assuming that the probability of occurrence is high, the greeter1_flag and glater2_flag are not encoded. As a result, the number of arithmetic encodings using the context can be reduced while suppressing a decrease in encoding efficiency, so that the processing speed can be increased.
  • greeter1_flag and greeter2_flag are not encoded, so that a context set used when cParam is larger than 0, that is, a context set used when the occurrence probability of a coefficient having a large value is high. Is unnecessary. That is, the image encoding apparatus uses one context set for the upper left coefficient block in the code block, and uses one common context set for the other coefficient blocks. By doing this, the number of contexts to be used can be reduced, so that the memory size for storing the context and the scale of the circuit for context selection processing can be reduced.
  • the circuit scale can be reduced by unifying information used for switching presence / absence of the coding processing of the glater1_flag and glater2_flag and the information used for encoding encoding.
  • a cParam that increases each time the absolute value of the coefficient exceeds a threshold value is used for the binarization parameter of retaining and the switching of presence / absence of encoding processing of the glater1_flag and the glater2_flag. Can be realized.
  • the image coding apparatus switches between the presence / absence of coding processing of the glater1_flag and the glater2_flag without adding a new mechanism as compared with the current HEVC standard (Non-Patent Document 1). Can be realized.
  • FIG. 37 is a diagram showing experimental results compared with those before mounting.
  • the experimental conditions are in accordance with the common experimental conditions of the HEVC standardization organization, and the numerical values in FIG. 37 are the results for the first 49 frames of the test image.
  • a larger numerical value indicates that the encoding efficiency is lower, and a negative value indicates that the encoding efficiency is improved.
  • all values are 0.00 to 0.06%, and even if the processing is speeded up by reducing arithmetic coding using contexts, or the total number of contexts is reduced, It can be seen that the coding efficiency is almost unchanged.
  • the image coding apparatus switches the presence / absence of coding processing of the glater1_flag and the glater2_flag using the binarization parameter (cParam) updated in the immediately preceding coefficient block.
  • You may use the binarization parameter updated by the block.
  • the image encoding apparatus may not encode the glitter1_flag and the glitter2_flag in the subsequent coefficient blocks.
  • the coefficient block is processed from the high frequency block. Therefore, if cParam is greater than 0 in any coefficient block, that is, if a coefficient whose absolute value is greater than or equal to the threshold value appears, the coefficient value is likely to be large in all coefficient blocks thereafter. Therefore, in such a case, there is a case where the encoding efficiency does not decrease even if the glater1_flag and the glater2_flag are not encoded.
  • the image encoding apparatus does not encode greeter1_flag and greeter2_flag when cParam is greater than 0, but is not limited thereto.
  • greeter1_flag, And greeter2_flag may not be encoded.
  • the coding efficiency may be improved by switching the presence / absence of coding processing of the greeter1_flag and the glater2_flag.
  • Embodiment 4 an image decoding apparatus that decodes an encoded bitstream generated by the image encoding apparatus according to Embodiment 3 will be described.
  • the image decoding apparatus according to the present embodiment is different from the image decoding apparatus according to Embodiment 2 in a level decoding unit 232A from the level decoding unit 232.
  • the level decoding unit 232A will be described.
  • FIG. 38 is a block diagram illustrating a configuration of the level decoding unit 232A.
  • the level decoding unit 232A includes a greater_flag switching unit 260 in addition to the configuration of the level decoding unit 232 according to the second embodiment.
  • the functions of the context set selection unit 241A and the arithmetic decoding unit 247A are different from those of the context set selection unit 241 and the arithmetic decoding unit 247.
  • Steps S601 to S603 are added to the level decoding process of the second embodiment. Further, steps S341A and S371A are different from steps S341 and S371. Note that the description of the same processing as in the second embodiment will be omitted.
  • Step S341A The context set selection unit 241A sets a context set number to be used in arithmetic decoding of the greater1_flag and the greater2_flag.
  • the selection method is the same as the context set selection process (FIG. 36) of the third embodiment. That is, the context set selection unit 241A does not switch context sets according to cParam.
  • Step S601 The glitter_flag switching unit 260 determines whether the binarization parameter (cParam) after the update of the immediately preceding coefficient block is greater than zero. When the binarization parameter is 0, the glitter_flag switching unit 260 decodes greeter1_flag and glater2_flag as in the second embodiment, but does not decode glater1_flag and glater2_flag when the binarization parameter is greater than zero.
  • Steps S602, S603, S371A The arithmetic decoding unit 247A sets the remaining base value to 1 when the binarization parameter (cParam) after the update of the immediately preceding coefficient block is greater than 0, and sets the remaining base value to 3 when the binarization parameter is 0. Set to. Then, the level decoding unit 232A performs steps S372 to S373 when the remaining base value is 3 and the target2 coefficient2_flag is 1, or the remaining base value is 1 and the target coefficient significant_flag is 1. Remaining is decoded. Otherwise, remaining is not decoded. When remaining is decoded, the numerical value obtained by adding the remaining base value to the decoded remaining is the absolute value of the coefficient.
  • the image decoding apparatus can achieve the same effects as those of the third embodiment.
  • each of the functional blocks can usually be realized by an MPU (microprocessor) and a memory. Further, the processing by each of the functional blocks can be usually realized by software (program), and the software is recorded in a recording medium such as a ROM. Such software may be distributed by downloading or the like, or may be recorded on a recording medium such as a CD-ROM for distribution. Naturally, each functional block can be realized by hardware (dedicated circuit).
  • each embodiment may be realized by centralized processing using a single device (system), or may be realized by distributed processing using a plurality of devices.
  • the computer that executes the program may be singular or plural. That is, the computer may perform centralized processing or may perform distributed processing.
  • each processing unit included in the image encoding device and the image decoding device according to the above embodiment is typically realized as an LSI that is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
  • circuits are not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
  • Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
  • the image encoding device and the image decoding device include a control circuit (control circuit) and a storage device (storage) electrically connected to the control circuit (accessible from the control circuit).
  • the control circuit includes at least one of dedicated hardware and a program execution unit. Further, when the control circuit includes a program execution unit, the storage device stores a software program executed by the program execution unit.
  • the present invention may be the software program or a non-transitory computer-readable recording medium on which the program is recorded.
  • the program can be distributed via a transmission medium such as the Internet.
  • division of functional blocks in the block diagram is an example, and a plurality of functional blocks can be realized as one functional block, a single functional block can be divided into a plurality of functions, or some functions can be transferred to other functional blocks. May be.
  • functions of a plurality of functional blocks having similar functions may be processed in parallel or time-division by a single hardware or software.
  • the order in which the steps included in the image encoding method or the image decoding method are executed is for illustrating the present invention specifically, and may be in an order other than the above. . Also, some of the above steps may be executed simultaneously (in parallel) with other steps.
  • the image encoding device and the image decoding device according to one or more aspects of the present invention have been described based on the embodiment, but the present invention is not limited to this embodiment. Unless it deviates from the gist of the present invention, one or more of the present invention may be applied to various modifications that can be conceived by those skilled in the art, or forms constructed by combining components in different embodiments. It may be included within the scope of the embodiments.
  • the storage medium may be any medium that can record a program, such as a magnetic disk, an optical disk, a magneto-optical disk, an IC card, and a semiconductor memory.
  • the system has an image encoding / decoding device including an image encoding device using an image encoding method and an image decoding device using an image decoding method.
  • image encoding / decoding device including an image encoding device using an image encoding method and an image decoding device using an image decoding method.
  • Other configurations in the system can be appropriately changed according to circumstances.
  • FIG. 40 is a diagram showing an overall configuration of a content supply system ex100 that realizes a content distribution service.
  • a communication service providing area is divided into desired sizes, and base stations ex106, ex107, ex108, ex109, and ex110, which are fixed wireless stations, are installed in each cell.
  • This content supply system ex100 includes a computer ex111, a PDA (Personal Digital Assistant) ex112, a camera ex113, a mobile phone ex114, a game machine ex115 via the Internet ex101, the Internet service provider ex102, the telephone network ex104, and the base stations ex106 to ex110. Etc. are connected.
  • PDA Personal Digital Assistant
  • each device may be directly connected to the telephone network ex104 without going from the base station ex106, which is a fixed wireless station, to ex110.
  • the devices may be directly connected to each other via short-range wireless or the like.
  • the camera ex113 is a device that can shoot moving images such as a digital video camera
  • the camera ex116 is a device that can shoot still images and movies such as a digital camera.
  • the mobile phone ex114 is a GSM (registered trademark) (Global System for Mobile Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division Multiple Access) system, or an LTE (Long Terminal Term Evolution). It is possible to use any of the above-mentioned systems, HSPA (High Speed Packet Access) mobile phone, PHS (Personal Handyphone System), or the like.
  • the camera ex113 and the like are connected to the streaming server ex103 through the base station ex109 and the telephone network ex104, thereby enabling live distribution and the like.
  • live distribution content that is shot by a user using the camera ex113 (for example, music live video) is encoded as described in each of the above embodiments (that is, in one aspect of the present invention).
  • the streaming server ex103 stream-distributes the content data transmitted to the requested client. Examples of the client include a computer ex111, a PDA ex112, a camera ex113, a mobile phone ex114, and a game machine ex115 that can decode the encoded data.
  • Each device that receives the distributed data decodes the received data and reproduces it (that is, functions as an image decoding device according to one embodiment of the present invention).
  • the captured data may be encoded by the camera ex113, the streaming server ex103 that performs data transmission processing, or may be shared with each other.
  • the decryption processing of the distributed data may be performed by the client, the streaming server ex103, or may be performed in common with each other.
  • still images and / or moving image data captured by the camera ex116 may be transmitted to the streaming server ex103 via the computer ex111.
  • the encoding process in this case may be performed by any of the camera ex116, the computer ex111, and the streaming server ex103, or may be performed in a shared manner.
  • these encoding / decoding processes are generally performed in the computer ex111 and the LSI ex500 included in each device.
  • the LSI ex500 may be configured as a single chip or a plurality of chips.
  • moving image encoding / decoding software is incorporated into some recording medium (CD-ROM, flexible disk, hard disk, etc.) that can be read by the computer ex111, etc., and encoding / decoding processing is performed using the software. May be.
  • moving image data acquired by the camera may be transmitted.
  • the moving image data at this time is data encoded by the LSI ex500 included in the mobile phone ex114.
  • the streaming server ex103 may be a plurality of servers or a plurality of computers, and may process, record, and distribute data in a distributed manner.
  • the encoded data can be received and reproduced by the client.
  • the information transmitted by the user can be received, decrypted and reproduced by the client in real time, and personal broadcasting can be realized even for a user who does not have special rights or facilities.
  • the digital broadcast system ex200 also includes at least the video encoding device (video encoding device) or video decoding of each of the above embodiments. Any of the devices (image decoding devices) can be incorporated.
  • video encoding device video encoding device
  • Any of the devices (image decoding devices) can be incorporated.
  • the broadcast station ex201 multiplexed data obtained by multiplexing music data and the like on video data is transmitted to a communication or satellite ex202 via radio waves.
  • This video data is data encoded by the moving image encoding method described in each of the above embodiments (that is, data encoded by the image encoding apparatus according to one aspect of the present invention).
  • the broadcasting satellite ex202 transmits a radio wave for broadcasting, and this radio wave is received by a home antenna ex204 capable of receiving satellite broadcasting.
  • the received multiplexed data is decoded and reproduced by an apparatus such as the television (receiver) ex300 or the set top box (STB) ex217 (that is, functions as an image decoding apparatus according to one embodiment of the present invention).
  • a reader / recorder ex218 that reads and decodes multiplexed data recorded on a recording medium ex215 such as a DVD or a BD, or encodes a video signal on the recording medium ex215 and, in some cases, multiplexes and writes it with a music signal. It is possible to mount the moving picture decoding apparatus or moving picture encoding apparatus described in the above embodiments. In this case, the reproduced video signal is displayed on the monitor ex219, and the video signal can be reproduced in another device or system using the recording medium ex215 on which the multiplexed data is recorded.
  • a moving picture decoding apparatus may be mounted in a set-top box ex217 connected to a cable ex203 for cable television or an antenna ex204 for satellite / terrestrial broadcasting and displayed on the monitor ex219 of the television.
  • the moving picture decoding apparatus may be incorporated in the television instead of the set top box.
  • FIG. 42 is a diagram illustrating a television (receiver) ex300 that uses the video decoding method and the video encoding method described in each of the above embodiments.
  • the television ex300 obtains or outputs multiplexed data in which audio data is multiplexed with video data via the antenna ex204 or the cable ex203 that receives the broadcast, and demodulates the received multiplexed data.
  • the modulation / demodulation unit ex302 that modulates multiplexed data to be transmitted to the outside, and the demodulated multiplexed data is separated into video data and audio data, or the video data and audio data encoded by the signal processing unit ex306 Is provided with a multiplexing / demultiplexing unit ex303.
  • the television ex300 also decodes the audio data and the video data, or encodes the information, the audio signal processing unit ex304, the video signal processing unit ex305 (the image encoding device or the image according to one embodiment of the present invention) A signal processing unit ex306 that functions as a decoding device), a speaker ex307 that outputs the decoded audio signal, and an output unit ex309 that includes a display unit ex308 such as a display that displays the decoded video signal. Furthermore, the television ex300 includes an interface unit ex317 including an operation input unit ex312 that receives an input of a user operation. Furthermore, the television ex300 includes a control unit ex310 that performs overall control of each unit, and a power supply circuit unit ex311 that supplies power to each unit.
  • the interface unit ex317 includes a bridge unit ex313 connected to an external device such as a reader / recorder ex218, a recording unit ex216 such as an SD card, and an external recording unit such as a hard disk.
  • a driver ex315 for connecting to a medium, a modem ex316 for connecting to a telephone network, and the like may be included.
  • the recording medium ex216 is capable of electrically recording information by using a nonvolatile / volatile semiconductor memory element to be stored.
  • Each part of the television ex300 is connected to each other via a synchronous bus.
  • the television ex300 receives a user operation from the remote controller ex220 or the like, and demultiplexes the multiplexed data demodulated by the modulation / demodulation unit ex302 by the multiplexing / demultiplexing unit ex303 based on the control of the control unit ex310 having a CPU or the like. Furthermore, in the television ex300, the separated audio data is decoded by the audio signal processing unit ex304, and the separated video data is decoded by the video signal processing unit ex305 using the decoding method described in each of the above embodiments.
  • the decoded audio signal and video signal are output from the output unit ex309 to the outside. At the time of output, these signals may be temporarily stored in the buffers ex318, ex319, etc. so that the audio signal and the video signal are reproduced in synchronization. Also, the television ex300 may read multiplexed data from recording media ex215 and ex216 such as a magnetic / optical disk and an SD card, not from broadcasting. Next, a configuration in which the television ex300 encodes an audio signal or a video signal and transmits the signal to the outside or to a recording medium will be described.
  • the television ex300 receives a user operation from the remote controller ex220 and the like, encodes an audio signal with the audio signal processing unit ex304, and converts the video signal with the video signal processing unit ex305 based on the control of the control unit ex310. Encoding is performed using the encoding method described in (1).
  • the encoded audio signal and video signal are multiplexed by the multiplexing / demultiplexing unit ex303 and output to the outside. When multiplexing, these signals may be temporarily stored in the buffers ex320, ex321, etc. so that the audio signal and the video signal are synchronized.
  • a plurality of buffers ex318, ex319, ex320, and ex321 may be provided as illustrated, or one or more buffers may be shared. Further, in addition to the illustrated example, data may be stored in the buffer as a buffer material that prevents system overflow and underflow, for example, between the modulation / demodulation unit ex302 and the multiplexing / demultiplexing unit ex303.
  • the television ex300 has a configuration for receiving AV input of a microphone and a camera, and performs encoding processing on the data acquired from them. Also good.
  • the television ex300 has been described as a configuration capable of the above-described encoding processing, multiplexing, and external output, but these processing cannot be performed, and only the above-described reception, decoding processing, and external output are possible. It may be a configuration.
  • the decoding process or the encoding process may be performed by either the television ex300 or the reader / recorder ex218,
  • the reader / recorder ex218 may share with each other.
  • FIG. 43 shows the configuration of the information reproducing / recording unit ex400 when data is read from or written to the optical disk.
  • the information reproducing / recording unit ex400 includes elements ex401, ex402, ex403, ex404, ex405, ex406, and ex407 described below.
  • the optical head ex401 irradiates a laser spot on the recording surface of the recording medium ex215 that is an optical disk to write information, and detects information reflected from the recording surface of the recording medium ex215 to read the information.
  • the modulation recording unit ex402 electrically drives a semiconductor laser built in the optical head ex401 and modulates the laser beam according to the recording data.
  • the reproduction demodulator ex403 amplifies the reproduction signal obtained by electrically detecting the reflected light from the recording surface by the photodetector built in the optical head ex401, separates and demodulates the signal component recorded on the recording medium ex215, and is necessary To play back information.
  • the buffer ex404 temporarily holds information to be recorded on the recording medium ex215 and information reproduced from the recording medium ex215.
  • the disk motor ex405 rotates the recording medium ex215.
  • the servo control unit ex406 moves the optical head ex401 to a predetermined information track while controlling the rotational drive of the disk motor ex405, and performs a laser spot tracking process.
  • the system control unit ex407 controls the entire information reproduction / recording unit ex400.
  • the system control unit ex407 uses various types of information held in the buffer ex404, and generates and adds new information as necessary.
  • the modulation recording unit ex402, the reproduction demodulation unit This is realized by recording / reproducing information through the optical head ex401 while operating the ex403 and the servo control unit ex406 in a coordinated manner.
  • the system control unit ex407 includes, for example, a microprocessor, and executes these processes by executing a read / write program.
  • the optical head ex401 has been described as irradiating a laser spot.
  • a configuration in which higher-density recording is performed using near-field light may be used.
  • FIG. 44 shows a schematic diagram of a recording medium ex215 that is an optical disk.
  • Guide grooves grooves
  • address information indicating the absolute position on the disc is recorded in advance on the information track ex230 by changing the shape of the groove.
  • This address information includes information for specifying the position of the recording block ex231 that is a unit for recording data, and the recording block is specified by reproducing the information track ex230 and reading the address information in a recording or reproducing apparatus.
  • the recording medium ex215 includes a data recording area ex233, an inner peripheral area ex232, and an outer peripheral area ex234.
  • the area used for recording user data is the data recording area ex233, and the inner circumference area ex232 and the outer circumference area ex234 arranged on the inner or outer circumference of the data recording area ex233 are used for specific purposes other than user data recording. Used.
  • the information reproducing / recording unit ex400 reads / writes encoded audio data, video data, or multiplexed data obtained by multiplexing these data with respect to the data recording area ex233 of the recording medium ex215.
  • an optical disk such as a single-layer DVD or BD has been described as an example.
  • the present invention is not limited to these, and an optical disk having a multilayer structure and capable of recording other than the surface may be used.
  • an optical disc with a multi-dimensional recording / reproducing structure such as recording information using light of different wavelengths in the same place on the disc, or recording different layers of information from various angles. It may be.
  • the car ex210 having the antenna ex205 can receive data from the satellite ex202 and the like, and the moving image can be reproduced on a display device such as the car navigation ex211 that the car ex210 has.
  • the configuration of the car navigation ex211 may be, for example, the configuration shown in FIG. 42 with a GPS receiving unit added, and the same may be considered for the computer ex111, the mobile phone ex114, and the like.
  • FIG. 45A is a diagram showing the mobile phone ex114 using the moving picture decoding method and the moving picture encoding method described in the above embodiment.
  • the mobile phone ex114 includes an antenna ex350 for transmitting and receiving radio waves to and from the base station ex110, a camera unit ex365 capable of capturing video and still images, a video captured by the camera unit ex365, a video received by the antenna ex350, and the like Is provided with a display unit ex358 such as a liquid crystal display for displaying the decrypted data.
  • the mobile phone ex114 further includes a main body unit having an operation key unit ex366, an audio output unit ex357 such as a speaker for outputting audio, an audio input unit ex356 such as a microphone for inputting audio, a captured video,
  • an audio input unit ex356 such as a microphone for inputting audio
  • a captured video In the memory unit ex367 for storing encoded data or decoded data such as still images, recorded audio, received video, still images, mails, or the like, or an interface unit with a recording medium for storing data
  • a slot ex364 is provided.
  • the mobile phone ex114 has a power supply circuit part ex361, an operation input control part ex362, and a video signal processing part ex355 with respect to a main control part ex360 that comprehensively controls each part of the main body including the display part ex358 and the operation key part ex366.
  • a camera interface unit ex363, an LCD (Liquid Crystal Display) control unit ex359, a modulation / demodulation unit ex352, a multiplexing / demultiplexing unit ex353, an audio signal processing unit ex354, a slot unit ex364, and a memory unit ex367 are connected to each other via a bus ex370. ing.
  • the power supply circuit unit ex361 starts up the mobile phone ex114 in an operable state by supplying power from the battery pack to each unit.
  • the cellular phone ex114 converts the audio signal collected by the audio input unit ex356 in the voice call mode into a digital audio signal by the audio signal processing unit ex354 based on the control of the main control unit ex360 having a CPU, a ROM, a RAM, and the like. Then, this is subjected to spectrum spread processing by the modulation / demodulation unit ex352, digital-analog conversion processing and frequency conversion processing are performed by the transmission / reception unit ex351, and then transmitted via the antenna ex350.
  • the mobile phone ex114 also amplifies the received data received via the antenna ex350 in the voice call mode, performs frequency conversion processing and analog-digital conversion processing, performs spectrum despreading processing by the modulation / demodulation unit ex352, and performs voice signal processing unit After being converted into an analog audio signal by ex354, this is output from the audio output unit ex357.
  • the text data of the e-mail input by operating the operation key unit ex366 of the main unit is sent to the main control unit ex360 via the operation input control unit ex362.
  • the main control unit ex360 performs spread spectrum processing on the text data in the modulation / demodulation unit ex352, performs digital analog conversion processing and frequency conversion processing in the transmission / reception unit ex351, and then transmits the text data to the base station ex110 via the antenna ex350.
  • almost the reverse process is performed on the received data and output to the display unit ex358.
  • the video signal processing unit ex355 compresses the video signal supplied from the camera unit ex365 by the moving image encoding method described in the above embodiments. Encode (that is, function as an image encoding device according to an aspect of the present invention), and send the encoded video data to the multiplexing / demultiplexing unit ex353.
  • the audio signal processing unit ex354 encodes the audio signal picked up by the audio input unit ex356 while the camera unit ex365 images a video, a still image, etc., and sends the encoded audio data to the multiplexing / separating unit ex353. To do.
  • the multiplexing / demultiplexing unit ex353 multiplexes the encoded video data supplied from the video signal processing unit ex355 and the encoded audio data supplied from the audio signal processing unit ex354 by a predetermined method, and is obtained as a result.
  • the multiplexed data is subjected to spread spectrum processing by the modulation / demodulation unit (modulation / demodulation circuit unit) ex352, digital-analog conversion processing and frequency conversion processing by the transmission / reception unit ex351, and then transmitted via the antenna ex350.
  • the multiplexing / separating unit ex353 separates the multiplexed data into a video data bit stream and an audio data bit stream, and performs video signal processing on the video data encoded via the synchronization bus ex370.
  • the encoded audio data is supplied to the audio signal processing unit ex354 while being supplied to the unit ex355.
  • the video signal processing unit ex355 decodes the video signal by decoding using the video decoding method corresponding to the video encoding method described in each of the above embodiments (that is, an image according to an aspect of the present invention).
  • video and still images included in the moving image file linked to the home page are displayed from the display unit ex358 via the LCD control unit ex359.
  • the audio signal processing unit ex354 decodes the audio signal, and the audio is output from the audio output unit ex357.
  • the terminal such as the mobile phone ex114 is referred to as a transmission terminal having only an encoder and a receiving terminal having only a decoder.
  • a transmission terminal having only an encoder
  • a receiving terminal having only a decoder.
  • multiplexed data in which music data or the like is multiplexed with video data is received and transmitted, but data in which character data or the like related to video is multiplexed in addition to audio data It may be video data itself instead of multiplexed data.
  • the moving picture encoding method or the moving picture decoding method shown in each of the above embodiments can be used in any of the above-described devices / systems. The described effect can be obtained.
  • multiplexed data obtained by multiplexing audio data or the like with video data is configured to include identification information indicating which standard the video data conforms to.
  • identification information indicating which standard the video data conforms to.
  • FIG. 46 is a diagram showing a structure of multiplexed data.
  • the multiplexed data is obtained by multiplexing one or more of a video stream, an audio stream, a presentation graphics stream (PG), and an interactive graphics stream.
  • the video stream indicates the main video and sub-video of the movie
  • the audio stream (IG) indicates the main audio portion of the movie and the sub-audio mixed with the main audio
  • the presentation graphics stream indicates the subtitles of the movie.
  • the main video indicates a normal video displayed on the screen
  • the sub-video is a video displayed on a small screen in the main video.
  • the interactive graphics stream indicates an interactive screen created by arranging GUI components on the screen.
  • the video stream is encoded by the moving image encoding method or apparatus shown in the above embodiments, or the moving image encoding method or apparatus conforming to the conventional standards such as MPEG-2, MPEG4-AVC, and VC-1. ing.
  • the audio stream is encoded by a method such as Dolby AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD, or linear PCM.
  • Each stream included in the multiplexed data is identified by PID. For example, 0x1011 for video streams used for movie images, 0x1100 to 0x111F for audio streams, 0x1200 to 0x121F for presentation graphics, 0x1400 to 0x141F for interactive graphics streams, 0x1B00 to 0x1B1F are assigned to the video stream used for the sub-picture, and 0x1A00 to 0x1A1F are assigned to the audio stream used for the sub-audio mixed with the main audio.
  • FIG. 47 is a diagram schematically showing how multiplexed data is multiplexed.
  • a video stream ex235 composed of a plurality of video frames and an audio stream ex238 composed of a plurality of audio frames are converted into PES packet sequences ex236 and ex239, respectively, and converted into TS packets ex237 and ex240.
  • the data of the presentation graphics stream ex241 and interactive graphics ex244 are converted into PES packet sequences ex242 and ex245, respectively, and further converted into TS packets ex243 and ex246.
  • the multiplexed data ex247 is configured by multiplexing these TS packets into one stream.
  • FIG. 48 shows in more detail how the video stream is stored in the PES packet sequence.
  • the first row in FIG. 48 shows a video frame sequence of the video stream.
  • the second level shows a PES packet sequence.
  • a plurality of Video Presentation Units in the video stream are divided into pictures, B pictures, and P pictures and stored in the payload of the PES packet.
  • Each PES packet has a PES header, and a PTS (Presentation Time-Stamp) that is a display time of a picture and a DTS (Decoding Time-Stamp) that is a decoding time of a picture are stored in the PES header.
  • PTS Presentation Time-Stamp
  • DTS Decoding Time-Stamp
  • FIG. 49 shows the format of TS packets that are finally written in the multiplexed data.
  • the TS packet is a 188-byte fixed-length packet composed of a 4-byte TS header having information such as a PID for identifying a stream and a 184-byte TS payload for storing data.
  • the PES packet is divided and stored in the TS payload.
  • a 4-byte TP_Extra_Header is added to a TS packet, forms a 192-byte source packet, and is written in multiplexed data.
  • TP_Extra_Header information such as ATS (Arrival_Time_Stamp) is described.
  • ATS indicates the transfer start time of the TS packet to the PID filter of the decoder.
  • Source packets are arranged in the multiplexed data as shown in the lower part of FIG. 49, and the number incremented from the head of the multiplexed data is called SPN (source packet number).
  • TS packets included in the multiplexed data include PAT (Program Association Table), PMT (Program Map Table), PCR (Program Clock Reference), and the like in addition to each stream such as video / audio / caption.
  • PAT indicates what the PID of the PMT used in the multiplexed data is, and the PID of the PAT itself is registered as 0.
  • the PMT has the PID of each stream such as video / audio / subtitles included in the multiplexed data and the attribute information of the stream corresponding to each PID, and has various descriptors related to the multiplexed data.
  • the descriptor includes copy control information for instructing permission / non-permission of copying of multiplexed data.
  • the PCR corresponds to the ATS in which the PCR packet is transferred to the decoder. Contains STC time information.
  • FIG. 50 is a diagram for explaining the data structure of the PMT in detail.
  • a PMT header describing the length of data included in the PMT is arranged at the head of the PMT.
  • a plurality of descriptors related to multiplexed data are arranged.
  • the copy control information and the like are described as descriptors.
  • a plurality of pieces of stream information regarding each stream included in the multiplexed data are arranged.
  • the stream information includes a stream descriptor in which a stream type, a stream PID, and stream attribute information (frame rate, aspect ratio, etc.) are described to identify a compression codec of the stream.
  • the multiplexed data is recorded together with the multiplexed data information file.
  • the multiplexed data information file is management information of multiplexed data, has a one-to-one correspondence with the multiplexed data, and includes multiplexed data information, stream attribute information, and an entry map.
  • the multiplexed data information includes a system rate, a reproduction start time, and a reproduction end time.
  • the system rate indicates a maximum transfer rate of multiplexed data to a PID filter of a system target decoder described later.
  • the ATS interval included in the multiplexed data is set to be equal to or less than the system rate.
  • the playback start time is the PTS of the first video frame of the multiplexed data
  • the playback end time is set by adding the playback interval for one frame to the PTS of the video frame at the end of the multiplexed data.
  • attribute information for each stream included in the multiplexed data is registered for each PID.
  • the attribute information has different information for each video stream, audio stream, presentation graphics stream, and interactive graphics stream.
  • the video stream attribute information includes the compression codec used to compress the video stream, the resolution of the individual picture data constituting the video stream, the aspect ratio, and the frame rate. It has information such as how much it is.
  • the audio stream attribute information includes the compression codec used to compress the audio stream, the number of channels included in the audio stream, the language supported, and the sampling frequency. With information. These pieces of information are used for initialization of the decoder before the player reproduces it.
  • the stream type included in the PMT is used.
  • video stream attribute information included in the multiplexed data information is used.
  • the video encoding shown in each of the above embodiments for the stream type or video stream attribute information included in the PMT.
  • FIG. 53 shows the steps of the moving picture decoding method according to the present embodiment.
  • step exS100 the stream type included in the PMT or the video stream attribute information included in the multiplexed data information is acquired from the multiplexed data.
  • step exS101 it is determined whether or not the stream type or the video stream attribute information indicates multiplexed data generated by the moving picture encoding method or apparatus described in the above embodiments. To do.
  • step exS102 the above embodiments are performed. Decoding is performed by the moving picture decoding method shown in the form.
  • the conventional information Decoding is performed by a moving image decoding method compliant with the standard.
  • FIG. 54 shows a configuration of an LSI ex500 that is made into one chip.
  • the LSI ex500 includes elements ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508, and ex509 described below, and each element is connected via a bus ex510.
  • the power supply circuit unit ex505 is activated to an operable state by supplying power to each unit when the power supply is on.
  • the LSI ex500 uses the AV I / O ex509 to perform the microphone ex117 and the camera ex113 based on the control of the control unit ex501 including the CPU ex502, the memory controller ex503, the stream controller ex504, the driving frequency control unit ex512, and the like.
  • the AV signal is input from the above.
  • the input AV signal is temporarily stored in an external memory ex511 such as SDRAM.
  • the accumulated data is divided into a plurality of times as appropriate according to the processing amount and the processing speed and sent to the signal processing unit ex507, and the signal processing unit ex507 encodes an audio signal and / or video. Signal encoding is performed.
  • the encoding process of the video signal is the encoding process described in the above embodiments.
  • the signal processing unit ex507 further performs processing such as multiplexing the encoded audio data and the encoded video data according to circumstances, and outputs the result from the stream I / Oex 506 to the outside.
  • the output multiplexed data is transmitted to the base station ex107 or written to the recording medium ex215. It should be noted that data should be temporarily stored in the buffer ex508 so as to be synchronized when multiplexing.
  • the memory ex511 is described as an external configuration of the LSI ex500.
  • a configuration included in the LSI ex500 may be used.
  • the number of buffers ex508 is not limited to one, and a plurality of buffers may be provided.
  • the LSI ex500 may be made into one chip or a plurality of chips.
  • control unit ex501 includes the CPU ex502, the memory controller ex503, the stream controller ex504, the drive frequency control unit ex512, and the like, but the configuration of the control unit ex501 is not limited to this configuration.
  • the signal processing unit ex507 may further include a CPU.
  • the CPU ex502 may be configured to include a signal processing unit ex507 or, for example, an audio signal processing unit that is a part of the signal processing unit ex507.
  • the control unit ex501 is configured to include a signal processing unit ex507 or a CPU ex502 having a part thereof.
  • LSI LSI
  • IC system LSI
  • super LSI ultra LSI depending on the degree of integration
  • the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
  • An FPGA Field Programmable Gate Array
  • Such a programmable logic device typically loads or reads a program constituting software or firmware from a memory or the like, thereby moving the moving picture coding method or moving picture shown in each of the above embodiments.
  • An image decoding method can be performed.
  • FIG. 55 shows a configuration ex800 in the present embodiment.
  • the drive frequency switching unit ex803 sets the drive frequency high when the video data is generated by the moving image encoding method or apparatus described in the above embodiments.
  • the decoding processing unit ex801 that executes the moving picture decoding method described in each of the above embodiments is instructed to decode the video data.
  • the video data is video data compliant with the conventional standard, compared to the case where the video data is generated by the moving picture encoding method or apparatus shown in the above embodiments, Set the drive frequency low. Then, it instructs the decoding processing unit ex802 compliant with the conventional standard to decode the video data.
  • the drive frequency switching unit ex803 includes a CPU ex502 and a drive frequency control unit ex512 in FIG.
  • the decoding processing unit ex801 that executes the moving picture decoding method shown in each of the above embodiments and the decoding processing unit ex802 that complies with the conventional standard correspond to the signal processing unit ex507 in FIG.
  • the CPU ex502 identifies which standard the video data conforms to.
  • the drive frequency control unit ex512 sets the drive frequency.
  • the signal processing unit ex507 decodes the video data.
  • identification information described in the sixth embodiment may be used.
  • the identification information is not limited to that described in Embodiment 6, and any information that can identify which standard the video data conforms to may be used. For example, it is possible to identify which standard the video data conforms to based on an external signal that identifies whether the video data is used for a television or a disk. In some cases, identification may be performed based on such an external signal. In addition, the selection of the driving frequency in the CPU ex502 may be performed based on, for example, a lookup table in which video data standards and driving frequencies are associated with each other as shown in FIG. The look-up table is stored in the buffer ex508 or the internal memory of the LSI, and the CPU ex502 can select the drive frequency by referring to the look-up table.
  • FIG. 56 shows steps for executing the method of the present embodiment.
  • the signal processing unit ex507 acquires identification information from the multiplexed data.
  • the CPU ex502 identifies whether the video data is generated by the encoding method or apparatus described in each of the above embodiments based on the identification information.
  • the CPU ex502 sends a signal for setting the drive frequency high to the drive frequency control unit ex512. Then, the drive frequency control unit ex512 sets a high drive frequency.
  • step exS203 the CPU ex502 drives the signal for setting the drive frequency low. This is sent to the frequency control unit ex512. Then, in the drive frequency control unit ex512, the drive frequency is set to be lower than that in the case where the video data is generated by the encoding method or apparatus described in the above embodiments.
  • the power saving effect can be further enhanced by changing the voltage applied to the LSI ex500 or the device including the LSI ex500 in conjunction with the switching of the driving frequency. For example, when the drive frequency is set low, it is conceivable that the voltage applied to the LSI ex500 or the device including the LSI ex500 is set low as compared with the case where the drive frequency is set high.
  • the setting method of the driving frequency may be set to a high driving frequency when the processing amount at the time of decoding is large, and to a low driving frequency when the processing amount at the time of decoding is small. It is not limited to the method.
  • the amount of processing for decoding video data compliant with the MPEG4-AVC standard is larger than the amount of processing for decoding video data generated by the moving picture encoding method or apparatus described in the above embodiments. It is conceivable that the setting of the driving frequency is reversed to that in the case described above.
  • the method for setting the drive frequency is not limited to the configuration in which the drive frequency is lowered.
  • the voltage applied to the LSIex500 or the apparatus including the LSIex500 is set high.
  • the driving of the CPU ex502 is stopped.
  • the CPU ex502 is temporarily stopped because there is room in processing. Is also possible. Even when the identification information indicates that the video data is generated by the moving image encoding method or apparatus described in each of the above embodiments, if there is a margin for processing, the CPU ex502 is temporarily driven. It can also be stopped. In this case, it is conceivable to set the stop time shorter than in the case where the video data conforms to the conventional standards such as MPEG-2, MPEG4-AVC, and VC-1.
  • a plurality of video data that conforms to different standards may be input to the above-described devices and systems such as a television and a mobile phone.
  • the signal processing unit ex507 of the LSI ex500 needs to support a plurality of standards in order to be able to decode even when a plurality of video data complying with different standards is input.
  • the signal processing unit ex507 corresponding to each standard is used individually, there is a problem that the circuit scale of the LSI ex500 increases and the cost increases.
  • a decoding processing unit for executing the moving picture decoding method shown in each of the above embodiments and a decoding conforming to a standard such as MPEG-2, MPEG4-AVC, or VC-1
  • the processing unit is partly shared.
  • An example of this configuration is shown as ex900 in FIG. 58A.
  • the moving picture decoding method shown in each of the above embodiments and the moving picture decoding method compliant with the MPEG4-AVC standard are processed in processes such as entropy coding, inverse quantization, deblocking filter, and motion compensation. Some contents are common.
  • the decoding processing unit ex902 corresponding to the MPEG4-AVC standard is shared, and for other processing contents specific to one aspect of the present invention that do not correspond to the MPEG4-AVC standard, a dedicated decoding processing unit A configuration using ex901 is conceivable.
  • a dedicated decoding processing unit ex901 is used for entropy decoding, and other dequantization, deblocking filter, and motion compensation are used. For any or all of these processes, it is conceivable to share the decoding processing unit.
  • the decoding processing unit for executing the moving picture decoding method described in each of the above embodiments is shared, and the processing content specific to the MPEG4-AVC standard As for, a configuration using a dedicated decoding processing unit may be used.
  • ex1000 in FIG. 58B shows another example in which processing is partially shared.
  • a dedicated decoding processing unit ex1001 corresponding to the processing content specific to one aspect of the present invention
  • a dedicated decoding processing unit ex1002 corresponding to the processing content specific to another conventional standard
  • a common decoding processing unit ex1003 corresponding to the processing contents common to the moving image decoding method according to the above and other conventional moving image decoding methods.
  • the dedicated decoding processing units ex1001 and ex1002 are not necessarily specialized in one aspect of the present invention or processing content specific to other conventional standards, and can execute other general-purpose processing. Also good.
  • the configuration of the present embodiment can be implemented by LSI ex500.
  • the processing content common to the moving picture decoding method according to one aspect of the present invention and the moving picture decoding method of the conventional standard reduces the circuit scale of the LSI by sharing the decoding processing unit, In addition, the cost can be reduced.
  • the present invention can be applied to an image encoding method, an image decoding method, an image encoding device, and an image decoding device. Further, the present invention can be used for high-resolution information display devices or imaging devices such as televisions, digital video recorders, car navigation systems, mobile phones, digital cameras, and digital video cameras that include an image encoding device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

 算術符号化を用いる画像符号化方法であって、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグ(greater1_flag)を算術符号化する第1フラグ符号化ステップ(S701)と、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグ(greater2_flag)を算術符号化する第2フラグ符号化ステップ(S702)とを含み、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し(S711)、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える(S712)。

Description

画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置
 本発明は、画像符号化方法及び画像復号方法に関する。
 近年、デジタル映像機器の技術進歩が著しく、映像信号(時系列順に並んだ複数の動画像ピクチャ)を圧縮符号化し、符号化により得られた映像信号を、DVD又はハードディスク等の記録メディアに記録したり、ネット上に配信する機会が増えている。画像符号化規格としてはH.264/AVC(MPEG-4 AVC)があるが、次世代の標準規格としてHEVC(High Efficiency Video Coding)規格が検討されている(例えば、非特許文献1参照)。
Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 9th Meeting: Geneva, CH, 27 April - 7 May 2012 JCTVC-I1003_d4.doc, High efficiency video coding (HEVC) text specification draft 7http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v5.zip
 このような画像符号化方法及び画像復号方法では、符号化効率の劣化を抑制しつつ、処理量を低減できることが望まれている。
 本発明は、符号化効率の劣化を抑制しつつ、処理量を低減できる画像符号化方法及び画像復号方法を提供することを目的とする。
 上記目的を達成するために、本発明の一態様に係る画像符号化方法は、算術符号化を用いる画像符号化方法であって、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術符号化する第1フラグ符号化ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術符号化する第2フラグ符号化ステップとを含み、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える。
 なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 本発明は、符号化効率の劣化を抑制しつつ、処理量を低減できる画像符号化方法及び画像復号方法を提供できる。
図1は、実施の形態1に係る画像符号化装置のブロック図である。 図2は、実施の形態1に係る画像符号化処理のフローチャートである。 図3は、実施の形態1に係る可変長符号化部のブロック図である。 図4は、実施の形態1に係る可変長符号化処理のフローチャートである。 図5は、実施の形態1に係るlevel符号化部のブロック図である。 図6は、実施の形態1に係るlevel符号化処理のフローチャートである。 図7は、実施の形態1に係るgreater1_flag符号化処理のフローチャートである。 図8は、実施の形態1に係るgreater2_flag符号化処理のフローチャートである。 図9は、実施の形態1に係るremaining符号化処理のフローチャートである。 図10は、実施の形態1に係るコンテキストセット選択処理のフローチャートである。 図11は、実施の形態1に係るgreater1_flagコンテキスト選択処理のフローチャートである。 図12は、実施の形態1に係るコンテキスト番号の一例を示す図である。 図13は、実施の形態1に係るremaining二値化処理のフローチャートである。 図14は、実施の形態1に係るPrefix、Suffix決定処理のフローチャートである。 図15Aは、実施の形態1に係るremainingとPrefix及びSuffix binとの対応関係の一例を示す図である。 図15Bは、実施の形態1に係るremainingとPrefix及びSuffix binとの対応関係の一例を示す図である。 図15Cは、実施の形態1に係るremainingとPrefix及びSuffix binとの対応関係の一例を示す図である。 図16は、実施の形態1に係るPrefix bin出力処理のフローチャートである。 図17は、実施の形態1に係るSuffix bin出力処理のフローチャートである。 図18は、実施の形態1に係る二値化パラメータ更新処理のフローチャートである。 図19は、実施の形態1に係る画像符号化方法の評価結果を示す図である。 図20は、実施の形態2に係る画像復号装置のブロック図である。 図21は、実施の形態2に係る画像復号処理のフローチャートである。 図22は、実施の形態2に係る可変長復号部のブロック図である。 図23は、実施の形態2に係る可変長復号処理のフローチャートである。 図24は、実施の形態2に係るlevel復号部のブロック図である。 図25は、実施の形態2に係るlevel復号処理のフローチャートである。 図26は、実施の形態2に係るgreater1_flag復号処理のフローチャートである。 図27は、実施の形態2に係るgreater2_flag復号処理のフローチャートである。 図28は、実施の形態2に係るremaining復号処理のフローチャートである。 図29は、実施の形態2に係るremaining多値化処理のフローチャートである。 図30は、実施の形態2に係るPrefix復号処理のフローチャートである。 図31は、実施の形態2に係るSuffix復号処理及びPrefix、Suffix結合処理のフローチャートである。 図32Aは、実施の形態1に係る画像符号化方法のフローチャートである。 図32Bは、実施の形態1に係る第1フラグ符号化処理及び第2フラグ符号化処理のフローチャートである。 図33Aは、実施の形態2に係る画像復号方法のフローチャートである。 図33Bは、実施の形態2に係る第1フラグ復号処理及び第2フラグ復号処理のフローチャートである。 図34は、実施の形態3に係るlevel符号化部のブロック図である。 図35は、実施の形態3に係るlevel符号化処理のフローチャートである。 図36は、実施の形態3に係るコンテキストセット選択処理のフローチャートである。 図37は、実施の形態3に係る画像符号化方法の評価結果を示す図である。 図38は、実施の形態4に係るlevel復号部のブロック図である。 図39は、実施の形態4に係るlevel復号処理のフローチャートである。 図40は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。 図41は、デジタル放送用システムの全体構成図である。 図42は、テレビの構成例を示すブロック図である。 図43は、光ディスクである記録メディアに情報の読み書きを行う情報再生/記録部の構成例を示すブロック図である。 図44は、光ディスクである記録メディアの構造例を示す図である。 図45Aは、携帯電話の一例を示す図である。 図45Bは、携帯電話の構成例を示すブロック図である。 図46は、多重化データの構成を示す図である。 図47は、各ストリームが多重化データにおいてどのように多重化されているかを模式的に示す図である。 図48は、PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示した図である。 図49は、多重化データにおけるTSパケットとソースパケットの構造を示す図である。 図50は、PMTのデータ構成を示す図である。 図51は、多重化データ情報の内部構成を示す図である。 図52は、ストリーム属性情報の内部構成を示す図である。 図53は、映像データを識別するステップを示す図である。 図54は、各実施の形態の動画像符号化方法および動画像復号化方法を実現する集積回路の構成例を示すブロック図である。 図55は、駆動周波数を切り替える構成を示す図である。 図56は、映像データを識別し、駆動周波数を切り替えるステップを示す図である。 図57は、映像データの規格と駆動周波数を対応づけたルックアップテーブルの一例を示す図である。 図58Aは、信号処理部のモジュールを共有化する構成の一例を示す図である。 図58Bは、信号処理部のモジュールを共有化する構成の他の一例を示す図である。
 (本発明の基礎となった知見)
 本発明者は、従来の画像符号化方法に関し、以下の問題が生じることを見出した。
 現在のHEVC規格(例えば、非特許文献1を参照)における画像符号化方法は、符号化画像を予測するステップと、予測画像と符号化対象画像との差分を求めるステップと、差分画像を周波数係数に変換するステップと、周波数係数を算術符号化するステップとを含む。算術符号化では、符号化対象の係数ブロックに含まれる複数の係数は、高周波成分から低周波成分の順に符号化される。このとき符号化済み係数に応じてコンテキストが選択され、選択されたコンテキストに対応して決められるシンボル発生確率を用いて符号化対象係数が算術符号化される。
 一般的な画像では低周波成分に近い係数ほど大きい値になる場合が多いため、符号化済みの係数(符号化対象係数より高周波の係数)を参照してコンテキストを決めることによってシンボル発生確率に偏りを持たせることができる。例えば符号化済みの係数(符号化対象係数より高周波の係数)で値が大きければ符号化対象係数も大きい値となる確率が大きい。よって、画像符号化装置は、大きい値用のコンテキストを使用することによって発生符号量を抑えることができる。現在のHEVC規格では、符号化済みの係数において係数の絶対値が2以上の係数の個数をカウントし、その個数に応じて符号化対象係数のコンテキストを決定する。
 しかしながら、上記画像符号化方法では符号化済みの係数において絶対値が2以上の係数の個数をカウントする必要があり、カウントする処理及びカウント値を格納するためのレジスタが必要であるという課題があることを本発明者は見出した。
 上記目的を達成するために、本発明の一態様に係る画像符号化方法は、算術符号化を用いる画像符号化方法であって、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術符号化する第1フラグ符号化ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術符号化する第2フラグ符号化ステップとを含み、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える。
 これによれば、当該画像符号化方法は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像符号化方法は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像符号化方法は、符号化効率の低下を抑制しつつ、処理量を低減できる。
 例えば、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記直前の係数ブロックの算術符号化の際に生成された変数を用いて、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定してもよい。
 これによれば、当該画像符号化方法は、他の処理で用いられた変数を、コンテキストの切り替え処理に流用することで、処理量を低減できる。
 例えば、前記画像符号化方法は、さらに、前記処理対象の係数の絶対値が2より大きい場合に、前記処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い二値化し、前記二値化パラメータは、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定され、前記変数は、前記二値化パラメータであってもよい。
 例えば、前記閾値は1であってもよい。
 また、本発明の一態様に係る画像復号方法は、算術復号を用いる画像復号方法であって、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術復号する第1フラグ復号ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術復号する第2フラグ復号ステップとを含み、前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術復号に使用するコンテキストを切り替える。
 これによれば、当該画像復号方法は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像復号方法は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像復号方法は、符号化効率の低下を抑制しつつ、処理量を低減できる。
 例えば、前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記直前の係数ブロックの算術復号の際に生成された変数を用いて、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定してもよい。
 これによれば、当該画像復号方法は、他の処理で用いられた変数を、コンテキストの切り替え処理に流用することで、処理量を低減できる。
 例えば、前記画像復号方法は、さらに、前記処理対象の係数の絶対値が2より大きい場合に、前記処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い多値化し、前記二値化パラメータは、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定され、前記変数は、前記二値化パラメータであってもよい。
 例えば、前記閾値は1であってもよい。
 また、本発明の一態様に係る画像符号化装置は、算術符号化を用いる画像符号化装置であって、制御回路と、前記制御回路からアクセス可能な記憶装置とを備え、前記制御回路は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術符号化する第1フラグ符号化ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術符号化する第2フラグ符号化ステップとを実行し、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える。
 これによれば、当該画像符号化装置は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像符号化装置は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像符号化装置は、符号化効率の低下を抑制しつつ、処理量を低減できる。
 また、本発明の一態様に係る画像復号装置は、算術復号を用いる画像復号装置であって、制御回路と、前記制御回路からアクセス可能な記憶装置とを備え、前記制御回路は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術復号する第1フラグ復号ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術復号する第2フラグ復号ステップとを実行し、前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術復号に使用するコンテキストを切り替える。
 これによれば、当該画像復号装置は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像復号装置は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像復号装置は、符号化効率の低下を抑制しつつ、処理量を低減できる。
 また、本発明の一態様に係る画像符号化復号装置は、前記画像符号化装置と、前記画像復号装置とを備える。
 なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、画像符号化装置及び画像復号装置の実施の形態について図面を参照して説明する。
 なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 本実施の形態では、画像符号化装置の実施の形態について説明する。
 <全体構成>
 図1は、本実施の形態に係る画像符号化装置の構成を示すブロック図である。
 図1に示す画像符号化装置100は、入力画像121を符号化することで符号列125(符号化ビットストリーム)を生成する。この画像符号化装置100は、符号ブロック分割部101と、減算部102と、変換部103と、可変長符号化部104と、逆変換部105と、加算部106と、フレームメモリ107と、予測部108とを備える。
 <動作(全体)>
 次に、図2を参照しつつ、符号化処理全体の流れについて説明する。
 (ステップS101)
 符号ブロック分割部101は、入力画像121を符号ブロック122に分割し、符号ブロック122を順次、減算部102及び予測部108に出力する。この時、符号ブロック122のサイズは可変であり、符号ブロック分割部101は、入力画像121の特徴を用いて入力画像121を符号ブロック122に分割する。例えば、符号ブロック122の最小サイズは横4画素×縦4画素であり、最大サイズは横32画素×縦32画素である。
 (ステップS102)
 予測部108は、符号ブロック122と、フレームメモリ107に格納されている復号画像128とを用いて予測ブロック129を生成する。
 (ステップS103)
 減算部102は、符号ブロック122と予測ブロック129との差分である差分ブロック123を生成する。
 (ステップS104)
 変換部103は、差分ブロック123を周波数係数124に変換する。
 (ステップS105)
 可変長符号化部104は、周波数係数124を可変長符号化することで符号列125を生成する。
 (ステップS106)
 逆変換部105は、周波数係数124を画素データに変換することで差分ブロック126を復元する。
 (ステップS107)
 加算部106は、復元された差分ブロック126と予測ブロック129とを加算することで復号ブロック127を生成し、生成された復号ブロック127を復号画像128としてフレームメモリ107に格納する。
 (ステップS108)
 符号化対象画像内の全符号ブロックの符号化が完了するまでステップS102からステップS107が繰り返えされる。
 以降、可変長符号化部104について詳細に説明する。
 <可変長符号化部104の構成>
 図3は、可変長符号化部104の構成を示すブロック図である。
 本実施の形態では可変長符号化部104は、周波数係数124(以下、単に「係数」とも呼ぶ)をsignificant_flag、greater1_flag、greater2_flag、remaining、及びsign_flagの5つのパラメータを用いて符号化する。
 significant_flagは係数が0かどうかを示すフラグであり、値が0の場合は係数が0であることを示し、値が1の場合は係数が0以外であることを示す。
 greater1_flagはsignificant_flagが1である係数(0ではない係数)に対してのみ存在する。greater1_flagは、係数の絶対値が2以上(1より大きい)かどうかを示すフラグである。greater1_flagの値が0の場合は係数の絶対値が1であることを示し、値が1の場合は係数の絶対値が2以上であることを示す。
 greater2_flagはgreater1_flagが1である係数(絶対値が2以上の係数)に対してのみ存在する。greater2_flagは係数の絶対値が3以上(2より大きい)かどうかを示すフラグである。greater2_flagの値が0の場合は係数の絶対値が2であることを示し、値が1の場合は係数の絶対値が3以上であることを示す。
 remainingはgreater2_flagが1である係数(絶対値が3以上の係数)に対してのみ存在する。remainingは係数の絶対値から3を減算した値を示す。
 sign_flagはsignificant_flagが1である係数(0ではない係数)に対してのみ存在する。sign_flagは係数が負の値かどうか(負であるか正であるか)を示すフラグである。sign_flagの値が0の場合は係数が正の値であることを示し、値が1の場合は係数が負の値であることを示す。
 図3に示すように、可変長符号化部104は、係数ブロック分割部131と、significant_flag符号化部132と、level符号化部133と、sign_flag符号化部134とを備える。
 significant_flag符号化部132は、significant_flagを符号化する。level符号化部133は、greater1_flag、greater2_flag、及びremainingを符号化する。sign_flag符号化部134は、sign_flagを符号化する。
 <動作(可変長符号化)>
 次に、図4を参照しつつ、可変長符号化処理の流れを説明する。
 (ステップS121)
 係数ブロック分割部131は、符号ブロック(周波数係数124)を4×4の係数ブロックに分割する。具体的には、係数ブロック分割部131は、符号ブロックが32×32の場合、横に8分割し、縦に8分割する。また、係数ブロック分割部131は、符号ブロックが4×4の場合は分割を行わない。なお、以降のステップS122~ステップS124は係数ブロック毎に実行される。また、複数の係数ブロックは、高域成分の係数ブロックから低域成分の係数ブロックの順に処理される。
 (ステップS122)
 significant_flag符号化部132は、係数ブロックに含まれる各係数のsignificant_flagを符号化する。
 (ステップS123)
 level符号化部133は、係数ブロックに含まれる各係数のgreater1_flag、greater2_flag、及びremainingを符号化する。
 (ステップS124)
 sign_flag符号化部134は、係数ブロックに含まれる各係数のsign_flagを符号化する。
 (ステップS125)
 符号ブロックに含まれる全ての係数ブロックの処理が完了するまでステップS122~S124が繰り返される。
 以降、level符号化部133を詳細に説明する。
 <level符号化部133の構成>
 図5は、level符号化部133の構成を示すブロック図である。図5に示すようにlevel符号化部133は、greater1_flag設定部141と、greater2_flag設定部142と、remaining設定部143と、二値化パラメータ更新部144と、コンテキストセット選択部145と、greater1_flagメモリ146と、greater1_flagコンテキスト選択部147と、greater1_flagコンテキストメモリ148と、greater2_flagコンテキスト選択部149と、greater2_flagコンテキストメモリ150と、算術符号化部151と、remaining二値化部152とを備える。remaining二値化部152は、Prefix Suffix決定部153と、Suffix bin出力部154と、Prefix bin出力部155とを備える。
 level符号化部133は、まず、greater1_flag、及びgreater2_flagの算術符号化で使用するコンテキストセットを選択する。次に、level符号化部133は、greater1_flag、greater2_flag、及びremainingをこの順に符号化する。level符号化部133は、remainingを算術符号化の前に多値信号から二値信号(bin)に変換する。その際、level符号化部133は、二値化パラメータ(cParam)を用いて二値信号(bin)の長さを適応的に変更する。また、level符号化部133は、コンテキストセットの選択の際にもこの二値化パラメータを用い、コンテキストセットを適応的に選択する。
 <動作(level符号化)>
 次に、図6~図9を参照しつつ、level符号化部133による符号化処理の流れを詳細に説明する。図6は、level符号化部133による符号化処理の流れを示す図である。
 (ステップS141)
 コンテキストセット選択部145は、greater1_flag、及びgreater2_flagの算術符号化で使用するコンテキストセット番号を設定する。詳細は後述する。
 (ステップS142)
 二値化パラメータ更新部144は、二値化パラメータ(cParam)を0に初期化する。本処理によって4×4の係数ブロックの先頭でcParamが0に設定される。なお、ステップS141及びステップS142は係数ブロックに対して1回行われる。ステップS143以降は係数毎に行われる。
 (ステップS143)
 level符号化部133は、係数ブロックに含まれる各係数のgreater1_flagを符号化する。図7は、この処理の詳細を示すフローチャートである。
 (ステップS151)
 greater1_flag設定部141は、対象係数(処理対象の係数)の絶対値が1以上か判定する。対象係数の絶対値が1以上であればステップS152~S154でgreater1_flagは符号化され、対象係数の絶対値が0であればgreater1_flagは符号化されない。
 (ステップS152)
 greater1_flag設定部141は、対象係数の絶対値が2以上の場合にはgreater1_flagを1に設定し、対象係数の絶対値が1であればgreater1_flagを0に設定する。
 (ステップS153)
 greater1_flagコンテキスト選択部147は、ステップS141で選択されたコンテキストセット番号を用いてコンテキスト番号を設定する。詳細は後述する。
 (ステップS154)
 算術符号化部151は、ステップS153で選択されたコンテキスト番号に従ってgreater1_flagコンテキストメモリ148から使用するコンテキストをロードし、そのコンテキストを用いてgreater1_flagの算術符号化を行う。また、算術符号化部151は、この算術符号化で更新されたコンテキストを、greater1_flagコンテキストメモリ148の、元のコンテキストと同じ場所にストアする。
 (ステップS155)
 4×4の係数ブロック内の全係数の処理が完了するまでステップS151~ステップS155が繰り返えされる。
 以上により、係数ブロックに含まれる各係数のgreater1_flagが符号化される。
 (ステップS144)
 level符号化部133は、係数ブロックに含まれる各係数のgreater2_flagを符号化する。図8は、この処理の詳細を示すフローチャートである。
 (ステップS161)
 greater2_flag設定部142は、対象係数の絶対値が2以上か判定する。対象係数の絶対値が2以上であればステップS162~S165でgreater2_flagは符号化され、対象係数の絶対値が1以下であればgreater2_flagは符号化されない。
 (ステップS162)
 greater2_flag設定部142は、対象係数の絶対値が3以上の場合にはgreater2_flagを1に設定し、対象係数の絶対値が2であればgreater2_flagを0に設定する。
 (ステップS163)
 greater2_flagコンテキスト選択部149は、ステップS141で選択されたコンテキストセット番号をコンテキスト番号に設定する。greater2_flagのコンテキストはgreater1_flagと異なり、コンテキストセット番号そのものがコンテキスト番号に設定される。つまり、greater2_flagの1つのコンテキストセットは1つのコンテキストしか含まない。
 (ステップS164)
 算術符号化部151は、ステップS150で選択されたコンテキスト番号に従ってgreater2_flagコンテキストメモリ150から使用するコンテキストをロードし、そのコンテキストを用いてgreater2_flagの算術符号化を行う。また、算術符号化部151は、この算術符号化で更新されたコンテキストを、greater2_flagコンテキストメモリ150の、元のコンテキストと同じ場所にストアする。
 (ステップS165)
 4×4の係数ブロック内の全係数の処理が完了するまでステップS161~ステップS164が繰り返される。
 以上により、係数ブロックに含まれる各係数のgreater2_flagが符号化される。
 (ステップS145)
 level符号化部133は、係数ブロックに含まれる各係数のremainingを符号化する。図9は、この処理の詳細を示すフローチャートである。
 (ステップS171)
 remaining設定部143は、対象係数の絶対値が3以上か判定する。対象係数の絶対値が3以上であればステップS172~S175でremainingは符号化され、対象係数の絶対値が2以下であればremainingは符号化されない。
 (ステップS172)
 remaining設定部143は、対象係数の絶対値から3を減算した数値をremaining(多値信号)に設定する。
 (ステップS173)
 remaining二値化部152は、remainingの多値信号を二値信号に変換する。詳細は後述する。
 (ステップS174)
 算術符号化部151は、remainingの算術符号化を行う。remainingは、greater1_flag及びgreater2_flagと異なり、コンテキストを用いないBypass算術符号化により符号化される。
 (ステップS175)
 二値化パラメータ更新部144は、二値化パラメータ(cParam)を更新する。詳細は後述する。
 (ステップS176)
 係数ブロック内の全係数の処理が完了するまでステップS171~ステップS175が繰り返される。
 <動作(コンテキストセット選択)>
 次に、図10を参照しつつ、コンテキストセット選択処理(図6のS141)を詳細に説明する。
 (ステップS181~S183)
 コンテキストセット選択部145は、処理対象の係数ブロックが符号ブロック内で最も低周波の係数ブロックであるかどうかを判定し、処理対象の係数ブロックが最も低周波の係数ブロックである場合はコンテキストセット番号に0を設定し、そうでない場合はコンテキストセット番号に2を設定する。つまり、コンテキストセット選択部145は、処理対象の係数ブロックが符号ブロック内の左上の係数ブロックの場合はコンテキストセット番号に0を設定し、そうでない場合はコンテキストセット番号に2を設定する。
 (ステップS184~S185)
 コンテキストセット選択部145は、直前に処理された係数ブロック(直前の係数ブロック)の更新後の二値化パラメータ(cParam)が0より大きい場合はコンテキストセット番号に1を加算する。こうすることにより直前の係数ブロックでcParamが一回でも更新された場合はコンテキストセットが切り替えられる。
 このように、ステップS181~S185によってコンテキストセット番号は0~3のいずれかの値に設定される。つまり、コンテキストセットは4種類あり、コンテキストセット選択部145は、4種類の中から1種類を選択する。
 <動作(greater1_flagコンテキスト選択)>
 次に、図11を参照しつつ、greater1_flagコンテキスト選択処理(図7のS153)を詳細に説明する。
 (ステップS191)
 greater1_flagコンテキスト選択部147は、処理対象の係数ブロック内の処理済み係数において、値1のgreater1_flagの個数(G1NUM)を算出する。つまり、greater1_flagコンテキスト選択部147は、係数の絶対値が2以上の係数の個数を算出する。なお、処理済み係数のgreater1_flagはgreater1_flagメモリ146に格納されており、greater1_flagコンテキスト選択部147は、greater1_flagメモリ146から処理済み係数のgreater1_flagを取得する。
 (ステップS192~S193)
 ステップS191で算出されたG1NUMが1以上の場合、greater1_flagコンテキスト選択部147は、コンテキストオフセットを3に設定し、G1NUMが0の場合はステップS194へ進む。つまり、係数ブロック内の処理済み係数のうち1個でも絶対値が2以上の係数がある場合は、コンテキストオフセットが3に設定される。
 (ステップS194)
 greater1_flagコンテキスト選択部147は、処理対象の係数ブロック内の処理済み係数のうち、greater1_flagを持つ係数の個数(G1NUM2)を算出する。つまり、greater1_flagコンテキスト選択部147は、係数の絶対値が1以上の係数の個数を算出する。なお、greater1_flagコンテキスト選択部147は、処理済み係数のgreater1_flagをgreater1_flagメモリ146から取得する。
 (ステップS195~S197)
 greater1_flagコンテキスト選択部147は、ステップS194で算出されたG1NUM2が2より大きい場合はコンテキストオフセットに2を設定し、それ以外の場合はコンテキストオフセットにG1NUM2の値を設定する。
 このように、ステップS191~S197によってコンテキストオフセットは0~3のいずれかの値が設定される。
 (ステップS198)
 greater1_flagコンテキスト選択部147は、コンテキスト番号に「(コンテキストセット番号×4)+コンテキストオフセット」を設定し、設定されたコンテキスト番号をgreater1_flagコンテキストメモリ148に出力する。図12に示すように、コンテキストセット番号は0~3であり、コンテキストオフセットは0~3であるため、コンテキスト番号は0~15のいずれかの値である。つまり、コンテキストセットは4種類あり、greater1_flagではコンテキストセット内に4つのコンテキストが存在する。コンテキストセット選択部145により4種類の中から1種類のコンテキストセットが選択され、選択されたコンテキストセットの中の4つのコンテキストの中から、greater1_flagコンテキスト選択部147により、1つのコンテキストが選択される。
 <動作(remaining二値化)>
 次に、図13~図16を参照しつつ、remaining二値化処理(図9のS173)を詳細に説明する。概要を説明すると、二値信号(bin)はPrefixとSuffixとを含む。二値化パラメータ(cParam)に応じて、Prefix、及びSuffixの決定方法が切り替えられる。
 (ステップS201)
 Prefix Suffix決定部153は、Prefix及びSuffixを決定する。図14は、この処理の詳細を示すフローチャートである。
 (ステップS211~S222)
 Prefix Suffix決定部153は、Prefix及びSuffixの決定にcParamを用いる。処理は大きく2つに分けられ、remainingが小さい場合はステップS213~S214によってPrefix及びSuffixが決定され、remainingが大きい場合はステップS215~S222によってPrefix及びSuffixが決定される。remainingが小さいか大きいかを分ける閾値にcParamが用いられ、cParamが大きいほど閾値は大きくなる。また、cParamはPrefix及びSuffixのbin長にも関連する。
 図15A~図15Cは、cParam及びremainingに応じたPrefix及びSuffixのbinを示す図である。図15A~図15Cに示すように、remainingが小さい場合はcParamが小さいほどbin長は短くなり、remainingが大きい場合はcParamが大きいほどbin長は短くなる。つまり、remainingが小さい確率が高い場合はcParamを小さくした方が符号化効率は良くなる可能性が高い。逆にremainingが大きい確率が高い場合はcParamを大きくした方が符号化効率は良くなる可能性が高い。
 (ステップS202)
 Prefix bin出力部155は、Prefixに関するbinを算術符号化部151へ出力する。図16は、この処理の詳細を示すフローチャートである。
 (ステップS231~S235)
 Prefix bin出力部155は、まずPrefixの値の数だけ「1」を出力し、最後に「0」を出力する。
 (ステップS203)
 Suffix bin出力部154は、Suffixに関するbinを算術符号化部151へ出力する。図17は、この処理の詳細を示すフローチャートである。
 (ステップS241~S245)
 Suffix bin出力部154は、Suffixの値を2進数に変換し、変換した2進数を上位bitから順に出力する。Suffix bin出力部154は、tmpLenの数だけbinを出力するが、Suffix値のbit数がtmpLenより小さい場合は上位bitを0として出力する。
 <動作(二値化パラメータ更新)>
 次に、図18を参照しつつ、二値化パラメータ更新処理(図9のS175)を詳細に説明する。
 (ステップS251)
 二値化パラメータ更新部144は、二値化パラメータ(cParam)が4より小さい場合はステップS252~S254により更新処理を行い、4以上の場合は更新処理を行わず、処理を終了する。
 (ステップS252~S254)
 二値化パラメータ更新部144は、対象係数の絶対値が閾値より大きい場合はcParamに1を加算する。閾値は「3×(1<<cParam)」の算式で設定される。また、「<<」は左シフトを示す。cParamが大きい値であるほど閾値は大きい値となる。cParamは前述した通り係数ブロックの処理の先頭で0に初期化され、二値化パラメータ更新部144によって閾値を超える係数が現れる度に最大値の4になるまで1ずつ増加していく。
 <効果>
 以上、本実施の形態に係る画像符号化装置100は、処理済み係数ブロック内で絶対値が閾値を超える係数が存在した場合にgreater1_flag、及びgreater2_flagのコンテキストを切り替えることで、少ない処理量で符号化効率を向上できる。
 より具体的には、二値化パラメータ(cParam)は係数の絶対値が閾値を超える度に1増加する。係数ブロック処理の先頭で直前の係数ブロック処理で更新されたcParamの値が0より大きい場合、つまり、直前の係数ブロックに閾値を超える係数が1つでも存在した場合にコンテキストセット番号が切り替えられる。つまり、画像符号化装置100は、直前の係数ブロック(処理対象の係数ブロックよりも高周波の係数ブロック)で値が大きい係数が存在した場合には、処理対象の係数ブロックにも値の大きい係数が存在する可能性が高いと判断し、値の大きい係数に適したコンテキストを選択する。
 ここで、現在のHEVC規格(非特許文献1参照)では処理済みの係数のうち絶対値が2以上の係数の個数がカウントされ、その個数に応じて符号化対象係数のコンテキストが決定されていた。また、ここでの処理済み係数は、直前の係数ブロックに含まれる係数に限らず、処理対象の係数ブロックより高周波側に位置する複数の係数ブロックに含まれる複数の係数を含む。
 一方、本実施の形態の手法では、直前の係数ブロックに閾値を超える係数が存在するか/しないかの判定しか行わない。よって、本実施の形態に係る画像符号化装置100では、閾値を超える係数の個数をカウントする必要がなく、カウント値を格納するためのレジスタも必要ない。
 また、現在のHEVC規格のテスト用ソフトウェアに対し、本実施の形態に係る画像符号化方法を実装し、実験した。図19は実装前と比較した実験結果を示す図である。実験条件はHEVC規格化団体の共通実験条件に従っている。数値が大きいほど符号化効率が低下していることを示し、負の値であれば符号化効率が向上していることを示す。図19に示すように、全ての値が-0.01~0.03%であり、係数の個数をカウントする処理を削除しても符号化効率はほとんど変わらないことが分かる。
 また、コンテキストの切り替えに用いる情報と、remainingの符号化に用いる情報とを統一することにより、回路規模を削減できる。具体的には係数の絶対値が閾値を超える度に大きくなるcParamをremainingの二値化パラメータと、greater1_flag及びgreater2_flagのコンテキスト切り替えとに使用することにより、1つの機構で複数の機能を実現している。このように、本実施の形態に係る画像符号化方法は、現在のHEVC規格と比較し、新たな機構を追加することなく、符号化効率の低下を抑制しつつ係数の個数のカウント処理の削除を実現している。
 なお、上記説明では、画像符号化装置100は、直前の係数ブロックで更新された二値化パラメータ(cParam)を用いてコンテキストセットを切り替えているが、直前以外の係数ブロックで更新された二値化パラメータを用いてもよい。例えば、画像符号化装置100は、処理済みの係数ブロックのいずれかでcParamが0より大きくなった場合にはコンテキストセットを切り替えてもよい。係数ブロックは高周波のブロックから処理される。よって、いずれかの係数ブロックでcParamが0より大きくなった場合、つまり絶対値が閾値以上の係数が出現した場合には以降全ての係数ブロックでは係数値が大きい可能性が高い。よって、このような場合には、係数値が大きい可能性が高い場合に使うコンテキストセットを選択することで符号化効率を向上できる。
 また、画像符号化装置100は、二値化パラメータ(cParam)を係数ブロックの処理の先頭で0に初期化しているが、0に初期化せず、直前の係数ブロックで更新されたcParamを継続して使用してもよい。こうする方が高周波の係数ブロックの状態を継続して使用することが可能となり、入力画像によっては符号化効率が向上する場合がある。
 また、上記説明では、画像符号化装置100は、cParamが0より大きい場合にコンテキストセットを切り替えているが、その限りではなく、例えばcParamが1より大きい場合、又は2より大きい場合にコンテキストセットを切り替えてもよい。入力画像によってはcParamが1より大きい場合にコンテキストセットを切り替えた方が符号化効率が良くなる場合がある。
 また、上記説明では、4種類のコンテキストセットを用いる例を述べたが、その限りではなく、コンテキストセットは、4種類より多くても少なくてもよい。例えば、上記説明では、画像符号化装置100は、コンテキストセット番号が0の場合でも2の場合でもcParamが0より大きい場合にはコンテキストセット番号を1増加させているが、コンテキストセット番号が2の場合のみ1増加させてもよい。
 また、上記説明では、画像符号化装置100は、最も低周波な係数ブロックの場合は別コンテキストセットを使うようにしているが、その切り替えを無くしてもよい。また、画像符号化装置100は、cParamが0より大きい場合にはコンテキストセット番号を1増加させ、cParamが1より大きい場合にはさらに1増加させてもよい。入力画像によってはコンテキストセットの種類を多くした方が符号化効率が良くなる場合もあるし、コンテキストセットを少なくした方が、コンテキストの種類が減り、選択処理の回路規模を削減できたり、コンテキスト格納用のメモリを削減できたりする。
 また、上記説明では、画像符号化装置100は、greater1_flagのコンテキストを、図11に示すように、G1NUM及びG1NUM2を用いて設定しているが、その限りではない。例えば、画像符号化装置100は、対象係数の係数ブロック内の位置に応じてコンテキストを設定してもよいし、G1NUM及びG1NUM2の一方のみを用いてコンテキストを設定してもよい。
 また、上記説明では、画像符号化装置100は、greater2_flagのコンテキスト選択において、コンテキストセット番号そのものをコンテキスト番号に設定しているが、その限りではない。画像符号化装置100は、greater1_flagと同様の手法でgreater2_flagのコンテキストを選択してもよい。
 また、上記説明では、greater1_flag及びgreater2_flagは対象係数の絶対値が1以上、又は2以上の場合に存在するが、現在のHEVC規格(非特許文献1)と同様に係数ブロック内で最大数を制限してもよく、greater1_flagは最大8個まで、greater2_flagは最大1個までとしてもよい。
 また、上記説明では、画像符号化装置100は、remainingの二値化において、Prefix及びSuffixでbinを構成しているが、remainingの二値化信号は、cParamによってbin長を変更できるような仕組みであればそれでよい。例えば、remainingの二値化信号は、Prefixのみで構成されてもよいし、H.264動画符号化規格の指数ゴロム手法で表現されてもよい。
 また、上記説明では、Prefixのbinの最後は0に設定されているが、Prefixが最大の場合は最後の0が削除されてもよい。最大Prefixではない場合は「0」を挿入することによってPrefixとSuffixとの境界のbinを明示する必要があるが、画像復号装置が係数の最大値を把握している場合は、Prefixの最大も把握できる。よって、画像復号装置は、最大Prefixの場合には「0」がなくともPrefixとSuffixとの境界を判断できる。最大Prefixの場合に「0」を挿入しないことによって、最大Prefixの係数が多く発生するケース(符号ビットレートが高いケース)でbin長を多く削減することが可能となる。これにより、符号化効率を向上させることができる。
 また、上記説明では、二値化パラメータ(cParam)の更新用の閾値は「3*(1<<cParam)」の数式により設定されるが、その限りではない。例えば、画像符号化装置は、係数「3」の代わりに「4」等の他の数値を用いてもよいし、他の算式を用いてもよい。
 また、上記説明では、画像符号化装置は、全ての係数のgreater1_flag、及びgreater2_flagを、コンテキストを使って算術符号化しているが、一部の係数のgreater1_flag、又はgreater2_flagにremainingと同様にコンテキストを使わないBypass算術符号化を用いてもよい。例えば、画像符号化装置は、直前に処理された係数のgreater1_flagが1の場合には対象係数のgreater1_flagをBypass算術符号化してもよい。また、画像符号化装置は、係数ブロックの先頭のgreater1_flagをBypass算術符号化してもよい。Bypass算術符号化を用いることで、コンテキストのロード及び更新が必要なくなる。また、同じコンテキストを使う他のsyntaxとの依存関係も削除できる。これらにより、処理を高速化することが可能となる。
 また、上記説明では、符号ブロックは最大32×32、かつ最小4×4であるが、符号化ブロックのサイズはこれに限定されない。また、符号ブロックは固定サイズでもよい。
 また、上記説明では、符号ブロックを4×4の係数ブロックに分割したが、係数ブロックは4×4でなくてもよい。例えば、係数ブロックは、8×8でもよい。また、係数ブロックは、8×4等の長方形であってもよい。
 更に、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをダウンロード等により配布してもよい。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。
 (実施の形態2)
 本実施の形態では、実施の形態1に係る画像符号化装置により生成された符号化ビットストリームを復号する画像復号装置について説明する。
 <全体構成>
 図20は、本実施の形態に係る画像復号装置200の構成を示すブロック図である。
 図20に示す画像復号装置200は、符号列221を復号することで復号画像225を生成する。ここで符号列221は、例えば、上述した画像符号化装置100により生成された符号列125に対応する。この画像復号装置200は、可変長復号部201と、逆変換部202と、加算部203と、復号ブロック結合部204と、フレームメモリ205とを備える。
 <動作(全体)>
 次に、図21を参照しつつ、復号処理の全体の流れを説明する。
 (ステップS301)
 可変長復号部201は、符号列221を可変長復号することで周波数係数222を生成し、周波数係数222を逆変換部202へ出力する。
 (ステップS302)
 逆変換部202は、周波数係数222を画素データに変換することで差分ブロック223を生成する。
 (ステップS303)
 加算部203は、フレームメモリ205に格納してある復号画像226と差分ブロック223とを加算することで復号ブロック224を生成する。
 (ステップS304)
 復号対象画像内の全復号ブロックの復号が完了するまでステップS301~ステップS303が繰り返される。
 (ステップS305)
 復号ブロック結合部204は、複数の復号ブロック224を結合することによって復号画像225を生成すると共に、フレームメモリ205に復号画像225を復号画像226として格納する。
 以降、可変長復号部201について詳細に説明する。
 <可変長復号部201の構成>
 図22は、可変長復号部201の構成を示すブロック図である。本実施の形態では実施の形態1と同様に周波数係数222(以下、単に「係数」とも呼ぶ)をsignificant_flag、greater1_flag、greater2_flag、remaining、及びsign_flagの5つのパラメータを用いて表現する。各パラメータの意味は実施の形態1と同様であるため、説明を省略する。
 図22に示すように、可変長復号部201は、significant_flag復号部231と、level復号部232と、sign_flag復号部233と、係数復号部234とを備える。
 <動作(可変長復号)>
 次に、図23を参照しつつ、可変長復号処理の流れを説明する。
 (ステップS321)
 significant_flag復号部231は、係数ブロック内の各係数のsignificant_flagを復号し、復号により得られたsignificant_flagをlevel復号部232、sign_flag復号部233及び係数復号部234へ出力する。
 (ステップS322)
 level復号部232は、係数ブロック内の各係数のgreater1_flag、greater2_flag、及びremainingを復号し、復号により得られたgreater1_flag、greater2_flag、及びremainingを係数復号部234へ出力する。なお、level復号部232は、significant_flagが1の時しかgreater1_flag、greater2_flag、及びremainingを復号しない。
 (ステップS323)
 sign_flag復号部233は、係数ブロック内の各係数のsign_flagを復号し、復号により得られたsign_flagを係数復号部234へ出力する。なお、sign_flag復号部233は、significant_flagが1の時しかsign_flagを復号しない。
 (ステップS324)
 係数復号部234は、significant_flag、greater1_flag、greater2_flag、remaining、及びsign_flagを用いて係数を復号する。各パラメータの意味は実施の形態1と同様であり、係数復号部234は、その意味に従って係数を復号する。
 以降、level復号部232について詳細に説明する。
 <level復号部232の構成>
 図24は、level復号部232の構成を示すブロック図である。図24に示すように、level復号部232は、コンテキストセット選択部241と、greater1_flagコンテキスト選択部242と、greater1_flagメモリ243と、greater1_flagコンテキストメモリ244と、greater2_flagコンテキスト選択部245と、greater2_flagコンテキストメモリ246と、算術復号部247と、二値化パラメータ更新部248と、remaining多値化部249とを備える。remaining多値化部249は、Prefix復号部250と、Suffix復号部251と、Prefix Suffix結合部252とを備える。
 <動作(level復号)>
 次に、図25~図28を参照しつつ、level復号処理を詳細に説明する。図25は、level復号部232による復号処理の流れを示す図である。
 (ステップS341)
 コンテキストセット選択部241は、greater1_flag、及びgreater2_flagの算術復号で使用するコンテキストセット番号を設定する。この設定方法は実施の形態1のコンテキストセット選択処理(図10)と同様である。
 (ステップS342)
 二値化パラメータ更新部248は、二値化パラメータ(cParam)を0に初期化する。本処理によって係数ブロックの先頭でcParamが0に設定される。なお、ステップS341とステップS342は係数ブロックに対して1回行われるが、ステップS343以降は係数毎に行われる。
 (ステップS343)
 level復号部232は、係数ブロックに含まれる各係数のgreater1_flagを復号する。図26は、この処理の詳細を示すフローチャートである。
 (ステップS351)
 level復号部232は、対象係数のsignificant_flagが1かどうか判定し、significant_flagが1であればステップS352~S353でgreater1_flagを復号し、significant_flagが0であればgreater1_flagを復号しない。
 (ステップS352)
 greater1_flagコンテキスト選択部242は、ステップS341で選択されたコンテキストセット番号を用いてコンテキスト番号を設定する。この設定方法は実施の形態1のgreater1_flagコンテキスト選択処理(図11)と同様である。
 (ステップS353)
 算術復号部247は、ステップS352で選択されたコンテキスト番号に従ってgreater1_flagコンテキストメモリ244から使用するコンテキストをロードし、そのコンテキストを用いてgreater1_flagの算術復号を行う。また、算術復号部247は、この算術復号で更新されたコンテキストを、greater1_flagコンテキストメモリ244の、元のコンテキストと同じ場所にストアする。
 (ステップS354)
 係数ブロック内の全係数の処理が完了するまでステップS351~S353が繰り返される。
 以上により、係数ブロックに含まれる各係数のgreater1_flagが復号される。
 (ステップS344)
 level復号部232は、係数ブロックに含まれる各係数のgreater2_flagを復号する。図27は、この処理の詳細を示すフローチャートである。
 (ステップS361)
 level復号部232は、対象係数のgreater1_flagが1かどうか判定し、greater1_flagが1であればステップS362~S363でgreater2_flagを復号し、greater1_flagが0であればgreater2_flagを復号しない。なお、level復号部232は、対象係数のsignificant_flagが0の場合にはgreater1_flagを復号しないが、その場合はgreater2_flagも復号しない。
 (ステップS362)
 greater2_flagコンテキスト選択部245は、ステップS341で選択されたコンテキストセット番号をコンテキスト番号に設定する。greater2_flagのコンテキストはgreater1_flagと異なり、コンテキストセット番号そのものがコンテキスト番号に設定される。つまり、greater2_flagの1つのコンテキストセットは1つのコンテキストしか含まない。
 (ステップS363)
 算術復号部247は、ステップS362で選択されたコンテキスト番号に従ってgreater2_flagコンテキストメモリ246から使用するコンテキストをロードし、そのコンテキストを用いてgreater2_flagの算術復号を行う。また、算術復号部247は、この算術復号で更新されたコンテキストを、greater2_flagコンテキストメモリ246の、元のコンテキストと同じ場所にストアする。
 (ステップS364)
 係数ブロック内の全係数の処理が完了するまでステップS361~S363が繰り返される。
 以上により、係数ブロックに含まれる各係数のgreater2_flagが復号される。
 (ステップS345)
 level復号部232は、係数ブロックに含まれる各係数のremainingを復号する。図28は、この処理の詳細を示すフローチャートである。
 (ステップS371)
 level復号部232は、対象係数のgreater2_flagが1かどうか判定し、greater2_flagが1であればステップS372~S373でremainingを復号し、greater2_flagが0であればremainingを復号しない。なお、level復号部232は、対象係数のsignificant_flagが0又はgreater1_flagが0の場合にはgreater2_flagを復号しないが、その場合はremainingも復号しない。
 (ステップS372)
 算術復号部247は、remainingの算術復号を行う。remainingはgreater1_flag及びgreater2_flagと異なり、コンテキストを用いないBypass算術復号により復号される。
 (ステップS373)
 remaining多値化部249は、remainingの二値信号を多値信号に変換する。詳細は後述する。
 (ステップS374)
 二値化パラメータ更新部248は、二値化(cParam)を更新する。この更新方法は実施の形態1の二値化パラメータ更新処理(図18)と同様である。
 (ステップS375)
 係数ブロック内の全係数の処理が完了するまでステップS371~S374が繰り返される。
 <動作(remaining多値化)>
 次に、図29~図31を参照しつつ、remaining多値化処理(図28のS373)を詳細に説明する。
 (ステップS401)
 Prefix復号部250は、Prefixを復号する。図30は、この処理の詳細を示すフローチャートである。
 (ステップS411~S415)
 Prefix復号部250は、Prefixを決定する。概要を説明すると、Prefix復号部250は、「0」が出現するまで算術復号部247から1binずつ符号を取得し、「1」が連続した個数をPrefixの値に設定する。
 (ステップS402)
 Suffix復号部251は、Suffixを復号する。
 (ステップS403)
 Prefix Suffix結合部252は、PrefixとSuffixとを結合することで、remainingの多値信号を生成する。
 図31は、ステップS402及びS403の詳細を示すフローチャートである。
 (ステップS421~S433)
 Suffix復号部251は、Suffixを決定する。概要を説明すると、Suffix復号部251は、Prefixが8未満の場合は、cParamの値をbin長に設定し、当該bin長の算術復号結果を上位から並べることでSuffixを生成する。一方、Prefixが8以上の場合は、Suffix復号部251は、Prefix及びcParamからbin長を求め、当該bin長の算術復号結果を上位から並べることでSuffixを生成する。
 (ステップS441~S442)
 Prefix Suffix結合部252は、Prefix、Suffix、及びcParamを用いてremainingを算出する。
 <効果>
 以上により、本実施の形態に係る画像復号装置は、上記実施の形態1と同様の効果を実現できる。
 図32Aは、上述した画像符号化装置100による画像符号化処理のフローチャートである。
 以上説明したように、画像符号化装置100は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグ(greater1_flag)を算術符号化する(S701)。次に、画像符号化装置100は、処理対象の係数の絶対値が2より大きいか否かを示す第2フラグ(greater2_flag)を算術符号化する(S702)。
 図32Bは、これらステップS701及びS702のフローチャートである。
 画像符号化装置100は、ステップS701及びS702において、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し(S711)、判定結果に応じて、第1フラグ及び第2フラグの算術符号化に使用するコンテキストを切り替える(S712)。言い換えると、画像符号化装置100は、この判定に、直前の係数ブロックに含まれる係数のみを参照し、直前以外の処理済み係数ブロックに含まれる係数は参照しない。つまり、画像符号化装置100は、複数のコンテキストのうち、判定結果に対応するコンテキストを用いて第1フラグ及び第2フラグを算術符号化する。
 また、直前の係数ブロックとは、処理順で処理対象の係数ブロックの直前の係数ブロックである。
 具体的には、画像符号化装置100は、係数の絶対値が閾値より大きい場合に二値化パラメータ(cParam)を増加させる(図18のS253~S254)。そして、画像符号化装置100は、直前の係数ブロックのcParamが0より大きい場合にコンテキストを切り替える(コンテキストセット番号を増加させる)(図10のS184~S185)。
 つまり、画像符号化装置100は、直前の係数ブロックの算術符号化の際に生成された変数を用いて、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定する。
 具体的には、画像符号化装置100は、さらに、処理対象の係数の絶対値が2より大きい場合に、処理対象の係数の絶対値から3を減算した値である残り値(remaining)を、複数の変換テーブルのうち、二値化パラメータ(cParam)で指定される変換テーブルに従い二値化する。この二値化パラメータは、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定される。上記変数は、この二値化パラメータである。
 なお、上記説明では、コンテキストの切り替えの基準である、係数の絶対値の閾値は、二値化パラメータに応じて決定されている(図18のS252)が、従来技術で説明したように、この閾値は予め定められた値(「1」)であってもよい。つまり、画像符号化装置100は、直前の係数ブロックに絶対値が1を超える(2以上の)係数が存在するかどうかを判定し、判定結果に応じて、使用するコンテキストを切り替えてもよい。なお、上述したように、従来技術では、絶対値が閾値を超える係数の数がカウントされてり、本実施の形態のように、絶対値が閾値を超える係数が存在するか否かを判定する処理とは異なる。
 さらに、この場合にも上記と同様に、画像符号化装置100は、直前の係数ブロックの算術符号化の際に生成された変数を用いて、直前の係数ブロックに絶対値が1を超える係数が存在するかどうかを判定してもよい。例えば、この変数はgreater1_flagである。つまり、画像符号化装置100は、直前の係数ブロックに値が1のgreater1_flagを有する係数が存在するかどうかに応じて、コンテキストを切り替えてもよい。
 図33Aは、上述した画像復号装置200による画像復号処理のフローチャートである。
 図33Aに示すように、画像復号装置200は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグ(greater1_flag)を算術復号する(S751)。画像復号装置200は、処理対象の係数の絶対値が2より大きいか否かを示す第2フラグ(greater2_flag)を算術復号する(S752)。
 図33Bは、これらステップS751及びS752のフローチャートである。
 画像復号装置200は、これらステップS751及びS752において、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し(S761)、判定結果に応じて、第1フラグ及び第2フラグの算術復号に使用するコンテキストを切り替える(S762)。つまり、画像復号装置200は、複数のコンテキストのうち、判定結果に対応するコンテキストを用いて第1フラグ及び第2フラグを算術復号する。
 具体的には、画像復号装置200は、係数の絶対値が閾値より大きい場合に二値化パラメータ(cParam)を増加させる(図18のS253~S254)。そして、画像復号装置200は、直前の係数ブロックのcParamが0より大きい場合にコンテキストを切り替える(コンテキストセット番号を増加させる)(図10のS184~S185)。
 つまり、画像復号装置200は、直前の係数ブロックの算術復号の際に生成された変数を用いて、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定する。
 具体的には、画像復号装置200は、さらに、処理対象の係数の絶対値が2より大きい場合に、処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い多値化する。この二値化パラメータは、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定される。上記変数は、二値化パラメータである。
 また、上記と同様に、上記閾値は、予め定められた値(「1」)であってもよい。さらに、この場合にも上記と同様に、画像復号装置200は、直前の係数ブロックの算術符号化の際に生成された変数を用いて、直前の係数ブロックに絶対値が1を超える係数が存在するかどうかを判定してもよい。例えば、この変数はgreater1_flagである。つまり、画像復号装置200は、直前の係数ブロックに値が1のgreater1_flagを有する係数が存在するかどうかに応じて、コンテキストを切り替えてもよい。
 (実施の形態3)
 本実施の形態では、上記実施の形態1の変形例について説明する。本実施の形態に係る画像符号化装置は実施の形態1に係る画像符号化装置に対してlevel符号化部133Aの機能がlevel符号化部133と異なる。以降ではlevel符号化部133Aについて説明する。
 <level符号化部133Aの構成>
 図34は、level符号化部133Aの構成を示すブロック図である。このlevel符号化部133Aは、実施の形態1に係るlevel符号化部133の構成に加え、greater_flag切替部160を備える。また、remaining設定部143A、及びコンテキストセット選択部145Aの機能が、remaining設定部143、及びコンテキストセット選択部145と異なる。
 <動作(level符号化)>
 次に、図35を参照しつつ、level符号化処理を詳細に説明する。実施の形態1のlevel符号化処理に対して、ステップS501~S503が追加されている。また、ステップS141A及びS171AがステップS141及びS171と異なる。なお、実施の形態1と同様の処理は説明を省略する。
 (ステップS141A)
 コンテキストセット選択部145Aは、greater1_flag、及びgreater2_flagの算術符号化で使用するコンテキストセット番号を設定する。詳細は後述する。
 (ステップS501)
 greater_flag切替部160は、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きいか判定する。二値化パラメータが0の場合は実施の形態1と同様にgreater1_flag、及びgreater2_flagは符号化されるが、二値化パラメータが0より大きい場合はgreater1_flag、及びgreater2_flagは符号化されない。
 (ステップS502、S503、S171A)
 remaining設定部143Aは、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きい場合はremainingベース値を1に設定し、当該二値化パラメータが0の場合はremainingベース値を3に設定する。そして、level符号化部133Aは、係数の絶対値がremainingベース値以上の場合はステップS172~S175によってremainingを符号化し、remainingベース値未満の場合はremainingを符号化しない。level符号化部133Aは、remainingを符号化する場合、係数の絶対値からremainingベース値を減算した値をremainingに設定して符号化する。これはcParamに応じてgreater1_flag、及びgreater2_flagが符号化されない場合があるため、remainingに設定すべき値が変化するためである。実施の形態1ではcParamによらずgreater1_flag及びgreater2_flagが存在したため、remainingベース値は「3」固定であった。
 <動作(コンテキストセット選択)>
 次に、図35を参照しつつ、コンテキストセット選択処理(図34のS141A)を詳細に説明する。
 (ステップS511~S513)
 コンテキストセット選択部145Aは、処理対象の係数ブロックが符号ブロック内で最も低周波の係数ブロックであるかどうかを判定し、最も低周波の係数ブロックである場合はコンテキストセット番号を0に設定し、そうでない場合はコンテキストセット番号を1に設定する。つまり、コンテキストセット選択部145Aは、符号ブロック内の左上の係数ブロックのコンテキストセット番号を0に設定し、そうでない場合はコンテキストセット番号を1に設定する。
 また、コンテキストセット選択部145Aは、実施の形態1と異なりcParamが0より大きい場合のコンテキストセットの切り替えは行わない。これは前述のlevel符号化処理の通り、cParamが0より大きい場合は、greater1_flag及びgreater2_flagの符号化が行われず、コンテキストの選択も行われないためである。
 <効果>
 以上、本実施の形態に係る画像符号化装置は、直前の係数ブロックの更新後の二値化パラメータに応じてgreater1_flag、及びgreater2_flagを符号化せず、greater1_flag、及びgreater2_flagの代わりにremainingにより係数を符号化する。よって、画像符号化装置は、直前の係数ブロックの処理で閾値を超える係数が1つでも存在した場合はコンテキストを用いる算術符号化の代わりにコンテキストを用いないBypass算術符号化を用いる。Bypass算術符号化はコンテキストのロード及び更新が不要であり、尚且つ前段の処理のコンテキスト更新完了を待たずして処理を始めることができる。よって、Bypass算術符号化は、コンテキストを用いる算術符号化に比べて処理を高速化することが可能である。
 また、係数の絶対値が小さい可能性が高い場合にはgreater1_flag及びgreater2_flagが0となる場合もありremainingを符号化しないでよいケースもある。一方、係数の絶対値が大きい可能性が高い場合はそのようなケースはほとんどないので、greater1_flag及びgreater2_flagを符号化しない方がトータルのbin量が減る場合も多い。
 本実施の形態に係る画像符号化装置は、直前の係数ブロック処理後のcParamが0より大きい場合(閾値を超える係数が1つでも存在した場合)、本係数ブロック内では絶対値が大きい係数の発生確率が高いと想定し、greater1_flag、及びgreater2_flagを符号化しない。これによって、符号化効率の低下を抑制しつつ、コンテキストを用いた算術符号化の数を減らすことができるので、処理高速化を実現できる。
 また、cParamが0より大きい場合にgreater1_flag、及びgreater2_flagを符号化しないようにすることによって、cParamが0より大きい場合に使うコンテキストセット、つまり値が大きい係数の発生確率が高い場合に使用するコンテキストセットが不要である。つまり、画像符号化装置は、符号ブロック内の左上の係数ブロックの時に1つのコンテキストセットを使用し、それ以外の係数ブロックの時には共通の1つのコンテキストセットを使用する。こうすることによって使用するコンテキストの数を減らすことができるので、コンテキストを格納するためのメモリサイズ及びコンテキスト選択処理のための回路の規模を削減することができる。
 また、greater1_flag、及びgreater2_flagの符号化処理の有無の切り替えに用いる情報と、remainingの符号化に用いる情報とを統一することにより、回路規模を削減できる。具体的には、係数の絶対値が閾値を超える度に大きくなるcParamをremainingの二値化パラメータと、greater1_flag及びgreater2_flagの符号化処理の有無の切り替えとに使用することにより、1つの機構で複数の機能を実現できる。このように、本実施の形態に係る画像符号化装置は、現在のHEVC規格(非特許文献1)と比較し、新たな機構を追加することなく、greater1_flag及びgreater2_flagの符号化処理の有無の切り替えを実現できる。
 また、現在のHEVC規格(非特許文献1)のテスト用ソフトウェアに対し、本実施の形態に係る画像符号化方法を実装し、実験した。図37は実装前と比較した実験結果を示す図である。実験条件はHEVC規格化団体の共通実験条件に従っており、図37の数値はテスト用画像の先頭49フレームに対する結果である。数値が大きいほど符号化効率が低下していることを示し、負の値であれば符号化効率が向上していることを示す。図37に示すように、全ての値が0.00~0.06%であり、コンテキストを用いた算術符号化を削減することで処理を高速化しても、またコンテキストの総数を減らしても、符号化効率はほとんど変わらないことが分かる。
 なお、上記説明では、画像符号化装置は、直前の係数ブロックで更新された二値化パラメータ(cParam)を用いてgreater1_flag、及びgreater2_flagの符号化処理の有無を切り替えているが、直前以外の係数ブロックで更新された二値化パラメータを用いてもよい。例えば、画像符号化装置は、処理済みの係数ブロックのいずれかでcParamが0より大きくなった場合には以降の係数ブロックではgreater1_flag及びgreater2_flagを符号化しないようにしてもよい。係数ブロックは高周波のブロックから処理される。よって、いずれかの係数ブロックでcParamが0より大きくなった場合、つまり絶対値が閾値以上の係数が出現した場合に、以降全ての係数ブロックでは係数値が大きい可能性が高い。よって、このような場合に、greater1_flag、及びgreater2_flagを符号化しなくても符号化効率が低下しない場合もある。
 また、上記説明では、画像符号化装置は、cParamが0より大きい場合にgreater1_flag、及びgreater2_flagを符号化しないが、その限りではなく、例えばcParamが1より大きい場合、又は2より大きい場合にgreater1_flag、及びgreater2_flagを符号化しなくてもよい。入力画像によってはcParamが1より大きい場合にgreater1_flag、及びgreater2_flagの符号化処理の有無を切り替えた方が符号化効率が良くなる場合がある。
 なお、その他に関しては実施の形態1と同様のため、説明を省略する。
 (実施の形態4)
 本実施の形態では、実施の形態3に係る画像符号化装置により生成された符号化ビットストリームを復号する画像復号装置について説明する。本実施の形態に係る画像復号装置は、実施の形態2に係る画像復号装置に対してlevel復号部232Aがlevel復号部232と異なる。以降ではlevel復号部232Aについて説明する。
 <level復号部232Aの構成>
 図38は、level復号部232Aの構成を示すブロック図である。このlevel復号部232Aは、実施の形態2に係るlevel復号部232の構成に加え、greater_flag切替部260を備える。また、コンテキストセット選択部241A及び算術復号部247Aの機能がコンテキストセット選択部241及び算術復号部247と異なる。
 <動作(level復号)>
 次に、図39を参照しつつ、level復号処理を詳細に説明する。実施の形態2のlevel復号処理に対して、ステップS601~S603が追加されている。また、ステップS341A及びS371AがステップS341及びS371と異なる。なお、実施の形態2と同様の処理は説明を省略する。
 (ステップS341A)
 コンテキストセット選択部241Aは、greater1_flag、及びgreater2_flagの算術復号で使用するコンテキストセット番号を設定する。選択方法については実施の形態3のコンテキストセット選択処理(図36)と同様である。つまり、コンテキストセット選択部241Aは、cParamに応じたコンテキストセットの切り替えは行わない。
 (ステップS601)
 greater_flag切替部260は、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きいか判定する。greater_flag切替部260は、二値化パラメータが0の場合は実施の形態2と同様にgreater1_flag、及びgreater2_flagを復号するが、二値化パラメータが0より大きい場合はgreater1_flag、及びgreater2_flagを復号しない。
 (ステップS602、S603、S371A)
 算術復号部247Aは、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きい場合はremainingベース値を1に設定し、二値化パラメータが0の場合はremainingベース値を3に設定する。そして、レベル復号部232Aは、remainingベース値が3であり、かつ対象係数のgreater2_flagが1の場合、又はremainingベース値が1であり、かつ対象係数のsignificant_flagが1の場合、ステップS372~S373によってremainingを復号し、そうでない場合はremainingを復号しない。remainingが復号される場合、復号されたremainingにremainingベース値を加算した数値が係数の絶対値である。
 <効果>
 以上により、本実施の形態に係る画像復号装置は、上記実施の形態3と同様の効果を実現できる。
 以上の各実施の形態において、機能ブロックの各々は、通常、MPU(マイクロプロセッサ)及びメモリ等によって実現可能である。また、機能ブロックの各々による処理は、通常、ソフトウェア(プログラム)によって実現することができ、当該ソフトウェアはROM等の記録媒体に記録されている。そして、このようなソフトウェアをダウンロード等により配布してもよいし、CD-ROMなどの記録媒体に記録して配布してもよい。なお、各機能ブロックをハードウェア(専用回路)によって実現することも、当然、可能である。
 また、各実施の形態において説明した処理は、単一の装置(システム)を用いて集中処理することによって実現してもよく、あるいは、複数の装置を用いて分散処理することによって実現してもよい。また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、当該コンピュータは、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
 以上、実施の形態に係る画像符号化装置に及び画像復号装置ついて説明したが、本発明は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る画像符号化装置及び画像復号装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 言い換えると、画像符号化装置及び画像復号装置は、制御回路(control circuitry)と、当該制御回路に電気的に接続された(当該制御回路からアクセス可能な)記憶装置(storage)とを備える。制御回路は、専用のハードウェア及びプログラム実行部の少なくとも一方を含む。また、記憶装置は、制御回路がプログラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。
 さらに、本発明は上記ソフトウェアプログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
 また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
 また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
 また、上記の画像符号化方法又は画像復号方法に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 以上、本発明の一つ又は複数の態様に係る画像符号化装置及び画像復号装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つ又は複数の態様の範囲内に含まれてもよい。
 (実施の形態5)
 上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
 さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
 図40は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
 このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
 しかし、コンテンツ供給システムex100は図40のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
 カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W-CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
 コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
 なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
 また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD-ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
 また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
 以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
 なお、コンテンツ供給システムex100の例に限らず、図41に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
 また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
 図42は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
 また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
 まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
 また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
 また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
 一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図43に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
 以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
 図44に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
 以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
 また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図42に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
 図45Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
 さらに、携帯電話ex114の構成例について、図45Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
 電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
 携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
 さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
 データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
 多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
 データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
 また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
 このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
 また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
 (実施の形態6)
 上記各実施の形態で示した動画像符号化方法または装置と、MPEG-2、MPEG4-AVC、VC-1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
 ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
 この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
 図46は、多重化データの構成を示す図である。図46に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC-3、Dolby Digital Plus、MLP、DTS、DTS-HD、または、リニアPCMのなどの方式で符号化されている。
 多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
 図47は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
 図48は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図48における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図48の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time-Stamp)やピクチャの復号時刻であるDTS(Decoding Time-Stamp)が格納される。
 図49は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD-ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図49下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
 また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
 図50はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
 記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
 多重化データ情報ファイルは、図51に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
 多重化データ情報は図51に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
 ストリーム属性情報は図52に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
 本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
 また、本実施の形態における動画像復号化方法のステップを図53に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
 このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
 (実施の形態7)
 上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図54に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
 例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
 なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
 また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
 なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。このようなプログラマブル・ロジック・デバイスは、典型的には、ソフトウェア又はファームウェアを構成するプログラムを、ロードする又はメモリ等から読み込むことで、上記各実施の形態で示した動画像符号化方法、又は動画像復号化方法を実行することができる。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
 (実施の形態8)
 上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
 この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図55は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
 より具体的には、駆動周波数切替え部ex803は、図54のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図54の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態6で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態6で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図57のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
 図56は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
 さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
 また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4-AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
 さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
 このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
 (実施の形態9)
 テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
 この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図58Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4-AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4-AVC規格に対応する復号処理部ex902を共有し、MPEG4-AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、エントロピー復号に特徴を有していることから、例えば、エントロピー復号については専用の復号処理部ex901を用い、それ以外の逆量子化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4-AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
 また、処理を一部共有化する他の例を図58Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
 このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。
 本発明は、画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置に適用できる。また、本発明は、画像符号化装置を備える、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、及びデジタルビデオカメラ等の高解像度の情報表示機器又は撮像機器に利用可能である。
 100 画像符号化装置
 101 符号ブロック分割部
 102 減算部
 103 変換部
 104 可変長符号化部
 105、202 逆変換部
 106、203 加算部
 107、205 フレームメモリ
 108 予測部
 121 入力画像
 122 符号ブロック
 123、126、223 差分ブロック
 124、222 周波数係数(係数)
 125、221 符号列
 127、224 復号ブロック
 128、225、226 復号画像
 129 予測ブロック
 131 係数ブロック分割部
 132 significant_flag符号化部
 133、133A level符号化部
 134 sign_flag符号化部
 141 greater1_flag設定部
 142 greater2_flag設定部
 143、143A remaining設定部
 144、248 二値化パラメータ更新部
 145、145A、241、241A コンテキストセット選択部
 146、243 greater1_flagメモリ
 147、242 greater1_flagコンテキスト選択部
 148、244 greater1_flagコンテキストメモリ
 149、245 greater2_flagコンテキスト選択部
 150、246 greater2_flagコンテキストメモリ
 151 算術符号化部
 152 remaining二値化部
 153 Prefix Suffix決定部
 154 Suffix bin出力部
 155 Prefix bin出力部
 160、260 greater_flag切替部
 200 画像復号装置
 201 可変長復号部
 204 復号ブロック結合部
 231 significant_flag復号部
 232、232A level復号部
 233 sign_flag復号部
 234 係数復号部
 247、247A 算術復号部
 249 remaining多値化部
 250 Prefix復号部
 251 Suffix復号部
 252 Prefix Suffix結合部

Claims (11)

  1.  算術符号化を用いる画像符号化方法であって、
     処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術符号化する第1フラグ符号化ステップと、
     前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術符号化する第2フラグ符号化ステップとを含み、
     前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える
     画像符号化方法。
  2.  前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記直前の係数ブロックの算術符号化の際に生成された変数を用いて、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定する
     請求項1記載の画像符号化方法。
  3.  前記画像符号化方法は、さらに、
     前記処理対象の係数の絶対値が2より大きい場合に、前記処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い二値化し、
     前記二値化パラメータは、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定され、
     前記変数は、前記二値化パラメータである
     請求項2記載の画像符号化方法。
  4.  前記閾値は1である
     請求項1記載の画像符号化方法。
  5.  算術復号を用いる画像復号方法であって、
     処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術復号する第1フラグ復号ステップと、
     前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術復号する第2フラグ復号ステップとを含み、
     前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術復号に使用するコンテキストを切り替える
     画像復号方法。
  6.  前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記直前の係数ブロックの算術復号の際に生成された変数を用いて、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定する
     請求項5記載の画像復号方法。
  7.  前記画像復号方法は、さらに、
     前記処理対象の係数の絶対値が2より大きい場合に、前記処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い多値化し、
     前記二値化パラメータは、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定され、
     前記変数は、前記二値化パラメータである
     請求項6記載の画像復号方法。
  8.  前記閾値は1である
     請求項5記載の画像復号方法。
  9.  算術符号化を用いる画像符号化装置であって、
     制御回路と、
     前記制御回路からアクセス可能な記憶装置とを備え、
     前記制御回路は、
     処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術符号化する第1フラグ符号化ステップと、
     前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術符号化する第2フラグ符号化ステップとを実行し、
     前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える
     画像符号化装置。
  10.  算術復号を用いる画像復号装置であって、
     制御回路と、
     前記制御回路からアクセス可能な記憶装置とを備え、
     前記制御回路は、
     処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術復号する第1フラグ復号ステップと、
     前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術復号する第2フラグ復号ステップとを実行し、
     前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術復号に使用するコンテキストを切り替える
     画像復号装置。
  11.  請求項9記載の画像符号化装置と、
     請求項10記載の画像復号装置とを備える
     画像符号化復号装置。
PCT/JP2013/003607 2012-06-22 2013-06-07 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置 WO2013190796A1 (ja)

Priority Applications (13)

Application Number Priority Date Filing Date Title
EP13807769.8A EP2866444B1 (en) 2012-06-22 2013-06-07 Image encoding method, image decoding method, image encoding device, image decoding device
CA2875196A CA2875196C (en) 2012-06-22 2013-06-07 Coding of video using greater-than flags and coefficient values of a previous block to determine contexts for arithmetic coding of a current block
BR112014031146-3A BR112014031146B1 (pt) 2012-06-22 2013-06-07 Método de codificação de imagem que usa codificação aritmética, método de decodificação de imagem usa decodificação aritmética, aparelho de codificação de imagem e aparelho de decodificação de imagem
KR1020207002807A KR102163398B1 (ko) 2012-06-22 2013-06-07 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치 및 화상 부호화 복호 장치
AU2013278760A AU2013278760B2 (en) 2012-06-22 2013-06-07 Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
SG11201408361TA SG11201408361TA (en) 2012-06-22 2013-06-07 Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
KR1020147034952A KR102073399B1 (ko) 2012-06-22 2013-06-07 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치 및 화상 부호화 복호 장치
JP2014513833A JP5603525B2 (ja) 2012-06-22 2013-06-07 画像符号化方法、及び画像符号化装置
MX2014014880A MX339710B (es) 2012-06-22 2013-06-07 Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
RU2014150558A RU2635895C2 (ru) 2012-06-22 2013-06-07 Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения
CN201380031036.XA CN104350747B (zh) 2012-06-22 2013-06-07 图像解码方法、图像解码装置及图像编解码装置
AU2017200514A AU2017200514B2 (en) 2012-06-22 2017-01-25 Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
AU2018282369A AU2018282369B2 (en) 2012-06-22 2018-12-20 Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261663121P 2012-06-22 2012-06-22
US61/663,121 2012-06-22

Publications (1)

Publication Number Publication Date
WO2013190796A1 true WO2013190796A1 (ja) 2013-12-27

Family

ID=49768411

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/003607 WO2013190796A1 (ja) 2012-06-22 2013-06-07 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置

Country Status (15)

Country Link
US (4) US9264712B2 (ja)
EP (1) EP2866444B1 (ja)
JP (5) JP5603525B2 (ja)
KR (2) KR102073399B1 (ja)
CN (4) CN104350747B (ja)
AR (2) AR091537A1 (ja)
AU (3) AU2013278760B2 (ja)
BR (1) BR112014031146B1 (ja)
CA (1) CA2875196C (ja)
MX (1) MX339710B (ja)
MY (2) MY167469A (ja)
RU (2) RU2635895C2 (ja)
SG (2) SG10201505418UA (ja)
TW (1) TWI565297B (ja)
WO (1) WO2013190796A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9036710B2 (en) * 2012-03-08 2015-05-19 Blackberry Limited Unified transform coefficient encoding and decoding
MY167469A (en) * 2012-06-22 2018-08-29 Velos Media Int Ltd Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
KR20150116840A (ko) * 2013-01-02 2015-10-16 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US9794595B2 (en) 2014-03-18 2017-10-17 Qualcomm Incorporated Derivation of end of sequence NAL unit information for multi-layer bitstreams
JP6797755B2 (ja) * 2017-06-20 2020-12-09 キヤノン株式会社 撮像装置、撮像装置の処理方法およびプログラム
CN111373753B (zh) * 2018-09-20 2023-09-08 Lg电子株式会社 变换因子级别编码方法及其装置
TW202046729A (zh) * 2019-04-24 2020-12-16 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置、編碼方法、及解碼方法
CN117640936A (zh) * 2019-07-12 2024-03-01 Lg电子株式会社 图像编码方法、图像解码方法、存储介质以及发送方法
CN114554899A (zh) 2019-10-18 2022-05-27 耐克创新有限合伙公司 具有绳锁的易进入的鞋类物品
CN111464750B (zh) * 2020-05-14 2021-07-23 中央民族大学 一种图像处理装置及智能车
CN116095329A (zh) * 2021-02-21 2023-05-09 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备
WO2023166888A1 (ja) * 2022-03-03 2023-09-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法、符号化方法、復号装置及び符号化装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007142637A (ja) * 2005-11-16 2007-06-07 Matsushita Electric Ind Co Ltd 画像情報符号化装置
JP2012023613A (ja) * 2010-07-15 2012-02-02 Mitsubishi Electric Corp 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
JP3959039B2 (ja) * 2003-02-28 2007-08-15 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
KR100612015B1 (ko) * 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
CN1922885A (zh) * 2004-08-05 2007-02-28 松下电器产业株式会社 图象解码装置和图象编码装置
CN102752590A (zh) * 2004-11-09 2012-10-24 松下电器产业株式会社 转换成中间格式的两步算术解码
KR100763196B1 (ko) 2005-10-19 2007-10-04 삼성전자주식회사 어떤 계층의 플래그를 계층간의 연관성을 이용하여부호화하는 방법, 상기 부호화된 플래그를 복호화하는방법, 및 장치
CN100423582C (zh) * 2005-11-03 2008-10-01 浙江大学 一种用于将待编码数据进行二进制化编码的方法和装置
CN101106721A (zh) * 2006-07-10 2008-01-16 华为技术有限公司 一种编解码装置及相关编码器
US7365659B1 (en) * 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
JP2009231914A (ja) * 2008-03-19 2009-10-08 Sony Corp 復号装置、復号処理方法およびプログラム
JP2012023612A (ja) 2010-07-15 2012-02-02 Canon Inc 撮像装置及び撮像方法
CN101951516B (zh) * 2010-09-25 2013-06-05 清华大学 基于h.264/avc中cabac的并行编码实现电路及编码方法
US20130003858A1 (en) * 2011-06-30 2013-01-03 Vivienne Sze Simplified Context Selection For Entropy Coding of Transform Coefficient Syntax Elements
CN102256125B (zh) * 2011-07-14 2013-06-05 北京工业大学 面向高效视频编码hevc基于上下文的自适应算数编码方法
LT3166317T (lt) 2011-10-31 2018-09-10 Samsung Electronics Co., Ltd. Transformacijos koeficiento lygmens entropinio kodavimo ir dekodavimo konteksto modelio nustatymo būdas ir aparatas
US9088296B2 (en) * 2011-12-29 2015-07-21 Microsoft Technology Licensing, Llc Variable length coding and decoding using counters
US9036710B2 (en) * 2012-03-08 2015-05-19 Blackberry Limited Unified transform coefficient encoding and decoding
ES2729781T3 (es) * 2012-06-01 2019-11-06 Velos Media Int Ltd Dispositivo de decodificación aritmética, aparato de decodificación de imágenes, dispositivo de codificación aritmética y aparato de codificación de imágenes
MY167469A (en) * 2012-06-22 2018-08-29 Velos Media Int Ltd Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
RU2720534C2 (ru) * 2012-06-29 2020-04-30 ДжиИ Видео Компрешн, ЭлЭлСи Концепция потока видеоданных

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007142637A (ja) * 2005-11-16 2007-06-07 Matsushita Electric Ind Co Ltd 画像情報符号化装置
JP2012023613A (ja) * 2010-07-15 2012-02-02 Mitsubishi Electric Corp 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 9th Meeting", HIGH EFFICIENCY VIDEO CODING (HEVC) TEXT SPECIFICATION DRAFT 7, 27 April 2012 (2012-04-27), Retrieved from the Internet <URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva /wgll/JCTVC-I1003-v5.zip>

Also Published As

Publication number Publication date
US9264712B2 (en) 2016-02-16
MX2014014880A (es) 2015-03-09
TWI565297B (zh) 2017-01-01
RU2017136413A3 (ja) 2019-02-08
SG11201408361TA (en) 2015-01-29
RU2017136413A (ru) 2019-02-08
CN107734344A (zh) 2018-02-23
MY193123A (en) 2022-09-26
AU2018282369A1 (en) 2019-01-17
JP7003100B2 (ja) 2022-01-20
AU2018282369B2 (en) 2020-09-10
BR112014031146A2 (pt) 2017-08-08
US20160050444A1 (en) 2016-02-18
EP2866444A1 (en) 2015-04-29
CN107809645A (zh) 2018-03-16
JP5603525B2 (ja) 2014-10-08
US20180167642A1 (en) 2018-06-14
JP2018157590A (ja) 2018-10-04
RU2635895C2 (ru) 2017-11-16
CA2875196A1 (en) 2013-12-27
AU2017200514B2 (en) 2018-12-06
AU2013278760A1 (en) 2014-12-11
CN107809645B (zh) 2021-12-03
CN107734344B (zh) 2021-06-29
MY167469A (en) 2018-08-29
CN104350747A (zh) 2015-02-11
KR102073399B1 (ko) 2020-02-05
RU2019103984A (ru) 2020-08-13
CN107749992B (zh) 2020-06-09
JP6145750B2 (ja) 2017-06-14
RU2680749C2 (ru) 2019-02-26
US20170094318A1 (en) 2017-03-30
MX339710B (es) 2016-06-07
CN104350747B (zh) 2017-11-21
EP2866444A4 (en) 2015-06-24
KR102163398B1 (ko) 2020-10-12
EP2866444B1 (en) 2022-04-13
JP2017147745A (ja) 2017-08-24
US20130343463A1 (en) 2013-12-26
TW201412125A (zh) 2014-03-16
KR20150024835A (ko) 2015-03-09
JPWO2013190796A1 (ja) 2016-02-08
JP6352488B2 (ja) 2018-07-04
AU2013278760B2 (en) 2016-10-27
JP6633136B2 (ja) 2020-01-22
KR20200013804A (ko) 2020-02-07
RU2014150558A (ru) 2016-08-10
SG10201505418UA (en) 2015-08-28
JP2020043610A (ja) 2020-03-19
JP2014225905A (ja) 2014-12-04
US9924202B2 (en) 2018-03-20
US10687084B2 (en) 2020-06-16
AU2017200514A1 (en) 2017-02-16
AR091537A1 (es) 2015-02-11
BR112014031146B1 (pt) 2023-05-16
CA2875196C (en) 2023-03-14
US9596487B2 (en) 2017-03-14
CN107749992A (zh) 2018-03-02
BR112014031146A8 (pt) 2018-02-06
AR113715A2 (es) 2020-06-03

Similar Documents

Publication Publication Date Title
JP7003100B2 (ja) 画像復号方法及び画像復号装置
JP6341426B2 (ja) 画像復号化方法および画像復号化装置
JP6384690B2 (ja) 画像符号化方法、画像符号化装置、画像復号方法及び画像復号装置
TWI554947B (zh) 動態圖像編碼方法、動態圖像編碼裝置、動態圖像解碼方法、及動態圖像解碼裝置
JP6210368B2 (ja) 画像復号方法および画像復号装置
JP6179813B2 (ja) 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置および画像符号化復号装置
WO2013175736A1 (ja) 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
JP6156723B2 (ja) 画像符号化方法、画像復号化方法、画像符号化装置および画像復号化装置
JP6717562B2 (ja) 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
RU2815733C1 (ru) Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения
RU2808610C1 (ru) Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения
RU2794163C2 (ru) Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения

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: 13807769

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014513833

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2875196

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: MX/A/2014/014880

Country of ref document: MX

ENP Entry into the national phase

Ref document number: 2013278760

Country of ref document: AU

Date of ref document: 20130607

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 20147034952

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: IDP00201407884

Country of ref document: ID

WWE Wipo information: entry into national phase

Ref document number: 2013807769

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2014150558

Country of ref document: RU

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112014031146

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112014031146

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20141212