WO2013061840A1 - バイトアラインメント装置及びバイトアラインメント方法 - Google Patents

バイトアラインメント装置及びバイトアラインメント方法 Download PDF

Info

Publication number
WO2013061840A1
WO2013061840A1 PCT/JP2012/076815 JP2012076815W WO2013061840A1 WO 2013061840 A1 WO2013061840 A1 WO 2013061840A1 JP 2012076815 W JP2012076815 W JP 2012076815W WO 2013061840 A1 WO2013061840 A1 WO 2013061840A1
Authority
WO
WIPO (PCT)
Prior art keywords
coefficient sequence
coefficient
byte alignment
block
sequence
Prior art date
Application number
PCT/JP2012/076815
Other languages
English (en)
French (fr)
Inventor
笠井 裕之
直史 宇地原
幸男 上原
Original Assignee
株式会社Gnzo
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Gnzo filed Critical 株式会社Gnzo
Priority to KR20147010898A priority Critical patent/KR20140098063A/ko
Priority to IN3190DEN2014 priority patent/IN2014DN03190A/en
Priority to EP12844450.2A priority patent/EP2773110A4/en
Priority to CN201280053102.9A priority patent/CN103907356A/zh
Priority to US14/354,915 priority patent/US20140269929A1/en
Priority to SG11201401801SA priority patent/SG11201401801SA/en
Publication of WO2013061840A1 publication Critical patent/WO2013061840A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to a technique for performing byte alignment on a bit stream obtained by variable-length coding a block coefficient sequence.
  • Video information editing processing includes, for example, video information recognition processing in a transmission path, single video editing processing, and multiple video combining processing.
  • Such video information editing processing may be performed not only by data center servers and personal computers, but also by personal mobile terminals, network home appliances, in-car audiovisual devices, routers in networks, and the like.
  • the editing process of video information is normally performed in units of MB groups (that is, MB lines composed of MBs, single MBs, groups of arbitrary MBs, and the like). Therefore, the video information editing process is performed in units of video bitstreams corresponding to the MB group.
  • MB means a macroblock.
  • the video bitstream is generated by variable-length coding a quantized block coefficient sequence. That is, the video bit stream corresponding to the MB group is generated as encoded information in bit units by variable length encoding of the block coefficient sequence belonging to the MB group. It is known that the bit stream generated in this way is not necessarily byte-delimited even if the video signal information (coefficient sequence information) to be encoded is byte-delimited information.
  • Patent Document 1 describes a method for byte-aligning a bit stream in units of frames using a slice header used in H.264 / AVC.
  • the technique of Patent Document 1 is based on the premise that the bit amount is adjusted in the slice header for the entire bit stream of the frame, byte alignment in an arbitrary MB group cannot be performed, and usage flexibility Lack.
  • there is an upper limit on the number of slice headers that can be inserted in one frame there is a problem that it is difficult to perform byte alignment in an MB group at an arbitrary location.
  • the present invention has been made in view of the above situation.
  • One of the objects of the present invention is to propose a technique capable of avoiding the shift calculation process in the bitstream extraction process and suppressing the processing load.
  • a more specific object of the present invention is to adjust the bit amount of the bit stream encoded in units of MB groups by adjusting the coefficient sequence of the blocks in the MB, and thereby generated from an arbitrary MB group. It is to provide a technique for byte-aligning a bitstream.
  • An apparatus for performing byte alignment on a bit stream obtained by variable-length coding a block coefficient sequence A reference coefficient sequence insertion unit, a desired increase bit amount calculation unit, an adjustment coefficient sequence search unit, and an adjustment coefficient sequence insertion unit,
  • the reference coefficient sequence insertion unit is configured to replace the adjustment coefficient sequence, which is a high-frequency component in the quantized block coefficient sequence, with a predetermined reference coefficient sequence
  • the desired increase bit amount calculation unit increases for byte alignment based on a code amount of a bit stream obtained by variable length encoding the block coefficient sequence in which the adjustment coefficient sequence is replaced with the reference coefficient sequence.
  • the adjustment coefficient string search unit is configured to search for an appropriate adjustment coefficient string to be replaced with the reference coefficient string based on the bit amount to be increased,
  • the byte alignment apparatus wherein the adjustment coefficient sequence insertion unit is configured to insert the searched adjustment coefficient sequence into a high frequency component corresponding to the reference coefficient sequence.
  • the guard coefficient insertion unit is configured to replace a coefficient located on the low frequency side by the first order from the high frequency component coefficient sequence in the block coefficient sequence with a guard coefficient,
  • the byte alignment apparatus according to claim 1, wherein the guard coefficient suppresses an influence on a code amount of the bitstream due to a value of a coefficient on a lower frequency side than the guard coefficient.
  • the adjustment coefficient sequence search unit is configured to search for the appropriate adjustment coefficient sequence based on factors affecting the code amount of the bit stream after variable length coding in addition to the bit amount to be increased.
  • the byte alignment apparatus according to item 1 or 2.
  • the search DB is configured to be able to search for the appropriate adjustment coefficient sequence based on factors affecting the bit amount to be increased and / or the code amount of the bit stream after variable length coding. 4.
  • the byte alignment apparatus according to any one of 1 to 3.
  • (Item 5) Comprising the byte alignment apparatus according to any one of items 1 to 4 and a variable-length encoding unit;
  • the variable length coding unit performs variable length coding on a coefficient sequence of an adjacent block adjacent to a target block to be subjected to byte alignment processing by the byte alignment device,
  • a bit stream generation device configured to limit a prediction mode in encoding the target block and / or to fix a coefficient value used for encoding.
  • the high-frequency component coefficient in the block coefficient sequence is an adjustment coefficient sequence for performing byte alignment in the bitstream after variable length coding
  • a guard coefficient is inserted in the coefficient on the low frequency side by the first order from the adjustment coefficient sequence
  • the guard coefficient is a data structure that suppresses an influence on a variable length coding condition due to a value of a low frequency component coefficient on a lower frequency side than the guard coefficient.
  • the computer program and / or data structure described above can be stored in an appropriate recording medium, for example, an electrical, magnetic, or optical medium, and used by a computer.
  • the recording medium may be a recording medium that can be used via a network, for example, on cloud computing.
  • FIG. 1A shows an adjustment target block in the first embodiment.
  • FIG. 5B shows the adjustment target block in the second embodiment and the restriction or fixing of the encoding mode related thereto.
  • This system includes an integer precision conversion unit 1, a quantization unit 2, a byte alignment processing unit 3, and a variable length encoding unit 4.
  • an integer precision conversion unit 1 a quantization unit 2
  • a byte alignment processing unit 3 a byte alignment processing unit 3
  • a variable length encoding unit 4 a variable length encoding unit 4.
  • the integer precision conversion unit 1 receives a block coefficient sequence (in the case of intra-frame coding) or a residual signal of the block coefficient sequence (in the case of inter-frame coding).
  • the block coefficient string and its residual signal are collectively referred to as a block coefficient string.
  • the integer precision conversion unit 1 converts an input value of real number precision to integer precision, which can be configured in the same manner as the implementation in the conventional H.264, and thus detailed description thereof will be omitted.
  • the quantization unit 2 is a functional element that quantizes the block coefficient sequence subjected to integer precision conversion. Since the quantization unit 2 can also be configured in the same manner as in the conventional H.264 implementation, a detailed description thereof will be omitted.
  • the byte alignment processing unit 3 is a functional element corresponding to one embodiment of the byte alignment apparatus of the present invention.
  • the byte alignment processing unit 3 of the present embodiment includes a reference coefficient sequence insertion unit 31, a desired increased bit amount calculation unit 32, an adjustment coefficient sequence search unit 33, and an adjustment coefficient sequence insertion unit 34.
  • a guard coefficient insertion unit 35 and a search DB 36 are provided.
  • the reference coefficient sequence insertion unit 31 is configured to replace a coefficient sequence for adjustment (tail Coeff described later), which is a high-frequency component in the quantized block coefficient sequence, with a predetermined reference coefficient sequence.
  • the desired increase bit amount calculation unit 32 increases for byte alignment based on the code amount of the bit stream obtained by variable length encoding the block coefficient sequence in which the adjustment coefficient sequence is replaced with the reference coefficient sequence. In this configuration, the amount of bits to be calculated is calculated.
  • the adjustment coefficient string search unit 33 is configured to search for an appropriate adjustment coefficient string to be replaced with the reference coefficient string (high frequency component coefficient string) based on the bit amount to be increased. Furthermore, the adjustment coefficient string search unit 33 according to the present embodiment performs an appropriate adjustment coefficient string based on factors (described later) that affect the code amount of the bit stream after variable length coding in addition to the bit amount to be increased. Is configured to search.
  • the adjustment coefficient sequence insertion unit 34 is configured to insert the searched adjustment coefficient sequence into a high frequency component corresponding to the reference coefficient sequence.
  • the guard coefficient insertion unit 35 is configured to replace a coefficient located on the lower frequency side by the first order than the high frequency component coefficient string in the block coefficient string with a guard coefficient (hereinafter also referred to as GuardCoeff).
  • a fixed coefficient value (a coefficient having an absolute value of 2 or more in this example) is inserted into GuardCoeff.
  • the guard coefficient is to suppress the influence on the code amount of the bit stream due to the value of the coefficient on the lower frequency side than the guard coefficient (described later). It is assumed that the position of the guard coefficient is already known when the guard coefficient is inserted. The search for the position of the guard coefficient will be described later.
  • the search DB 36 is configured to be able to search for an appropriate adjustment coefficient sequence based on factors that affect the bit amount to be increased and / or the code amount of the bit stream after variable length coding.
  • the search DB 36 of the present embodiment has a table structure (see FIG. 3), but the DB structure is not particularly limited.
  • the search DB may be referred to as a search table.
  • some of the parameters that affect the bitstream code amount are used as search keys of the search table, and the remaining parameters are fixed values.
  • variable length coding unit 4 is a functional element that performs variable length coding on the coefficient sequence of each block.
  • variable length encoding unit 4 is described as follows: “When a coefficient sequence of an adjacent block adjacent to a target block that is a target of byte alignment processing by the byte alignment device is variable length encoded, The configuration is such that the prediction mode is limited and / or the coefficient value used for encoding is fixed. Except for this point, the variable length coding unit 4 of the present embodiment can be configured in the same manner as the variable length coding unit using CAVLC (Context-Adaptive-Variable-Length-Coding) in H.264, for example.
  • CAVLC Context-Adaptive-Variable-Length-Coding
  • variable length coding unit 4 of the present embodiment The detailed configuration of the variable length coding unit 4 of the present embodiment will also be described later as the operation of the present embodiment.
  • an MB group that is subject to byte alignment is an MB line configured by arranging MBs in a line.
  • the block subjected to coefficient adjustment is the final block of the final MB in the MB line (see FIG. 9B).
  • Steps SA-1 to 3 in FIG. 4 First, an input of a video signal before encoding is received, and the coefficient sequence is converted to integer precision. Further, the coefficient sequence converted to integer precision is quantized. Since the processing up to this point may be the same as that of normal H.264, detailed description is omitted.
  • Steps SA-4 to 5 in FIG. 4 Next, the procedure of byte alignment processing using the byte alignment processing unit 3 of this embodiment will be described with further reference to FIG.
  • Step SB-0 in FIG. 5 The variable-length encoding unit 4 performs variable-length encoding on “each block excluding the block (target block) whose coefficient sequence is adjusted”. Based on the total number of bits of the bit stream obtained as a result, the bit amount of the bit stream of the MB line excluding the target block can be obtained. By adding this bit amount and the code amount of the bit stream obtained by encoding the target block coefficient sequence, the code amount of the bit stream of the entire MB line can be acquired. This code amount is a reference for byte alignment processing.
  • Step SB-1 in FIG. 5 the byte alignment processing unit 3 acquires from the quantization unit 2 a block coefficient sequence that has been subjected to quantization processing for the target block.
  • a frame 100 constituting one image is composed of a plurality of MB lines 101 to 10n, and each MB line is composed of a plurality of MBs (see FIG. 6A). .
  • Each MB is composed of a plurality of blocks (see FIG. 6B).
  • each block is formed of 4 ⁇ 4 pixels.
  • indexes 1 to 16 are assigned to each block.
  • the quantized coefficient value corresponding to each index can be specified by quantization.
  • a coefficient sequence in the block can be generated (see FIG. 6D).
  • the numbers shown in FIG. 6 (d) indicate coefficient indices, and do not indicate coefficient values.
  • the 11th coefficient index is a guard coefficient which will be described later, and the coefficient string (hereinafter, right side in FIG. 6) with which the coefficient string on the higher frequency side (right side in FIG. 6) is replaced for adjustment.
  • the coefficient sequence on the lower frequency side (left side in FIG. 6) is a coefficient sequence indicating the signal content (hereinafter also referred to as LeftPartCoeff).
  • the index number of the block whose coefficient sequence is to be adjusted is 16 (see FIG. 6B).
  • the reference coefficient sequence insertion unit 31 replaces the above-described TailCoeff with a reference coefficient sequence (hereinafter also referred to as BaseCoeff) prepared in advance.
  • a value of (0,0,0,0,0) is used as the reference coefficient sequence. This is because in CAVLC, when a coefficient sequence of (0, 0, 0, 0, 0) is used, the bit amount after encoding can be minimized.
  • Step SB-3 in FIG. 5 it is confirmed whether or not the encoding of the block coefficient sequence is the first after replacing the initial TailCoeff. That is, the variable length coding of the block coefficient sequence is performed twice for byte alignment. The first time, the coefficient sequence in which TailCoeff is replaced with the reference coefficient sequence is variable-length encoded, and the second time, the coefficient sequence in which TailCoeff is replaced with the adjustment coefficient sequence is variable-length encoded. If the determination here is Yes, the process proceeds to step SB-4.
  • TailCoeff is replaced with BaseCoeff, and variable-length coding is performed by the variable-length coding unit 4 using the replaced coefficient sequence.
  • Steps SB-6 and SB-7 in FIG. 5 the desired increase bit amount calculation unit 32 sums the code amount of the target block obtained by variable length coding and the code amount obtained in step SB-0 (that is, the code amount obtained in step SB-0).
  • the code amount of the entire MB line) is set to X, and the remainder of X modulo 8, that is, X mod 8, is calculated. Then, the difference between this surplus amount and 8 is calculated. The result is a desired increase in the number of bits in the bitstream.
  • Step SB-8 in FIG. 5 Next, using the obtained desired increase amount and other coefficient characteristics, an adjustment coefficient sequence to be inserted into TailCoeff is searched and acquired from the search table 36. That is, in the search table 36, an appropriate adjustment coefficient sequence can be searched based on each factor affecting the increased bit amount (in this example, desired increased bit amount, LeftPartTotalCoeff, NeighborTotalCoeff). This search will be further described later.
  • guardIndex the position of the guard coefficient (that is, GuardIndex) is acquired when the search table shown in FIG. 8 is generated, which will also be described later.
  • Table 2 shows parameters that are factors for selecting a coding table in variable-length coding and measures in this embodiment.
  • Steps SB-3, SB-9, and SB-5 in FIG. 5 Next, the procedure returns to step SB-3, and then proceeds to step SB-9. Furthermore, the adjustment coefficient sequence insertion unit 34 inserts the adjustment coefficient sequence obtained from the search table into TailCoeff. Variable length coding is performed on the block coefficient sequence in which the adjustment coefficient sequence is inserted, and the obtained bit stream is output. By using the bit stream obtained in this way to construct a bit stream of MB lines, byte alignment can be executed.
  • byte alignment can be realized by simple means as described above. Furthermore, the above-described byte alignment process can be executed for a block belonging to an arbitrary MB.
  • guard coefficient is inserted into the block coefficient sequence, there is an advantage that the influence on the encoding condition can be suppressed even if TailCoeff is replaced with the adjustment coefficient sequence.
  • the value of the guard coefficient is 2 or 3. This point will be described later.
  • the CoeffToken parameter which is a combination of TotalCoeff and TrailingOnes, is also coded, and the code amount affects the code amount of the entire bit stream.
  • the guard coefficient By inserting the guard coefficient, it is possible to suppress the influence on the code amount of the CoeffToken parameter due to the change in TailCoeff.
  • the coding table of CoeffToken is determined by the average value (NeighborTotalCoeff) of the number of non-zero coefficients of adjacent blocks, even if the entire coefficient sequence is the same, the code amount of CoeffToken differs depending on NeighborTotalCoeff.
  • Step SA-6 in FIG. 4 a bit stream generated by variable length coding of the block coefficient sequence that has been subjected to byte alignment processing is output. Since these processes themselves may be the same as those in the prior art, detailed description is omitted.
  • Step SA-7 in FIG. 4 Search table generation procedure
  • guardCoeff is set to 2 or 3, and the absolute value A used below is 3 or less.
  • the guard coefficient position (GuardIndex) is an arbitrary value at this stage, but in this example, the bit amount increase / decrease value of 1 to 7 bits is verified sequentially from the high frequency side value (16 in this example). GuardIndex (11 in this embodiment) that can correspond to the above is found. In the following, these reasons will be supplemented.
  • the value of absolute value A in the numerical domain of TailCoeff should be 3 or less: (Reason) Since the coding table used for the level of LeftPartCoeff varies depending on the absolute value of TailCoeff, this setting value suppresses this. In the level coding table, the absolute value of the level value changes with 0, 3, 6, 12, 24, 48 as the threshold, so the coding table used for the level of LeftPartCoeff is independent of the adjustment of TailCoeff. In order to achieve this, the magnitudes of the absolute values of the coefficient values of TailCoeff must all be 3 or less of the threshold values.
  • GuardCoeff should be a coefficient with an absolute value of 2 or more (Reason)
  • the code amount of TrailingOnes, TrailingOnesFlag, and RunBefore parameters can be made independent by LeftPartCoeff and TailCoeff.
  • absolute values 0 and 1 there is a possibility that the coefficient of LeftPartCoeff is also targeted in the determination of TrailingOnes, TrailingOnesFlag, and RunBefore. Therefore, this can be suppressed by placing a coefficient of 2 or more in absolute value in GuardCoeff.
  • TailCoeff When using the pre-generated TailCoeff search table for the purpose of reducing processing load and speeding up as described later, it is necessary to generate TailCoeff that can adjust all 1 to 7 bits for any combination of inputs. Therefore, it can be said that 11 is preferable as the value of GuardIndex.
  • 1 2, 5, 6 bits can be adjusted when GuardIndex is 4, and 2, 3, 5, 7 bits are adjusted when GuardIndex is 5. It is also assumed that it can be adjusted. That is, the GuardIndex can be switched and used in accordance with the necessary adjustment bit amount. For this reason, as the setting value of GuardIndex, an appropriate value can be set according to the operation (implementation) method.
  • FixedTailTotalCoeff in this example is set to 2.
  • LeftPartTotalCoeff (see FIG. 7) is all set to zero.
  • LeftPartTotalCoeff can be arbitrarily set for creating a search table.
  • variable coefficient coding is performed on the block coefficient sequence for all combinations in the case where the integer value that is the absolute value A is each element of TailCoeff.
  • variable length coding is performed for all combinations from (-3, -3, -3, -3, -3) to (3,3,3,3,3), and the code amount at that time is ArrangeCodeSize.
  • the value of (ArrangeCodeSize ⁇ BaseCodeSize) mod 8 is set to IncreaseCodeSize.
  • TailCoeff (SC-8 in Fig. 8) It is determined whether there is a TailCoeff having the same TailTotalCoeff as the FixedTailTotalCoeff and satisfying all 1 to 7 bits of the IncreaseCodeSize. If the determination is yes, the process proceeds to step SC-9.
  • the value of FixedTailTotalCoeff is fixed to 2. That is, the adjustment coefficient string whose number of non-zero coefficients is other than 2 is discarded.
  • TailTotalCoeff is fixed to FixedTailTotalCoeff for the following reason. That is, the table for variable length coding (VLC table) varies depending on TailCoeff (other factors also exist).
  • TotalCoeff is the sum of LeftPartTotalCoeff, GuardTotalCoeff, and TailTotalCoeff, and GuardTotalCoeff is 1 in this example. Therefore, by fixing TailTotalCoeff, only the influence of LeftPartTotalCoeff has to be considered for TotalCoeff.
  • LeftPartTotalCoeff is an index of the search table.
  • step SC-8 If the determination in step SC-8 is No, the search table is discarded because it does not satisfy the condition that requires generation of TailCoeff that can adjust all 1 to 7 bits for any combination of inputs. Then, either GuardIndex or FixedTailTotalCoeff is reset. When resetting the GuardIndex, the GuardIndex value is decreased by one in this embodiment. By repeating this, an appropriate value of GuardIndex can be searched.
  • step SC-4 If the determination in step SC-4 is No, 1 is added to LeftPartTotalCoeff and the process returns to step SC-2. By repeating this, it is possible to generate corresponding search tables for all LeftPartTotalCoeffs.
  • the search table shown in FIG. 3 can be generated.
  • the block on which byte alignment is performed (that is, the target block) is the final block in the MB (see FIG. 9A).
  • the target block since there is no block that refers to the target block, there is no fear of image quality degradation due to reference mismatch even if the above-described coefficient sequence adjustment is performed.
  • the b11 block shown in FIG. 9B is an object of coefficient sequence adjustment. Then, for the blocks b12 (right adjacent), b15 (lower adjacent), and b16 (diagonally lower adjacent) adjacent to this, it is necessary to fix or limit the encoding mode as shown in FIG. 9B. . Further, the blocks b12 and b15 are encoded on the assumption that the TotalCoeff of b11 is a fixed value, thereby preventing inconsistencies in the encoding conditions. That is, in the example of FIG.
  • b12 prediction mode intra_4x4_Vertical b15 prediction mode: intra_4x4_Horizontal b16 prediction mode: prediction modes other than the following: intra_4x4_Diagonal_Down_Right ⁇ Intra_4x4_Vertical_Right ⁇ Intra_4x4_Horizontal_Down
  • b12 and b15 are encoded with reference to the TotalCoeff of b11, the totalCoeff of b11 is set at the time of encoding.
  • LeftPartTotalCoeff + 1 + TailTotalCoeff Is encoded as
  • each of the above-described components only needs to exist as a functional block, and does not have to exist as independent hardware.
  • a mounting method hardware or computer software may be used.
  • one functional element in the present invention may be realized by a set of a plurality of functional elements, and a plurality of functional elements in the present invention may be realized by one functional element.
  • each functional element constituting the present invention may exist in a discrete manner. If they exist in a discrete manner, necessary data can be transferred via a network, for example.
  • each function in each part can exist discretely.
  • each functional element in the present embodiment or a part thereof can be realized by using grid computing or cloud computing.

Abstract

 本発明は、ビットストリームをバイトアラインメントする技術を提供するためのものである。 量子化されたブロック係数列のうちの高周波成分である調整係数列を、既定の基準係数列に置換する。ついで、調整係数列が基準係数列に置換されたブロック係数列を可変長符号化して得られるビットストリームの符号量に基づいて、バイトアラインメントのために増加させるべきビット量を算出する。ついで、増加させるべきビット量に基づいて、基準係数列に置換されるべき適切な調整係数列を検索する。ついで、検索された調整係数列を基準係数列に対応する高周波成分に挿入する。

Description

バイトアラインメント装置及びバイトアラインメント方法
 本発明は、ブロック係数列を可変長符号化して得られるビットストリームに対してバイトアラインメントを行うための技術に関するものである。
 近年、様々な環境において、高品質な映像情報の編集処理が行われるようになった。映像情報の編集処理とは、例えば、伝送路中の映像情報の認識処理、単一映像の編集処理、複数の映像の合成処理などである。このような映像情報の編集処理は、データセンターのサーバや個人のパーソナルコンピュータだけでなく、個人が所有する携帯端末や、ネットワーク家電、自動車内オーディオビジュアル装置、ネットワーク内のルータ等で行われることが想定される。ここで、映像情報の編集処理は、通常、MB群(すなわち、MBで構成されるMBライン、単独のMB、任意のMBのグループなど)を単位として行われる。したがって、映像情報の編集処理は、MB群に対応する映像ビットストリームを単位として行われる。ここでMBはマクロブロックを意味する。
 一方、映像ビットストリームは、H.264の場合、量子化されたブロック係数列を可変長符号化することにより生成される。すなわち、MB群に対応する映像ビットストリームは、MB群に属するブロック係数列の可変長符号化により、ビット単位での符号化情報として生成される。このように生成されたビットストリームは、符号化の対象とした映像信号情報(係数列情報)がバイト区切りの情報であったとしても、必ずしもバイト区切りにはならないことが知られている。
 映像ビットストリームがバイト区切りでない場合は、映像ビットストリームのコピーやシークという、データ処理作業において、ビットシフト演算処理が必要となり、機器への負担が増えるという問題がある。
 下記特許文献1は、H.264/AVCで用いられるスライスヘッダを用いて、フレーム単位のビットストリームをバイトアラインメントする方法について述べている。しかしながら、特許文献1の技術では、フレームのビットストリーム全体を対象としたスライスヘッダでのビット量調整を前提とするため、任意のMB群におけるバイトアラインメントを行うことができず、使用上の柔軟性に欠ける。また、一つのフレームに挿入可能なスライスヘッダ数には上限があるため、任意の箇所のMB群においてバイトアラインメントすることは難しいという問題もある。
国際公開番号:WO2009/093647
 本発明は、前記の状況に鑑みてなされたものである。本発明の目的の一つは、ビットストリーム抽出処理におけるシフト演算処理を回避し、処理負荷を抑制することが可能な技術を提案することである。本発明のより具体的な目的は、MB中のブロックの係数列を調整することにより、MB群単位で符号化されるビットストリームのビット量を調整し、これによって、任意のMB群から生成されるビットストリームをバイトアラインメントする技術を提供することである。
 前記した課題を解決する手段は、以下の項目のように記載できる。
 (項目1)
 ブロック係数列を可変長符号化して得られるビットストリームに対してバイトアラインメントを行うための装置であって、
 基準係数列挿入部と、所望増加ビット量算出部と、調整係数列検索部と、調整係数列挿入部とを備えており、
 前記基準係数列挿入部は、量子化されたブロック係数列のうちの高周波成分である調整係数列を、既定の基準係数列に置換する構成となっており、
 前記所望増加ビット量算出部は、前記調整係数列が前記基準係数列に置換された前記ブロック係数列を可変長符号化して得られるビットストリームの符号量に基づいて、バイトアラインメントのために増加させるべきビット量を算出する構成となっており、
 前記調整係数列検索部は、前記増加させるべきビット量に基づいて、前記基準係数列に置換されるべき適切な調整係数列を検索する構成となっており、
 前記調整係数列挿入部は、検索された前記調整係数列を前記基準係数列に対応する高周波成分に挿入する構成となっている
 バイトアラインメント装置。
 (項目2)
 さらにガード係数挿入部を備えており、
 前記ガード係数挿入部は、前記ブロック係数列における前記高周波成分係数列よりも1次数だけ低周波側に位置する係数を、ガード係数に置換する構成となっており、
 前記ガード係数は、前記ガード係数よりも低周波側の係数の値による、前記ビットストリームの符号量への影響を抑制するものである
 項目1に記載のバイトアラインメント装置。
 (項目3)
 前記調整係数列検索部は、前記増加させるべきビット量に加えて、可変長符号化後のビットストリームの符号量に影響する要因に基づいて、前記適切な調整係数列を検索する構成となっている
 項目1又は2に記載のバイトアラインメント装置。
 (項目4)
 さらに検索DBを備えており、
 前記検索DBは、前記増加させるべきビット量、及び/又は、可変長符号化後のビットストリームの符号量に影響する要因に基づいて、前記適切な調整係数列を検索できる構成となっている
 項目1~3のいずれか1項に記載のバイトアラインメント装置。
 (項目5)
 項目1~4のいずれか1項に記載のバイトアラインメント装置と、可変長符号化部とを備えており、
 前記可変長符号化部は、前記バイトアラインメント装置によるバイトアラインメント処理の対象となる対象ブロックに隣接する隣接ブロックの係数列を可変長符号化する際には、
 前記対象ブロックの符号化における予測モードの制限、及び/又は、符号化に用いる係数値の固定を行う構成となっている
 ビットストリーム生成装置。
 (項目6)
 ブロック係数列を可変長符号化して得られるビットストリームに対してバイトアラインメントを行うために用いるビットストリーム生成方法であって、
 量子化されたブロック係数列のうちの高周波成分である調整係数列を、既定の基準係数列に置換するステップと、
 前記調整係数列が前記基準係数列に置換された前記ブロック係数列を可変長符号化して得られるビットストリームの符号量に基づいて、バイトアラインメントのために増加させるべきビット量を算出するステップと、
 前記増加させるべきビット量に基づいて、前記基準係数列に置換されるべき適切な調整係数列を検索するステップと、
 検索された前記調整係数列を前記基準係数列に対応する高周波成分に挿入するステップと
 を備える、ビットストリーム生成方法。
 (項目7)
 項目6に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
 (項目8)
 ブロック係数列によって構成されるデータ構造であって、
 前記ブロック係数列における高周波成分係数は、可変長符号化後のビットストリームにおけるバイトアラインメントを行うための調整係数列とされており、
 前記調整係数列よりも1次数だけ低周波側の係数には、ガード係数が挿入されており、
 前記ガード係数は、このガード係数よりも低周波側にある低周波成分係数の値による、可変長符号化条件への影響を抑制するものとなっている
 データ構造。
 なお、前記したコンピュータプログラム及び/又はデータ構造については、適宜な記録媒体、例えば、電気的、磁気的、あるいは光学的な媒体に格納して、コンピュータにより利用することができる。また、この記録媒体は、ネットワークを介して利用可能な、例えばクラウドコンピューティング上での記録媒体であってもよい。
 本発明によれば、任意のMB群から生成されるビットストリームをバイトアラインメントする技術を提供することができる。
本発明の第1実施形態におけるバイトアラインメント処理部を用いた符号化装置の概略的な構成を説明するためのブロック図である。 第1実施形態のバイトアラインメント処理部の概略的な構成を説明するためのブロック図である。 検索テーブルの構成を説明するための説明図である。 第1実施形態の符号化処理の全体的手順を説明するためのフローチャートである。 第1実施形態のバイトアラインメント処理の手順を説明するためのフローチャートである。 ブロック係数列について説明するための説明図である。 調整係数列の挿入について説明するための説明図である。 検索テーブルの生成手順を説明するためのフローチャートである。 第1実施形態のバイトアラインメント処理手順における符号化モードの制約ないし固定を説明するためのフローチャートである。図(a)は第1実施形態での調整対象ブロックを示す。図(b)は第2実施形態での調整対象ブロックと、これに関連する符号化モードの制限ないし固定を示す。
 以下、添付図面を参照しながら、本発明の第1実施形態に係る符号化システムについて説明する。
 (本実施形態の構成)
 まず、本実施形態の符号化システムが使用される符号化装置全体の概略的構成を、図1を参照しながら説明する。
 このシステムは、整数精度変換部1と、量子化部2と、バイトアラインメント処理部3と、可変長符号化部4とから構成されている。以下、各要素について説明する。
 (整数精度変換部)
 整数精度変換部1は、ブロック係数列(フレーム内符号化の場合)またはブロック係数列の残差信号(フレーム間符号化の場合)が入力されるものである。なお、この明細書では、ブロック係数列とその残差信号との両者を含めてブロック係数列と総称する。整数精度変換部1は、実数精度の入力値を整数精度に変換するものであり、これは、従来のH.264での実装と同様に構成できるので、これについての詳しい説明は省略する。
 (量子化部)
 量子化部2は、整数精度変換されたブロック係数列を量子化する機能要素である。この量子化部2も、従来のH.264での実装と同様に構成できるので、これについての詳しい説明は省略する。
 (バイトアラインメント処理部)
 バイトアラインメント処理部3は、本発明のバイトアラインメント装置の一実施形態に対応する機能要素である。
 本実施形態のバイトアラインメント処理部3は、図2に示すように、基準係数列挿入部31と、所望増加ビット量算出部32と、調整係数列検索部33と、調整係数列挿入部34と、ガード係数挿入部35と、検索DB36とを備えている。
 基準係数列挿入部31は、量子化されたブロック係数列のうちの高周波成分である調整用の係数列(後述のTailCoeff)を、既定の基準係数列に置換する構成となっている。
 所望増加ビット量算出部32は、調整用の係数列が基準係数列に置換された状態のブロック係数列を可変長符号化して得られるビットストリームの符号量に基づいて、バイトアラインメントのために増加させるべきビット量を算出する構成となっている。
 調整係数列検索部33は、増加させるべきビット量に基づいて、基準係数列(高周波成分係数列)に置換されるべき適切な調整係数列を検索する構成となっている。さらに、本実施形態の調整係数列検索部33は、増加させるべきビット量に加えて、可変長符号化後のビットストリームの符号量に影響する要因(後述)に基づいて、適切な調整係数列を検索する構成となっている。
 調整係数列挿入部34は、検索された調整係数列を、基準係数列に対応する高周波成分に挿入する構成となっている。
 ガード係数挿入部35は、ブロック係数列における高周波成分係数列よりも1次数だけ低周波側に位置する係数を、ガード係数(以下GuardCoeffということがある)に置換する構成となっている。GuardCoeffには固定係数値(本例では絶対値2以上の係数)を挿入する。ここで、ガード係数とは、ガード係数よりも低周波側の係数の値による、ビットストリームの符号量への影響を抑制するものである(後述)。ガード係数の位置は、ガード係数の挿入時には既に分かっているものとする。ガード係数の位置の探索については後述する。
 検索DB36は、増加させるべきビット量、及び/又は、可変長符号化後のビットストリームの符号量に影響する要因に基づいて、適切な調整係数列を検索できる構成となっている。本実施形態の検索DB36は、具体的にはテーブル構造となっている(図3参照)が、DBの構造には特に制約はない。本明細書では、検索DBを検索テーブルと称することがある。本実施形態では、ビットストリーム符号量に影響するパラメータの一部を検索テーブルの検索キーとし、残りのパラメータを固定値としている。
 本実施形態のバイトアラインメント処理部3の詳しい構成については、本実施形態の動作として後述する。
 (可変長符号化部)
 可変長符号化部4は、各ブロックの係数列に対して、可変長符号化を行う機能要素である。
 本実施形態の可変長符号化部4は、「バイトアラインメント装置によるバイトアラインメント処理の対象となる対象ブロックに隣接する隣接ブロックの係数列を可変長符号化する際には、対象ブロックの符号化における予測モードの制限、及び/又は、符号化に用いる係数値の固定を行う構成」となっている。この点を除き、本実施形態の可変長符号化部4は、例えばH.264における、CAVLC(Context Adaptive Variable Length Coding)を用いた可変長符号化部と同様に構成することができる。
 本実施形態の可変長符号化部4の詳しい構成についても、本実施形態の動作として後述する。
 (本実施形態におけるビットストリーム生成手順)
 以下、本実施形態におけるビットストリーム生成手順を、図4をさらに参照しながら説明する。なお、以下の例では、バイトアラインメントの対象となるMB群を、MBが一列に配置されて構成されたMBラインとする。また、本例において係数調整の対象とするブロックは、MBラインにおける最終MBの最終ブロックとする(図9(b)参照)。
 (図4のステップSA-1~3)
 まず、符号化前の映像信号の入力を受け付け、その係数列を整数精度に変換する。さらに、整数精度に変換された係数列を量子化する。ここまでの処理は通常のH.264と同様でよいので、詳しい説明は省略する。
 (図4のステップSA-4~5)
 ついで、本実施形態のバイトアラインメント処理部3を用いたバイトアラインメント処理の手順を、図5をさらに参照しながら説明する。
 (図5のステップSB-0)
 可変長符号化部4は、「係数列の調整を行うブロック(対象ブロック)を除く各ブロック」について、可変長符号化を行う。その結果得られるビットストリームの合計ビット数により、対象ブロックを除くMBラインのビットストリームのビット量を得ることができる。このビット量と、対象ブロック係数列の符号化によるビットストリームの符号量とを加算することにより、MBライン全体のビットストリームの符号量を取得することができる。この符号量が、バイトアラインメント処理の基準となる。
 (図5のステップSB-1)
 まず、バイトアラインメント処理部3は、量子化部2から、対象ブロックについての量子化処理が行われたブロック係数列を取得する。ここで、ブロック係数列の例を、図6を参照しながら補足して説明する。H.264では、1枚の画像を構成するフレーム100が、複数のMBライン101~10nで構成されており、各MBラインは、複数のMBで構成されている(図6(a)参照)。そして、各MBは、複数のブロックにより構成されている(図6(b)参照)。H.264では、各ブロックは、4×4画素形成されている。図6では、各ブロックに1~16のインデックスを付している。そして、量子化により、各インデックスに対応する量子化された係数値を特定することができる。このような各インデックスの係数値を、ジグザグスキャン(図6(c)参照)することによって、ブロックにおける係数列を生成することができる(図6(d)参照)。図6(d)に示す数字は、係数のインデックスを示しており、係数値を示すものではない。図6(d)において、11番の係数インデックスが、後述するガード係数となっており、それよりも高周波側(図6において右側)の係数列が、調整のために置換される係数列(以下TailCoeffということがある)であり、それよりも低周波側(図6において左側)の係数列が、信号の内容を示す係数列(以下LeftPartCoeffということがある)である。なお、本例において係数列を調整する対象となるブロックのインデックス番号は16である(図6(b)参照)。
 (図5のステップSB-2)
 ついで、基準係数列挿入部31は、前記したTailCoeffを、予め準備しておいた基準係数列(以下BaseCoeffということがある)に置換する。本実施形態では、基準係数列として、(0,0,0,0,0)という値が用いられている。これは、CAVLCにおいては、(0,0,0,0,0)という係数列を用いたときに、符号化後のビット量を最小とすることができるためである。
 (図5のステップSB-3)
 ついで、当該ブロック係数列の符号化が、初期のTailCoeffを置換した後の最初のものであるかどうかを確認する。すなわち、当該ブロック係数列の可変長符号化は、バイトアラインメントのために2度行われる。1度目は、TailCoeffを基準係数列で置き換えた係数列を可変長符号化し、2度目は、TailCoeffを調整係数列で置き換えた係数列を可変長符号化する。ここでの判定がYesであればステップSB-4に進む。
 (図5のステップSB-4及びSB-5)
 ついで、TailCoeffをBaseCoeffに置換し、置換後の係数列を用いて、可変長符号化部4により可変長符号化を行う。
 (図5のステップSB-6及びSB-7)
 つぎに、所望増加ビット量算出部32は、可変長符号化により得られた対象ブロックの符号量と、ステップSB-0で取得していた符号量とを合計して得られた符号量(つまりMBライン全体の符号量)をXとし、8を法とするXの剰余量、つまりX mod 8を計算する。そして、この剰余量と8との差を算出する。その結果が、ビットストリームのビット数についての所望増加量となる。
 (図5のステップSB-8)
 ついで、得られた所望増加量と、他の係数特性とを用いて、検索テーブル36から、TailCoeffに挿入されるべき調整係数列を検索して取得する。すなわち、検索テーブル36においては、増加ビット量に影響する各要因(本例では所望増加ビット量、LeftPartTotalCoeff、NeighborTotalCoeff)に基づいて、適切な調整係数列を検索できるようになっている。この検索についてはさらに後述する。
 なお、ガード係数の位置(つまりGuardIndex)は、図8に示す検索テーブルの生成時に取得されるが、これについても後述する。
 ここで、係数列の説明に用いられる用語について、下記表1に示す。
Figure JPOXMLDOC01-appb-T000001
 また、可変長符号化における符号化テーブルの選択要因となるパラメータと、本実施形態における措置とを下記表2に示す。
Figure JPOXMLDOC01-appb-T000002
 (図5のステップSB-3,SB-9,SB-5)
 ついで、手順は再びステップSB-3に戻り、その後ステップSB-9に進む。さらに、調整係数列挿入部34は、検索テーブルから得られた調整係数列を、TailCoeffに挿入する。調整係数列が挿入されたブロック係数列に対して可変長符号化を行い、得られたビットストリームを出力する。このようにして得られたビットストリームを用いて、MBラインのビットストリームを構成することにより、バイトアラインメントを実行することができる。
 本実施形態では、前記のようにして、バイトアラインメントを、簡便な手段で、実現することができる。さらに、任意のMBに属するブロックを対象として、前記したバイトアラインメントの処理を実行することができる。
 また、本実施形態では、ブロック係数列にガード係数を挿入したので、TailCoeffを調整係数列に置換しても、符号化条件への影響を抑制できるという利点もある。ただし、CAVLCを前提にすると、ガード係数の値は2又は3となる。この点は後述する。
 ここで、ガード係数挿入の利点について補足説明する。
 実際の可変長符号化の際には、TotalCoeffとTrailingOnesの組合せであるCoeffTokenパラメータも符号化されるので、その符号量が全体ビットストリームの符号量に影響する。ガード係数挿入により、TailCoeffの変更によるCoeffTokenパラメータの符号量への影響を抑制することができる。但し、CoeffTokenの符号化テーブルは、隣接ブロックの非ゼロ係数個数の平均値(NeighborTotalCoeff)により決定するため、係数列全体が同一でも、NeighborTotalCoeffに応じてCoeffTokenの符号量は異なる。よって、あるLeftPartCoeffに対してあるビット量増加を実現するTailCoeffが存在する場合でも、NeighborTotalCoeffが異なると、同一のTailCoeffであっても、所望のビット量増加を実現することは出来ない。以上から、NeighborTotalCoeffが同じ(CoeffTokenを符号化するテーブルが同じ)であるならば、上記パラメータ設定により、LeftPartCoeffとTailCoeffを独立に考えることが可能となり、TailCoeffの係数列調整によって、それ以外の係数列(LeftPartCoeff,GuardCoeff)の符号化に影響を与えることなく1から7ビットの増加量を制御することが可能となる。
 (図4のステップSA-6)
 ついで、バイトアラインメント処理が行われたブロック係数列の可変長符号化により生成されたビットストリームを出力する。これらの処理自体は従来と同様でよいので、詳しい説明は省略する。
 (図4のステップSA-7:検索テーブル生成手順)
 次に、図8を参照して、調整係数列を検索するための検索テーブルの生成手順について説明する。なお、検索テーブルの生成は、前記した調整係数列の検索よりも前に行われる。
 (図8のSC-1)
 まず、前提として、GuardCoeffの値は2又は3に設定し、以下で使用する絶対値Aは3以下とする。また、ガード係数の位置(GuardIndex)は、この段階では任意の値であるが、この例では高周波側の値(本例では16)から順次検証していき、1~7ビットのビット量増減値に対応できるGuardIndex(本実施形態では11)をみつける。以下、これらの理由を補足する。
 ・TailCoeffの数値定義域の絶対値Aの値を3以下とすること:
 (理由)TailCoeffの絶対値の大きさによって、LeftPartCoeffのLevelに使用される符号化テーブルが変化するため、本設定値によりこれを抑制する。Levelの符号化テーブルはレベル値の絶対値の大きさが0,3,6,12,24,48を閾値として変化するため、LeftPartCoeffのLevelに使用される符号化テーブルをTailCoeffの調整と無関係にするためには、TailCoeffの係数値の絶対値の大きさが全て、前記閾値のうち3以下である必要がある。
 ・GuardCoeffの値は、絶対値2以上の係数とすること
 (理由)本設定により、TrailingOnes, TrailingOnesFlag, RunBeforeパラメータの符号量をLeftPartCoeffとTailCoeffで独立することが出来る。絶対値0および1の場合、TrailingOnes, TrailingOnesFlag, RunBeforeの判定の際に、LeftPartCoeffの係数も対象とする可能性がある。そこで、GuardCoeffに絶対値2以上の係数を置くことでこれを抑制することができる。
 ・GuardIndexの値は11(最低 周波の係数インデックスを1とした場合)であること。
 (理由)この設定値は、以下の説明する検索テーブルの生成に伴って得られるものである。詳しくは図8に示す通りであるが、以下において、概要を説明する。すなわち、上記二つの条件である、GuardCoeffが2、絶対値Aが3以下という設定の下、ブロック係数列末尾(つまり右端)の位置からGuardIndexの探索を始める。この場合、いかなる入力の組み合わせに対しても、1から7ビット全ての調整が可能なTailCoeffを生成できるGuardIndexが、GuardIndex=11のとき初めて見つかる。後述する処理負荷軽減および高速化を目的とした、事前生成によるTailCoeff検索テーブルの使用時においては、いかなる入力の組み合わせに対しても、1から7ビット全ての調整が可能なTailCoeffの生成が必要となるため、 GuardIndexの値として11は好ましいと言える。但し、例えばある入力係数列に対しては、GuardIndex が4のときに、1, 2, 5, 6ビットを調整することができ、GuardIndex が5のときに、2, 3, 5, 7ビットを調整することができるということも想定される。つまり、必要な調整ビット量に応じて、GuardIndexを切り替えて使用することも可能である。このため、GuardIndexの設定値としては、運用(実装)方法によって適切な値を設定することができる。
 また、本例のFixedTailTotalCoeffは2に設定される。
 なお、以下ではまず、LeftPartTotalCoeff(図7参照)を全て0とする。ここでは、LeftPartTotalCoeffは、検索テーブル作成のために任意に設定できることが前提である。
 (図8のSC-2及びSC-3)
 LeftPartTotalCoeffの値が「0からLeftPartTotalCoeff がとりうる最大値(GuardIndex位置に依存する)まで」の全てのケースにおいて、調整係数列の生成を行うため、LeftPartTotalCoeffがGuardIndexよりも小さい場合は、非ゼロ係数個数がLeftPartTotalCoeffとなるようなLeftPartCoeffを適宜に設定し、CAVLCの既定のテーブルインデックスを0とする。なお、このインデックスの最大値は、CAVLCにおいて3である。
 (図8のSC-4及びSC-5)
 CAVLCのテーブルインデックスが4より小さいときは、TailCoeffにBaseCoeffを設定して、可変長符号化を行う。そして、この符号化後のビット量をBaseCodeSizeとする。
 (図8のSC-6)
 ついで、絶対値Aとなる整数値をTailCoeffの各要素とした場合の、すべての組み合わせについて、ブロック係数列を可変長符号化する。つまり、(-3,-3,-3,-3,-3)から、(3,3,3,3,3)までの全ての組み合わせについて可変長符号化を行い、そのときの符号量をArrangeCodeSizeとする。そして、(ArrangeCodeSize - BaseCodeSize) mod 8の値を、IncreaseCodeSizeとする。
 (図8のSC-7)
 ついで、IncreaseCodeSizeとTailCoeffで構成される組を出力する。
 (図8のSC-8)
 TailTotalCoeffがFixedTailTotalCoeffと同じで且つ、IncreaseCodeSizeの1~7ビット全てを満たすTailCoeffが存在するか判定する。判定がYesであればステップSC-9に進む。なお、本例では、FixedTailTotalCoeffの値は2に固定される。つまり、非ゼロ係数個数が2以外の調整係数列は破棄されることになる。ここで、TailTotalCoeffをFixedTailTotalCoeffに固定するのは、以下の理由による。すなわち、可変長符号化のためのテーブル(VLCテーブル)は、TailCoeffによって変わる(他の要因も存在する)。TotalCoeffは、LeftPartTotalCoeffとGuardTotalCoeffとTailTotalCoeffとの和であり、GuardTotalCoeffは本例では1になる。よって、TailTotalCoeffを固定することにより、TotalCoeffに関してはLeftPartTotalCoeffの影響だけを考慮すれば良い。LeftPartTotalCoeffは検索テーブルの索引となる。
 (図8のSC-9)
 ついで、IncreaseCodeSizeとTailCoeffで構成される組(調整係数列候補)が、IncreaseCodeSizeの1~7ビット各々において、複数ある場合には、画質劣化への影響を考慮し以下の基準のもと、一つの調整係数列を選択する。これらの基準を採用したのは、視覚的な影響をなるべく低減させるためである。
 ・係数列レベル値の加算合計が低い。
 ・係数がより高周波成分である。
 (図8のSC-10)
 ついで、LeftPartTotalCoeff, VLCTableIndex, IncreaseCodeSize, TailCoeffからなる組を、検索テーブルに登録する。
 (図8のSC-11)
 ついで、VLCのTableIndexに1を加えて、ステップSC-4に戻る。
 (図8のSC-12)
 ステップSC-8での判断がNoであれば、いかなる入力の組み合わせに対しても、1から7ビット全ての調整が可能なTailCoeffの生成を必要とする条件を満たしていないため、検索テーブルを破棄し、GuardIndex及びFixedTailTotalCoeffのいずれかを再設定する。GuardIndexの再設定を行う場合は、本実施形態では、GuardIndexの値を一つ少なくする。この繰り返しにより、GuardIndexの適切な値を探索することができる。
 (図8のSC-13)
 ステップSC-4での判断がNoであれば、LeftPartTotalCoeffに1を加えて、ステップSC-2に戻る。これを繰り返すことにより、全てのLeftPartTotalCoeffについて、対応した検索テーブルを生成することができる。
 以上の処理により、図3に示す検索テーブルを生成することができる。
 (第2実施形態)
 次に、第2実施形態に係るバイトアラインメント手順を、図9をさらに参照して説明する。
 前記した第1実施形態では、バイトアラインメントを行うブロック(つまり対象ブロック)を、MB中の最終ブロックとしていた(図9(a)参照)。この場合は、対象ブロックを参照するブロックがないので、前記した係数列調整を行なっても、参照不一致による画質劣化の恐れはない。
 しなしながら、仮に、最終ブロック以外のブロックをバイトアラインメントの対象とした場合には、このブロックを参照するブロックがあるために、参照情報の制限ないし固定が必要となる。ただし、これらの制限及び固定は、これらのブロックの符号化モードがintra 4x4である場合にのみ必要となる。
 以降の説明では、図9(b)に示すb11ブロックが係数列調整の対象であると仮定する。すると、これに隣接するb12(右隣接)、b15(下隣接)、b16(斜め下隣接)のブロックについては、図9(b)に示すような、符号化モードの固定ないし制限が必要となる。さらに、b12とb15のブロックについては、b11のTotalCoeffが固定値であると仮定して符号化を行い、符号化条件の不整合を防止している。つまり、図9(b)の例では、b11をビット量調整の対象ブロックとしたとき、
b12の予測モード:intra_4x4_Vertical
b15の予測モード:intra_4x4_Horizontal
b16の予測モード:下記以外の予測モード
・intra_4x4_Diagonal_Down_Right
・intra_4x4_Vertical_Right
・intra_4x4_Horizontal_Down
とする。さらに、b12とb15については、b11のTotalCoeffを参照して符号化を行うために、符号化時に、b11のTotalCoeffを
LeftPartTotalCoeff+1+TailTotalCoeff
として符号化する。
 なお、本発明は、前記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加え得るものである。
 例えば、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良く、本発明における複数の機能要素が一つの機能要素により実現されても良い。
 また、本発明を構成する各機能要素は、離散して存在しても良い。離散して存在する場合には、例えばネットワークを介して必要なデータを受け渡すことができる。各部の内部における各機能も、同様に、離散して存在することが可能である。例えば、グリッドコンピューティングやクラウドコンピューティングを用いて、本実施形態における各機能要素あるいはその一部分を実現することも可能である。

Claims (8)

  1.  ブロック係数列を可変長符号化して得られるビットストリームに対してバイトアラインメントを行うための装置であって、
     基準係数列挿入部と、所望増加ビット量算出部と、調整係数列検索部と、調整係数列挿入部とを備えており、
     前記基準係数列挿入部は、量子化されたブロック係数列のうちの高周波成分である調整係数列を、既定の基準係数列に置換する構成となっており、
     前記所望増加ビット量算出部は、前記調整係数列が前記基準係数列に置換された前記ブロック係数列を可変長符号化して得られるビットストリームの符号量に基づいて、バイトアラインメントのために増加させるべきビット量を算出する構成となっており、
     前記調整係数列検索部は、前記増加させるべきビット量に基づいて、前記基準係数列に置換されるべき適切な調整係数列を検索する構成となっており、
     前記調整係数列挿入部は、検索された前記調整係数列を前記基準係数列に対応する高周波成分に挿入する構成となっている
     バイトアラインメント装置。
  2.  さらにガード係数挿入部を備えており、
     前記ガード係数挿入部は、前記ブロック係数列における前記高周波成分係数列よりも1次数だけ低周波側に位置する係数を、ガード係数に置換する構成となっており、
     前記ガード係数は、前記ガード係数よりも低周波側の係数の値による、前記ビットストリームの符号量への影響を抑制するものである
     請求項1に記載のバイトアラインメント装置。
  3.  前記調整係数列検索部は、前記増加させるべきビット量に加えて、可変長符号化後のビットストリームの符号量に影響する要因に基づいて、前記適切な調整係数列を検索する構成となっている
     請求項1又は2に記載のバイトアラインメント装置。
  4.  さらに検索DBを備えており、
     前記検索DBは、前記増加させるべきビット量、及び/又は、可変長符号化後のビットストリームの符号量に影響する要因に基づいて、前記適切な調整係数列を検索できる構成となっている
     請求項1~3のいずれか1項に記載のバイトアラインメント装置。
  5.  請求項1~4のいずれか1項に記載のバイトアラインメント装置と、可変長符号化部とを備えており、
     前記可変長符号化部は、前記バイトアラインメント装置によるバイトアラインメント処理の対象となる対象ブロックに隣接する隣接ブロックの係数列を可変長符号化する際には、
     前記対象ブロックの符号化における予測モードの制限、及び/又は、符号化に用いる係数値の固定を行う構成となっている
     ビットストリーム生成装置。
  6.  ブロック係数列を可変長符号化して得られるビットストリームに対してバイトアラインメントを行うために用いるビットストリーム生成方法であって、
     量子化されたブロック係数列のうちの高周波成分である調整係数列を、既定の基準係数列に置換するステップと、
     前記調整係数列が前記基準係数列に置換された前記ブロック係数列を可変長符号化して得られるビットストリームの符号量に基づいて、バイトアラインメントのために増加させるべきビット量を算出するステップと、
     前記増加させるべきビット量に基づいて、前記基準係数列に置換されるべき適切な調整係数列を検索するステップと、
     検索された前記調整係数列を前記基準係数列に対応する高周波成分に挿入するステップと
     を備える、ビットストリーム生成方法。
  7.  請求項6に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
  8.  ブロック係数列によって構成されるデータ構造であって、
     前記ブロック係数列における高周波成分係数は、可変長符号化後のビットストリームにおけるバイトアラインメントを行うための調整係数列とされており、
     前記調整係数列よりも1次数だけ低周波側の係数には、ガード係数が挿入されており、
     前記ガード係数は、このガード係数よりも低周波側にある低周波成分係数の値による、可変長符号化条件への影響を抑制するものとなっている
     データ構造。
PCT/JP2012/076815 2011-10-28 2012-10-17 バイトアラインメント装置及びバイトアラインメント方法 WO2013061840A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR20147010898A KR20140098063A (ko) 2011-10-28 2012-10-17 바이트 얼라인먼트 장치 및 바이트 얼라인먼트 방법
IN3190DEN2014 IN2014DN03190A (ja) 2011-10-28 2012-10-17
EP12844450.2A EP2773110A4 (en) 2011-10-28 2012-10-17 BYTE ALIGNMENT DEVICE AND BYTE ALIGNMENT PROCESS
CN201280053102.9A CN103907356A (zh) 2011-10-28 2012-10-17 字节对齐装置以及字节对齐方法
US14/354,915 US20140269929A1 (en) 2011-10-28 2012-10-17 Byte Alignment Device and Byte Alignment Method
SG11201401801SA SG11201401801SA (en) 2011-10-28 2012-10-17 Byte alignment device, and byte alignment method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011236672A JP5685683B2 (ja) 2011-10-28 2011-10-28 バイトアラインメント装置及びバイトアラインメント方法
JP2011-236672 2011-10-28

Publications (1)

Publication Number Publication Date
WO2013061840A1 true WO2013061840A1 (ja) 2013-05-02

Family

ID=48167673

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/076815 WO2013061840A1 (ja) 2011-10-28 2012-10-17 バイトアラインメント装置及びバイトアラインメント方法

Country Status (8)

Country Link
US (1) US20140269929A1 (ja)
EP (1) EP2773110A4 (ja)
JP (1) JP5685683B2 (ja)
KR (1) KR20140098063A (ja)
CN (1) CN103907356A (ja)
IN (1) IN2014DN03190A (ja)
SG (1) SG11201401801SA (ja)
WO (1) WO2013061840A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105612756B (zh) 2013-08-08 2018-09-28 国立大学法人电气通信大学 数据处理装置、数据处理方法和计算机可读取的记录介质
CN107608714B (zh) * 2017-09-30 2020-06-30 广州酷狗计算机科技有限公司 字节对齐方法、装置及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160473A (ja) * 1993-10-25 1995-06-23 Digital Equip Corp <Dec> バイト整列式データ圧縮方法及び装置
JPH07222164A (ja) * 1994-02-02 1995-08-18 Matsushita Electric Ind Co Ltd ディジタルビデオ・ビットストリームコーダ
WO2009093647A1 (ja) 2008-01-24 2009-07-30 Nec Corporation 動画像ストリーム加工方法及び装置、それを用いた動画像再生装置並びに動画像配信装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150208A (en) * 1990-10-19 1992-09-22 Matsushita Electric Industrial Co., Ltd. Encoding apparatus
KR0128245B1 (ko) * 1992-10-07 1998-04-02 배순훈 화면 분할 기능을 갖는 디지탈 방식 고선명 텔레비젼
FR2722041B1 (fr) * 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
DE69612515T2 (de) * 1995-01-09 2001-08-23 Matsushita Electric Ind Co Ltd Digitale Kodierungsvorrichtung
JP3662129B2 (ja) * 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
JP3880597B2 (ja) * 1997-11-11 2007-02-14 松下電器産業株式会社 マルチメディア情報編集装置
AU777694B2 (en) * 2000-01-28 2004-10-28 Opentv, Inc. Interactive television system and method for simultaneous transmission and rendering of multiple MPEG-encoded video streams
JP2001285861A (ja) * 2000-03-29 2001-10-12 Mitsubishi Electric Corp 画像信号符号化装置
KR100992246B1 (ko) * 2001-11-22 2010-11-05 파나소닉 주식회사 부호화 방법 및 부호화 장치
JP2005102251A (ja) * 2004-10-18 2005-04-14 Ricoh Co Ltd 画像処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160473A (ja) * 1993-10-25 1995-06-23 Digital Equip Corp <Dec> バイト整列式データ圧縮方法及び装置
JPH07222164A (ja) * 1994-02-02 1995-08-18 Matsushita Electric Ind Co Ltd ディジタルビデオ・ビットストリームコーダ
WO2009093647A1 (ja) 2008-01-24 2009-07-30 Nec Corporation 動画像ストリーム加工方法及び装置、それを用いた動画像再生装置並びに動画像配信装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2773110A4 *

Also Published As

Publication number Publication date
EP2773110A1 (en) 2014-09-03
SG11201401801SA (en) 2014-08-28
EP2773110A4 (en) 2015-03-25
JP5685683B2 (ja) 2015-03-18
JP2013098596A (ja) 2013-05-20
IN2014DN03190A (ja) 2015-05-22
CN103907356A (zh) 2014-07-02
KR20140098063A (ko) 2014-08-07
US20140269929A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US7949195B2 (en) Per block breakpoint determining for hybrid variable length coding
EP2465268B1 (en) Method and apparatus for encoding and decoding mode information
JP5590133B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム
EP2575366B1 (en) Signaling of coding unit prediction and prediction unit partition mode for video coding
US8401321B2 (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
US9380320B2 (en) Frequency domain sample adaptive offset (SAO)
US7486212B2 (en) Variable length coding for sparse coefficients
CN101682773A (zh) 用于对视频数据进行熵编码和熵解码的方法和设备
EP2596634A1 (en) Video compression using multiple variable length coding methods for multiple types of transform coefficient blocks
EP1946246A2 (en) Extended amplitude coding for clustered transform coefficients
KR20130016133A (ko) Cabac / cavlc 엔트로피 코딩을 위한 통일된 이진화
JP2010087771A (ja) 画像符号化装置及び方法
US8938001B1 (en) Apparatus and method for coding using combinations
JP5685683B2 (ja) バイトアラインメント装置及びバイトアラインメント方法
US20080199088A1 (en) Losslessly improving compression of compressed image data
JP2010130522A (ja) 動画像符号化装置及び動画像符号化方法
Wang et al. Low complexity quantization in high efficiency video coding
CN116074499A (zh) 一种视频编解码方法及装置
JP6419934B2 (ja) 電子機器、符号化方法及びプログラム
JP2006279491A (ja) 画像符号化装置
JP6262381B2 (ja) 電子機器、復号方法及びプログラム
Gao et al. JPEG XR optimization with graph-based soft decision quantization
Lu et al. Simple approach to reduce the number of selected intra luminance prediction modes for RDO computation in AVS2
JP6262380B2 (ja) 電子機器、復号方法及びプログラム
JP2024515888A (ja) 複数シンボル算術コーディングのための方法、デバイス及び記憶媒体

Legal Events

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

Ref document number: 12844450

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2012844450

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012844450

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20147010898

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14354915

Country of ref document: US