JP2006197610A - 内容適応可変長符号化装置及び方法 - Google Patents

内容適応可変長符号化装置及び方法 Download PDF

Info

Publication number
JP2006197610A
JP2006197610A JP2006006503A JP2006006503A JP2006197610A JP 2006197610 A JP2006197610 A JP 2006197610A JP 2006006503 A JP2006006503 A JP 2006006503A JP 2006006503 A JP2006006503 A JP 2006006503A JP 2006197610 A JP2006197610 A JP 2006197610A
Authority
JP
Japan
Prior art keywords
coefficient
information
block
current block
overall
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
JP2006006503A
Other languages
English (en)
Inventor
Kyung-Koo Lee
慶 九 李
Jung-Sun Kang
禎 善 姜
Jin-Hyun Cho
眞 顯 趙
Seung-Sik Jun
承 植 全
Chang-Hyun Yim
昌 賢 林
Yun-Kyoung Kim
胤 京 金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2006197610A publication Critical patent/JP2006197610A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04HBUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
    • E04H12/00Towers; Masts or poles; Chimney stacks; Water-towers; Methods of erecting such structures
    • E04H12/02Structures made of specified materials
    • E04H12/12Structures made of specified materials of concrete or other stone-like material, with or without internal or external reinforcements, e.g. with metal coverings, with permanent form elements
    • 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
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B28/00Compositions of mortars, concrete or artificial stone, containing inorganic binders or the reaction product of an inorganic and an organic binder, e.g. polycarboxylate cements
    • C04B28/02Compositions of mortars, concrete or artificial stone, containing inorganic binders or the reaction product of an inorganic and an organic binder, e.g. polycarboxylate cements containing hydraulic cements other than calcium sulfates
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B41/00After-treatment of mortars, concrete, artificial stone or ceramics; Treatment of natural stone
    • C04B41/45Coating or impregnating, e.g. injection in masonry, partial coating of green or fired ceramics, organic coating compositions for adhering together two concrete elements
    • C04B41/50Coating or impregnating, e.g. injection in masonry, partial coating of green or fired ceramics, organic coating compositions for adhering together two concrete elements with inorganic materials
    • C04B41/5024Silicates
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B41/00After-treatment of mortars, concrete, artificial stone or ceramics; Treatment of natural stone
    • C04B41/45Coating or impregnating, e.g. injection in masonry, partial coating of green or fired ceramics, organic coating compositions for adhering together two concrete elements
    • C04B41/50Coating or impregnating, e.g. injection in masonry, partial coating of green or fired ceramics, organic coating compositions for adhering together two concrete elements with inorganic materials
    • C04B41/5025Coating or impregnating, e.g. injection in masonry, partial coating of green or fired ceramics, organic coating compositions for adhering together two concrete elements with inorganic materials with ceramic materials
    • C04B41/5041Titanium oxide or titanates
    • 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
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B2103/00Function or property of ingredients for mortars, concrete or artificial stone
    • C04B2103/54Pigments; Dyes
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B2111/00Mortars, concrete or artificial stone or mixtures to prepare them, characterised by specific function, property or use
    • C04B2111/20Resistance against chemical, physical or biological attack
    • C04B2111/2038Resistance against physical degradation
    • C04B2111/2061Materials containing photocatalysts, e.g. TiO2, for avoiding staining by air pollutants or the like

Landscapes

  • Chemical & Material Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Ceramic Engineering (AREA)
  • Materials Engineering (AREA)
  • Structural Engineering (AREA)
  • Inorganic Chemistry (AREA)
  • Organic Chemistry (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Wood Science & Technology (AREA)
  • Civil Engineering (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】係数をジグザグ方向の逆順に一回で判読して符号化に必要な係数情報を発生させる動作と、発生した係数情報に応答してビットデータを発生させる動作とを並列に行う内容適応可変長符号化装置及び方法を提供する。
【解決手段】映像データが変換された係数を所定サイズのマクロブロックに分割し、マクロブロックを複数のブロックに分割して、分割されたブロックの係数を内容適応可変長符号化する装置であって、情報発生制御信号に応答して現在判読される現在ブロックの係数の符号化に必要な係数情報を発生させる係数情報発生部と、ビット発生制御信号に応答して現在ブロック直前に判読された以前ブロックの係数情報に応答して、以前ブロックの係数を符号化するビットデータ発生部と、情報発生制御信号及びビット発生制御信号を発生させて、係数情報発生部とビットデータ発生部とが同時に動作するように制御する制御部と、を備える内容適応可変長符号化装置。
【選択図】 図2

Description

本発明は、内容適応可変長符号化に係り、画像データが変換された係数データを内容適応可変長符号化する装置及び方法に関する。
H.264、またはISO MPEG−4 Part 10などの標準動画圧縮技術で、動画の各画像データはそれぞれの画像間の情報を利用して係数データに変換された後に符号化される。
係数データの符号化は、可変長符号化(Variable Length Coding:VLC)方法のうち内容適応可変長符号化(Context Adaptive Variable Length Coding:CAVLC)方法によって行われる。
一般的にCAVLC方法などのVLC方法で、映像データは全体映像単位で処理されず、所定サイズのマクロブロックに分割されて処理される。
マクロブロックは、横方向にM画素、縦方向にN画素のサイズを持つ画素の集合単位(M×N)で表現される。一般的に動画符号化方法で、マクロブロックは16×16ピクセルのサイズを持つことができる。
一方、H.264、またはMPEG−4 Part 10などの標準動画圧縮技術で、CAVLC方法は、16×16サイズのマクロブロック単位で係数を符号化する。
さらに具体的に、CAVLC方法は、ブロックのDC係数を符号化するかどうかによってCAVLCモードを決定し、決定されたモードによってマクロブロックを所定サイズ(例えば、4×4)のブロック単位で分けて係数を内容適応可変符号化する。
図1は、従来技術によるCAVLC方法についてのフローチャートである。
まず、符号化しようとするブロック内の係数をジグザグ方向の順序に判読して全体係数(Total Coefficient:TC)を求めた後、所定の全体係数テーブルによって全体係数を符号化し、トレーリング1(Trailing 1:T1)を求める(S101)。
ここで、全体係数TCは、ブロックの係数のうち0でない係数の数であり、トレーリング1は、0でない係数のうちジグザグ方向の順序で最後に判読される連続的な+1、−1の係数(すなわち、絶対値が1である係数)の数である。この時、トレーリング1は3を超過できない。すなわち、連続的な+1、−1である係数が3個以上である場合、トレーリング1は3である。
また、所定の全体係数テーブルは、符号化しようとするブロックの全体係数と、符号化しようとするブロックと隣接した所定のブロック(例えば、左側及び上側のブロック)の全体係数とに応答して選択される。
全体係数を符号化してトレーリング1を求めた後には、トレーリング1に対応する係数の符号を符号化する(S103)。例えば、トレーリング1に対応する係数が+1である場合に符号(+)は0に符号化され、トレーリング1に対応する係数が−1である場合に符号(−)は1に符号化される。
トレーリング1の符号(Sign)を符号化した後に、符号化しようとするブロックの係数をジグザグ方向の逆順に判読して0でない係数(レベル値:LEVEL)を所定のレベルテーブルによって符号化する(S105)。
レベルを符号化した後に、全体0(total 0:T0)を符号化する(S107)。ここで、全体0は、ジグザグ方向にブロックの係数を判読する時、係数のうち最も最後に0でない係数以前に出る0である係数の総数である。
全体0を符号化した後に、ラン(RUN)を符号化する(S109)。ここで、ランは、ジグザグ方向にブロックの係数を判読する時、0でない係数と直前の0でない係数との間の0である係数の数である。したがって、ランは、あらゆるレベルに対して一つずつ発生する。
前述したように、従来のCAVLC方法は、ブロックの全体係数、トレーリング1、レベル、ラン、及び全体0を求め、これを符号化することによってブロックの係数を符号化する。
しかし、従来のCAVLC方法は、ブロックの全体係数、トレーリング1、全体0、レベル、及びランを求めるために、ブロックの係数をジグザグ方向とその逆方向に数回も判読せねばならないという問題点がある。また、従来のCAVLC方法は、ジグザグ方向とその逆方向に判読する度に符号化がなされるので、符号化に長時間がかかる問題点がある。
本発明が解決しようとする技術的課題は、係数をジグザグ方向の逆順に一回で判読して、符号化に必要な係数情報を発生させる動作と、発生した係数情報に応答してビットデータを発生させる動作とを並列に行うCAVLC装置を提供することにある。
本発明が解決しようとする他の技術的課題は、係数をジグザグ方向の逆順に一回で判読して、符号化に必要な係数情報を発生させる動作と、発生した係数情報に応答してビットデータを発生させる動作とを並列に行うCAVLC方法を提供することにある。
前記技術的課題を解決するための本発明の実施形態による符号化装置は、映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数をCAVLCし、係数情報発生部、ビットデータ発生部、制御部を備える。係数情報発生部は、情報発生制御信号に応答して現在判読される現在ブロックの係数の符号化に必要な係数情報を発生させる。ビットデータ発生部は、ビット発生制御信号に応答して前記現在ブロック直前に判読された以前ブロックの係数情報に応答して、前記以前ブロックの係数を符号化する。制御部は、前記情報発生制御信号及び前記ビット発生制御信号を発生させて、前記係数情報発生部と前記ビットデータ発生部とが同時に動作するように制御する。
前記他の技術的課題を解決するための本発明の実施形態による符号化方法は、映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数をCAVLCする方法において、現在判読される現在ブロックの係数をジグザグ方向の逆順に1回のみ判読して、前記現在ブロックの係数の符号化に必要な係数情報を発生させるステップと、所定の符号化テーブルによって前記現在ブロック直前に判読された以前ブロックの係数を符号化するステップと、を含む。前記係数情報を発生させるステップと前記係数を符号化するステップとは同時に行われる。
本発明の実施形態による符号化装置及び方法は、確率情報を利用して求めた映像データの変換係数を一回で判読して、符号化に必要な係数情報を発生させることによって、符号化に必要な係数情報を効率的に発生させる。
また、本発明の実施形態による符号化装置及び方法は、符号化に必要な係数情報を発生させる動作と、係数情報に応答してビットデータを発生させる動作とを並列に行うことによって、符号化に必要な時間を短縮して符号化を速かに行える。
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の望ましい実施形態を説明することによって、本発明を詳細に説明する。各図面に付された同一参照符号は同一部材を表わす。
図2は、本発明の実施形態によるCAVLC装置についてのブロック図である。
CAVLC装置200は、制御部210、係数情報発生部220、及びビットデータ発生部230を備え、全体係数保存部240及び係数情報保存部250をさらに備えることができる。
係数情報発生部220は、情報発生制御信号CD_CTRLに応答して動作する。係数情報発生部220は、現在判読される現在ブロックの係数COEFをジグザグ方向の逆方向に順に判読して、現在ブロックの係数COEFの符号化に必要な係数情報を発生させる。係数情報は、全体係数TC、トレーリング1 T1、ランRUN、レベルLEVEL、全体0 T0を備える。
ビットデータ発生部230は、ビット発生制御信号BD_CTRLに応答して動作する。ビットデータ発生部230は、現在ブロック直前に判読された以前ブロックの係数情報に応答して以前ブロックの係数を符号化して、符号化されたビット列BIT_STRMを出力する。
一方、係数情報発生部220が現在ブロックの係数を判読して現在ブロックの係数情報を発生させる間、ビットデータ発生部230は、以前ブロックの係数情報に応答して以前ブロックの係数を符号化する。すなわち、係数情報発生部220とビットデータ発生部230とは同時に並列的に動作する。
制御部210は、所定の制御信号CTRLに応答して係数情報発生部220を動作させる情報発生制御信号CD_CTRLと、ビットデータ発生部230を動作させるビット発生制御信号BD_CTRLとを発生させる。以下、図3を参照して制御部210の動作について詳細に説明する。
図3は、図2の制御部についてのブロック図である。
制御部210は、(ブロックの数+1)までカウントするカウンタ310及び制御信号発生部330を備える。カウンタ310は、マクロブロックに対する符号化を指示する制御信号CTRLに応答してリセットされて、所定の周期でカウントを始める。
ここで、所定の周期は、現在ブロックの係数がいずれも判読されて現在ブロックの係数情報が発生し、以前ブロックの係数情報に応答して以前ブロックの係数が符号化されるのに十分な時間でなければならない。
制御信号発生部330は、カウンタ310の出力に応答して情報発生制御信号CD_CTRL及びビット発生制御信号BD_CTRLを発生させる。
カウンタ310の最初のカウントで、制御信号発生部330は、情報発生制御信号CD_CTRLのみを発生させて、係数情報発生部220が最初のブロックに対して係数情報を生成するように制御する。
カウンタ310の二番目のカウントで、制御信号発生部330は、情報発生制御信号CD_CTRL及びビット発生制御信号BD_CTRLをいずれも発生させる。
すなわち、制御信号発生部330は、係数情報発生部220が現在ブロック、すなわち、二番目のブロックの係数情報を発生させるように制御すると同時に、ビットデータ発生部230が以前ブロック、すなわち、最初のブロックの係数情報に応答して最初のブロックの係数を符号化するように制御する。
カウンタ310の(ブロックの数)番目のカウントまで、制御信号発生部330は、情報発生制御信号CD_CTRLとビット発生制御信号BD_CTRLとをいずれも発生させる。
すなわち、制御信号発生部330は、係数情報発生部220が現在ブロックの係数情報を発生させるように制御すると同時に、ビットデータ発生部230が以前ブロック係数情報に応答して以前ブロックの係数を符号化するように制御する。
カウンタ310の(ブロックの数+1)番目のカウントで、制御信号発生部330はビット発生制御信号BD_CTRLのみを発生させて、ビットデータ発生部230が最後のブロックの係数情報に応答して最後のブロックの係数を符号化するように制御する。
また図2を参照すれば、全体係数保存部240は、以前マクロブロックで計算された所定の全体係数を保存する。全体係数保存部240に保存される全体係数は、以後に関連する部分で詳細に説明される。
係数情報保存部250は、係数情報発生部220で発生した係数情報を保存する。係数情報保存部250に保存される係数情報は、レベル値LEVEL、ランRUN、及びトレーリング1 T1である。
図4は、図2の係数情報発生部についてのブロック図である。以下、図4を参照して、係数情報発生部220が係数情報を発生させる動作について詳細に説明する。
係数情報発生部220は、係数判読部410、係数判定及び制御部430、係数情報生成部450、臨時保存部470、及び内部全体係数保存部490を備える。
係数判読部410は、係数保存部250に保存された現在ブロックの係数COEFをジグザグ方向の逆順に1回のみ判読して、判読された係数を一つずつ係数判定及び制御部430に伝送する。
従来のCAVLC方法と違って、本願発明の実施形態では、係数をジグザグ方向の逆方向に1回のみ判読することによって符号化にかかる時間を短縮させることができる。
係数判定及び制御部430は、順に判読されて伝送される係数に応答して係数情報を発生させるための臨時情報TMP_INFを発生させて臨時保存部470に伝送する。
臨時情報TMP_INFは、係数有効フラグ、累積された0でない係数の数を表わす全体係数臨時情報、0ではない係数を表わすレベル臨時情報、トレーリング1有効フラグ、累積された絶対値が1である係数の数を表わすトレーリング1臨時情報、及び累積された連続的な0である係数の数を表わすラン臨時情報を含む。
係数有効フラグ471は、0でない係数が判読されたことを表わす。すなわち、初めて0でない係数が判読されれば、係数有効フラグ471はセット状態になり、ブロック内のあらゆる係数が判読されれば、係数有効フラグ471はリセット状態になる。
全体係数臨時情報472は、順に判読される係数のうち0ではない係数の数が累積された情報である。したがって、ブロック内のあらゆる係数が判読されれば、全体係数臨時情報472は全体係数になる。
レベル臨時情報473は、0でない係数の、すなわち、更新して保存されるレベルである。
トレーリング1有効フラグ474は、初めて絶対値が1である係数が連続的に判読されたことを表わす。すなわち、絶対値が1である係数が初めて判読されれば、トレーリング1有効フラグ474はセット状態になる。以後、絶対値が1である係数が連続的に判読されれば、トレーリング1有効フラグ474はセット状態を維持するが、絶対値が1である係数が連続的に判読されなければ、トレーリング1有効フラグ474はリセット状態になる。
トレーリング1臨時情報475は、初めて判読される連続的に絶対値が1である係数の数が累積された情報である。したがって、ブロック内のあらゆる係数が判読されれば、トレーリング1臨時情報475に保存された値がトレーリング1となる。ただし、トレーリング1は3を超えられない。
ラン臨時情報476は、0でない係数間の連続的な0である係数の数、すなわち、ランが累積された情報である。一方、ランは、0ではない係数間の連続的な0である係数の数であるため、ランはレベルと共に更新されて保存される。ラン及びレベルが更新されて保存される過程については後述する。
係数情報生成部450は、臨時情報TMP_INFに応答して係数情報を生成する。
以下、図4を参照して、係数を判読して臨時情報TMP_INFを保存し、係数情報を生成する過程について詳細に説明する。
情報発生制御信号CD_CTRLに応答して、係数情報発生部220は、現在ブロックの係数を判読して係数情報を発生させるための動作を始める。まず、係数判読部410は、ジグザグ方向の逆方向に現在ブロックの係数を順に判読して係数判定及び制御部430に伝送する。
係数判定及び制御部430は、伝送された係数が0であるかどうかを判断して、0であれば、ラン臨時情報476の値を1増加させて、次に伝送された係数を判定する。
伝送された係数が0でなければ、全体係数臨時情報472の値を1増加させた後、再び伝送された係数の絶対値が1であるかどうかを判断する。伝送された係数の絶対値が1であれば、トレーリング1を計算するための過程を行った後、ラン及びレベルを計算するための過程を行う。一方、以下では、トレーリング1を計算するための過程について説明する。
伝送された係数の絶対値が1であれば、以前に絶対値が1の係数が伝送されたかどうかを判断する。以前に絶対値が1である係数が伝送されていなければ、伝送された係数は初めて絶対値が1である係数を意味するので、トレーリング1有効フラグ474をセット状態にした後、トレーリング1臨時情報475の値を1増加させる。
以前に絶対値が1である係数が伝送されたならば、絶対値が1である係数が連続的であるかどうかを判断しなければならないので、直前に伝送された係数の絶対値が1であるかどうかを判断する。直前に伝送された係数の絶対値が1でなければ、トレーリング1を計算する必要がないので、トレーリング1有効フラグ474をリセット状態にしてトレーリング1臨時情報475の値を維持させる。
直前に伝送された係数の絶対値が1であれば、絶対値が1である係数が連続的に判読された場合であるため、連続的な判読が初めてであるかどうかを判断しなければならない。したがって、トレーリング1有効フラグ474がセット状態であるかどうかを判断して、トレーリング1有効フラグ474がセット状態でなければ、トレーリング1臨時情報475の値を維持させる。
一方、トレーリング1有効フラグ474がセット状態であっても、トレーリング1は3を超過できない。したがって、トレーリング1有効フラグ474がセット状態である場合にも、再びトレーリング1臨時情報475が3より小さいかどうかを判断して、3より小さければ、トレーリング1臨時情報475の値を1増加させ、3より小さくなければ、トレーリング1臨時情報475の値を維持させる。
再び図4を参照すれば、伝送された係数の絶対値が1でなければ、トレーリング1有効フラグ474をリセット状態にし、以前に0でない係数が判読されたかどうかを判断してラン及びレベルを計算するための過程を行う。
以下、ラン及びレベルを計算する過程について説明する。
以前に0ではない係数が伝送されていなければ、伝送された係数は初めて0でない係数であることが分かる。このような場合、レベル臨時情報473は、保存されておらず、ラン臨時情報476は意味のない値である。
したがって、レベル臨時情報473は伝送された係数になり、ラン臨時情報476はリセットされる。また、係数有効フラグ471はセット状態になる。
一方、係数有効フラグ471がセット状態であれば、以前に0でない係数が伝送されたことを表わし、係数有効フラグ471がリセット状態であれば、以前に0でない係数が伝送されていないことを表わす。
以前に0でない係数が伝送されたならば、レベル臨時情報473は、以前に伝送された0でない係数であり、ラン臨時情報476は、以前に伝送された0ではない係数と伝送された係数との間に判読された0である係数の数が累積された値である。
したがって、係数情報生成部450は、レベル臨時情報473とラン臨時情報476とをそれぞれレベルとランとして係数情報保存部250に保存する。
図5は、ラン及びレベルが保存されるフォーマットを示す図である。
図5に示すように、レベルの符号及びレベル、そして、ランは係数情報保存部の0番目アドレスから順番に保存される。一方、全体係数は0ではない係数の数であるため、レベルが保存されるアドレスを利用して全体係数を知ることもできる。
また図4を参照すれば、レベル及びランとが保存された後、係数判定及び制御部430は、伝送された係数をレベルとしてレベル臨時情報473を更新し、ラン臨時情報476をリセットする。
伝送された係数についての判定が終われば、ブロックの係数がいずれも伝送されたかどうかを判断して、ブロックの係数がいずれも伝送されていなければ、次に伝送された係数について判定を反復する。
ブロックの係数がいずれも伝送されたならば、係数情報生成部450は、臨時保存部470に保存された臨時情報TMP_INFに応答して係数情報を生成する。
具体的に、係数情報生成部450は、レベル臨時情報473、ラン臨時情報476、及びトレーリング1臨時情報475をレベル、ラン、及びトレーリング1として係数情報保存部250に保存する。
また、係数情報生成部450は、全体係数臨時情報472を全体係数として内部全体係数保存部490に保存させた後、内部全体係数保存部490に保存された所定の他の全体係数と共にビット情報生成部230に伝送する。そして、係数情報生成部450は、ブロックの係数の数から全体係数を引いた値を全体0としてビット情報生成部230に伝送する。
以下では、係数情報生成部450が全体係数を内部全体係数保存部490に保存してビット情報生成部230に伝送する過程について説明する。
図6は、全体係数を発生させる時に利用される内部全体係数保存部490を説明するための図であって、一つのマクロブロックを構成するブロックを示す。
図6に示すように、本発明の実施形態で一つのマクロブロックは、映像データのルミナンスが変換された16個のブロック(ブロック1ないしブロック16)と、クロミナンスが変換された2対の4個のブロック(ブロック19ないしブロック22、及びブロック23ないしブロック26)を備える。
一方、ブロックのDCを別途に符号化するモードで、マクロブロックは、16個のルミナンスブロックのDCで構成されるブロック(ブロック0)と、クロミナンスブロックのDCで構成されるブロック(ブロック17、及びブロック18)とをさらに備えることができる。
ビットデータ発生部が以前ブロックの全体係数を符号化する時、以前ブロックの全体係数だけでなく以前ブロックの隣接したブロック(左側及び上側ブロック)の全体係数が必要である。
したがって、ブロックの係数がいずれも伝送された場合、係数情報生成部450は、現在ブロックの全体係数だけでなく隣接したブロックの全体係数を共にビットデータ発生部に伝送する。
例えば、図6でブロック7が現在ブロックである場合、係数情報生成部450は、ブロック7の全体係数だけでなくブロック4及びブロック5の全体係数を共にビットデータ発生部に伝送しなければならない。
したがって、係数情報生成部450は、それぞれのブロックの全体係数を発生させると同時に発生した全体係数を所定の順序で内部全体係数保存部490に保存して、現在ブロックの全体係数をビットデータ発生部に伝送する時、現在ブロックに隣接したブロックの全体係数を共に伝送させる。
図6を参照すれば、それぞれのブロックの全体係数が決定される度に左側バッファYL0ないしYL3、CbL0、CbL1、CrL0、及びCrL1と上側バッファYU0ないしYU3、CbU0、CbU1、CrU0、及びCrU1とに更新して保存することによって、現在ブロックに隣接したブロックの全体係数を伝送できるということが分かる。すなわち、内部全体係数保存部490は、それぞれのブロックの全体係数を更新して保存する左側バッファ及び上側バッファを備える。
具体的に例えば、ブロック5の全体係数が決定された場合、ブロック5の全体係数を左側バッファYL0及び上側バッファYU2に更新して保存する。同様に、ブロック6の全体係数が決定された場合、ブロック6の全体係数を左側バッファYL0及び上側バッファYU3に更新して保存する。
したがって、ブロック6まで全体係数が決定された場合に、左側バッファYL0と左側バッファYL1とにはそれぞれブロック6の全体係数とブロック4の全体係数とが保存される。また、上側バッファYU0、上側バッファYU1、上側バッファYU2、上側バッファYU3にはそれぞれブロック3、ブロック4、ブロック5、及びブロック6の全体係数が保存される。
したがって、現在ブロックの全体係数が決定されれば、係数情報生成部450は、現在ブロックの全体係数と共に現在ブロックの左側及び上側バッファに保存された値を内部全体係数保存部490から判読してビットデータ生成部に伝送する。その後、係数情報生成部450は、現在ブロックの全体係数を現在ブロックの左側及び上側バッファに更新して保存する。
例えば、ブロック13の全体係数が決定されれば、係数情報生成部450は、ブロック13の全体係数と共に左側バッファYL2及び上側バッファYU2に保存された値(すなわち、ブロック10の全体係数及びブロック7の全体係数)をビットデータ発生部に伝送する。その後、係数情報生成部450は、ブロック13の全体係数を左側バッファYL2及び上側バッファYU2に更新して保存する。
一方、マクロブロック内のあらゆるブロックに対する符号化が完了した場合には、次の右側マクロブロックに対する符号化が行われる。この時、左側バッファYL0ないしYL3、CbL0、CbL1、CrL0、CrL1に保存された値は次のマクロブロックでも使用できるが、上側バッファYU0ないしYU3、CbU0、CbU1、CrU0、CrU1に保存された値は使用できない。
したがって、次のマクロブロックの符号化のための上側バッファの値は別途に保存されなければならない。本発明の実施形態で、次のマクロブロックの符号化のための上側バッファの値は図2の全体係数保存部に保存される。
すなわち、マクロブロック内のあらゆるブロックに対する符号化が完了した後、係数情報生成部450は、上側バッファに保存された値を全体係数保存部に保存して、下方のマクロブロックの符号化時に利用可能にする。この時、上側バッファに保存された値は、ブロック11、12、15、16、21、22、25、及び26の全体係数である。
また、マクロブロック内のブロックについての符号化を始める時、係数情報生成部450は、上側マクロブロックのブロック11、12、15、16、21、22、25、及び26の全体係数を全体係数保存部から判読して上側ブロックに保存し、ブロックの係数の符号化化に利用可能にする。
ビットデータ発生部は、係数情報に応答して選択される所定のテーブルによってブロックの係数をビットデータに符号化する。
ビットデータ発生部は、所定の全体係数、すなわち、以前ブロックの全体係数及び以前ブロックの左側と上側とのブロックの全体係数に応答して、以前ブロックの全体係数を符号化する全体係数テーブルを選択し、全体係数を符号化する。
また、ビットデータ発生部は、係数情報保存部に保存されたレベルに応答してレベルを符号化するレベルテーブルを選択し、レベルを符号化する。この時、ビットデータ発生部は、絶対値が1であるレベルに対しては符号化しない。
また、ビットデータ発生部は、以前ブロックの全体係数に応答して全体0を符号化するテーブルを選択し、全体0を符号化する。また、ビットデータ発生部は、係数情報保存部に保存されたランを符号化する。
最後に、ビットデータ発生部は、符号化された値をビット列として出力する。
次いで、本発明の実施形態によるCAVLC方法について説明する。
本発明の実施形態によるCAVLC方法は、現在ブロックの係数情報を発生させる動作と以前ブロックの係数を符号化する動作とが同時に行われる。
すなわち、現在ブロックの係数をジグザグ方向の逆順に1回のみ判読して現在ブロックの係数の符号化に必要な係数情報を発生させると同時に、以前ブロックの係数情報に応答して所定の符号化テーブルを選択し、選択された所定の符号化テーブルによって以前ブロックの係数を符号化する。
ここで、係数情報は全体係数、トレーリング1、レベル、ラン、及び全体0である。
以下では、図7ないし図10を参照して本発明の実施形態によるCAVLC方法について詳細に説明する。
図7は、本発明の実施形態によるCAVLC方法で一つのブロックの係数情報を発生させる方法についてのフローチャートである。
まず、あらゆる係数情報をリセット状態にした後、現在ブロックの係数の判読を始める(S701)。現在ブロックの係数は、ジグザグ方向の逆方向に順に判読され、判読された順に係数情報発生過程に利用される。一方、本発明の実施形態で現在ブロックの係数は一回のみ判読される。
次いで、ランまたは全体係数を計算するために、判読された係数が0であるかどうかを判断する(S703)。もし判読された係数が0であれば、ランを1だけ増加させ(S705)、前記判読された係数が0でなければ、全体係数を1だけ増加させた後(S707)、判読された係数の絶対値が1であるかどうかを判断する(S709)。
判読された係数の絶対値が1であるかどうかを判断する過程は、トレーリング1を計算するための過程である。もし、判読された係数の絶対値が1でなければ、トレーリング1有効フラグ474をリセット状態にする(S711)。この時、トレーリング1有効フラグ474は、セット状態であってもよく、リセット状態であってもよい。したがって、トレーリング1有効フラグ474がセット状態であれば、リセット状態に転換させ、トレーリング1有効フラグ474がリセット状態であれば、リセット状態を維持する。
一方、判読された係数の絶対値が1であれば、トレーリング1を演算する(S713)。トレーリング1を演算する方法については、図8を参照して以後に説明する。
トレーリング1を演算するか、またはトレーリング1有効フラグ474をリセット状態にした後、係数有効フラグ471がセット状態であるかどうかを判断する(S715)。セット状態の係数有効フラグ471は、以前に0でない係数が判読されたことを表わし、リセット状態の係数有効フラグ471は、以前に0でない係数が判読されたことを意味する。
ブロックの係数情報を発生させる過程が始まる時に係数情報はリセットされるので、係数が判読される前に0でない係数が判読されたならば、係数有効フラグ471はセット状態である。しかし、係数が判読される前に0でない係数が判読されていなければ、係数有効フラグ471はリセット状態である。
したがって、係数有効フラグ471がセット状態ではなければ、係数有効フラグ471をセット状態にした後(S717)、レベルを判読された係数に更新して保存し、ランをリセット状態にする(S721)。
しかし、係数有効フラグ471が、セット状態であれば、レベル及びランを保存した後(S719)、レベルを判読された係数に更新し、保存してランをリセット状態にする(S721)。
次いで、現在ブロックの係数がいずれも判読されたかどうかを判断する(S723)。もし、現在ブロックの係数がいずれも判読されていなければ、現在ブロックの次の係数を判読した後(S725)、S703ないしS723過程を反復する。
一方、もし、現在ブロックの係数がいずれも判読されたならば、全体係数、トレーリング1、レベル、及びランを保存し、現在ブロックの係数の数と全体係数との差を求めて全体0を計算し、係数有効フラグ471をリセット状態にする(S727)。
図8は、本発明の実施形態によるCAVLC方法でトレーリング1を演算する方法についてのフローチャートである。
判読された係数の絶対値が1である場合、係数を判読する前に絶対値が1である係数が判読されたかどうかを判断する(S801)。もし、以前に絶対値が1である係数が判読されていなければ、判読された係数は初めて絶対値が1である係数であるため、トレーリング1有効フラグ474をセット状態にし(S803)、トレーリング1を1増加させる(S813)。
一方、もし、以前に絶対値が1である係数が判読されたならば、トレーリング1を増加させるかどうかを判断するために、係数を判読する直前に判読された係数の絶対値が1であるかどうかを判断する(S805)。
もし、直前に判読された係数の絶対値が1でなければ、トレーリング1でないので、トレーリング有効フラグをリセット状態にし(S807)、トレーリング1を維持する(S815)。
もし、直前に判読された係数の絶対値が1であれば、初めて絶対値が1である連続的な係数であるかどうかを判断するために、トレーリング1有効フラグ474がセット状態であるかどうかを判断する(S809)。もし、トレーリング1有効フラグ474がセット状態ではなければ、初めて絶対値が1である連続的な係数ではないので、トレーリング1を維持する(S815)。
しかし、もし、トレーリング1有効フラグ474がセット状態であれば、初めて絶対値が1である連続的な係数であるのでトレーリング1を増加させることができる。しかし、トレーリング1は3を超過できないので、現在トレーリング1が3より小さいかどうかを判断する(S811)。
最後に、現在トレーリング1が3より小さいならば、トレーリング1を1増加させ(S813)、現在トレーリング1が3より小さくなければ、現在トレーリング1は3であるため、現在トレーリング1を維持する。
一方、現在ブロックの全体係数を符号化するためには、現在ブロックの全体係数だけでなく現在ブロックの隣接したブロックの全体係数、すなわち、現在ブロックの左側及び上側ブロックの全体係数も必要である。
また図6に示すように、符号化しようとするマクロブロックの上側ブロック(ブロック1、2、5、6、19、20、23、24)の上側ブロックは、現在ブロックが含まれたマクロブロックの上側マクロブロックの下方ブロックである。
したがって、現在ブロックの全体係数を所定の内部メモリに更新して保存する必要があって、現在ブロックが含まれたマクロブロックの上側マクロブロックの下方ブロックの全体係数を別途に保存する必要がある。
本発明の実施形態で、内部メモリは内部全体係数保存部490であり、上側マクロブロックの下方ブロックの全体係数は全体係数保存部に保存されるが、本発明がこれに制限されるものではない。
一方、内部メモリは、マクロブロックの左側及び上側ブロックの全体係数それぞれに対する左側バッファ及び上側バッファを備える。それぞれのブロックの全体係数は、対応する左側バッファ及び上側バッファに更新されて保存される。
図9は、本発明の実施形態によるCAVLC方法で全体係数を保存する方法についてのフローチャートである。
マクロブロックに含まれたブロックの係数情報を発生させる時、まず現在ブロックが最初のブロックであるかどうかを判断する(S901)。もし、最初のブロックであれば、現在ブロックが含まれたマクロブロックの上側マクロブロックの下方ブロックの全体係数を判読して内部メモリの上側バッファに保存した後(S903)、現在ブロック、すなわち、最初のブロックの全体係数を計算する(S905)。一方、最初のブロックでなければ、現在ブロックの全体係数を計算する(S905)。
現在ブロックの全体係数が計算された後には、現在ブロックの全体係数を内部メモリ、すなわち、現在ブロックに対応する左側及び上側バッファに更新して保存し(S907)、全体係数が計算されたブロックがマクロブロックの最後のブロックであるかどうかを判断する(S909)。
全体係数が計算されたブロックがマクロブロックの最後のブロックでなければ、S901ないしS907段階を反復する。一方、全体係数が計算されたブロックがマクロブロックの最後のブロックであれば、内部メモリに保存された全体係数のうち所定の全体係数、すなわち、上側バッファに保存された全体係数を全体係数保存部に保存する(S911)。
図10は、本発明の実施形態によるCAVLC方法でビットデータを発生させる方法についてのフローチャートである。
以前ブロックの係数の符号化は、係数情報に応答して決定される所定のテーブルによって係数情報を順に符号化することによって行われる。
まず、以前ブロックの全体係数、及び以前ブロックに隣接したブロック(以前ブロックの左側及び上側ブロック)の全体係数に応答して全体係数テーブルを選択し、選択された全体係数テーブルによって以前ブロックの全体係数を符号化する(S1001)。
全体係数を符号化した後には、以前ブロックのレベルに応答してレベルテーブルを選択しつつ、選択されたレベルテーブルによって以前ブロックのレベルを符号化する(S1003)。この時、レベルのうち絶対値が1である係数に対するレベルは符号化されない。
レベルを符号化した後には、以前ブロックの全体係数に応答して選択される所定のテーブルによって以前ブロックの全体0を符号化し、最後にランを符号化する(S1005)。
当業者は、本発明が方法、データプロセシングシステム、及び/またはコンピュータプログラム製品で実現できるということが分かる。したがって、本発明は、すべてハードウェアで実現してもよく、すべてソフトウェアで実現してもよく、本明細書で、回路またはモジュールなどで一般的に参照されたあらゆるハードウェアとソフトウェアとの組み合わせで実現してもよい。また、本発明は、媒体内に実現されたコンピュータで使用可能なコードを持つコンピュータで読み取り可能な記録媒体上にコンピュータプログラム製品の形態で実現してもよい。コンピュータで読み取り可能な記録媒体は、ハードディスク、CD−ROM、光学保存装置、インターネットまたはイントラネットを支援するような伝送媒体、または磁気保存装置などが使用できる。
以上、本発明は、発明の実施形態によってフローチャート、及び/またはブロック図、システム、そしてコンピュータプログラムを参照して説明された。当業者は、フローチャート及び/またはブロック図の各ブロック、そして、ブロックの組み合わせがコンピュータプログラム命令により実現できることが分かる。コンピュータのプロセッサーまたは他のプログラム可能データプロセシング装置を通じて行われる命令は、フローチャート及び/またはブロック図またはブロックで特定された機能/動作を実現する手段を生成する方式であって、このようなコンピュータプログラム命令は、一般的な目的のコンピュータ、特定目的のコンピュータ、または他のプログラム可能なデータプロセシング装置に提供されてマシンを生産できる。
また、コンピュータプログラム命令はコンピュータで読み取り可能な記録媒体に保存でき、コンピュータで読み取り可能な記録媒体に保存された命令がフローチャート及び/またはブロック図またはブロックで特定された機能/動作を実現する命令手段を含む製造装置を生産する方式であって、コンピュータまたは他のプログラム可能データプロセシング装置が特定方式で機能するように命令できる。
また、コンピュータプログラム命令は、コンピュータまたは他のプログラム可能データプロセシング装置上にローディングされて、一連の機能ステップをコンピュータまたは他のプログラム可能装置で行わせて、コンピュータまたは他のプログラム可能装置で行われる命令がフローチャート及び/またはブロック図またはブロックで特定される機能/動作を実現するステップを提供する方式であって、コンピュータで実現されたプロセスを生産できる。
本発明の動作を行うコンピュータプログラムコードは、JaVa、Smalltalk、またはC++のような客体指向プログラミング言語で記述できる。しかし、本発明の動作を行うコンピュータプログラムコードは、“C”プログラミング言語のような通常的なプログラミング言語で記述されてもよい。プログラムコードは、すべてユーザのコンピュータで行われてもよく、部分的にユーザのコンピュータで行われてもよく、独立的なソフトウェアパッケージとして行われてもよく、部分的にはユーザのコンピュータで、そして部分的には遠隔地コンピュータで行われてもよく、そしてすべて遠隔地コンピュータで行われてもよい。すべて遠隔地コンピュータで行われる場合、遠隔地コンピュータは地域ネットワーク(Local Area Network:LAN)または広域ネットワーク(Wide Area Network:WAN)を通じてユーザコンピュータと連結され、(例えば、インターネットサービス提供者を利用したインターネットを通じて)外部コンピュータと連結されることもある。
以上のように図面及び明細書で最適の実施形態が開示された。ここで特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならば、これより多様な変形及び均等な他の実施形態が可能であるという点を理解できる。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想により定められなければならない。
本発明は、内容適応可変長符号化装置の関連技術分野に好適に用いられる。
従来技術によるCAVLC方法についてのフローチャートである。 本発明の実施形態によるCAVLC装置についてのブロック図である。 図2の制御部についてのブロック図である。 図2の係数情報発生部についてのブロック図である。 ラン及びレベルが保存されるフォーマットを示す図である。 全体係数を発生させる時に利用される内部全体係数保存部を説明するための図である。 本発明の実施形態によるCAVLC方法で係数情報を発生させる方法についてのフローチャートである。 本発明の実施形態によるCAVLC方法でトレーリング1を演算する方法についてのフローチャートである。 本発明の実施形態によるCAVLC方法で全体係数を発生させる方法についてのフローチャートである。 本発明の実施形態によるCAVLC方法でビットデータを発生させる方法についてのフローチャートである。
符号の説明
200 CAVLC装置
210 制御部
220 係数情報発生部
230 ビットデータ発生部
240 全体係数保存部
250 係数情報保存部
CD_CTRL 情報発生制御信号
COEF 現在ブロックの係数
TC 全体係数
T1 トレーリング1
RUN ラン
LEVEL レベル
T0 全体0
BD_CTRL ビット発生制御信号
BIT_STRM 符号化されたビット列
CTRL 制御信号

Claims (27)

  1. 映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数を内容適応可変長符号化する装置において、
    情報発生制御信号に応答して現在判読される現在ブロックの係数の符号化に必要な係数情報を発生させる係数情報発生部と、
    ビット発生制御信号に応答して前記現在ブロック直前に判読された以前ブロックの係数情報に応答して、前記以前ブロックの係数を符号化するビットデータ発生部と、
    前記情報発生制御信号及び前記ビット発生制御信号を発生させて、前記係数情報発生部と前記ビットデータ発生部とが同時に動作するように制御する制御部と、を備えることを特徴とする内容適応可変長符号化装置。
  2. 前記現在ブロックが含まれたマクロブロックと、前記現在ブロックが含まれたマクロブロックと上側に隣接したマクロブロックの所定の全体係数を保存する全体係数保存部と、
    前記係数情報のうち一部の係数情報を保存する係数情報保存部と、をさらに備え、
    前記一部の係数情報は、トレーリング1、レベル、及びランであることを特徴とする請求項1に記載の内容適応可変長符号化装置。
  3. 前記制御部は、
    (前記ブロックの数+1)までカウントするカウンタと、
    前記カウンタの出力に応答して前記情報発生制御信号及び前記ビット発生制御信号を発生させる制御信号発生部と、を備えることを特徴とする請求項1に記載の内容適応可変長符号化装置。
  4. 前記制御信号発生部は、
    前記カウンタの最初のカウントでは前記情報発生制御信号のみを発生させ、前記カウンタの二番目から前記ブロックの数までのカウントでは、前記情報発生制御信号及び前記ビット発生制御信号をいずれも発生させ、前記カウンタの(前記ブロックの数+1)番目のカウントでは前記ビット発生制御信号のみを発生させることを特徴とする請求項3に記載の内容適応可変長符号化装置。
  5. 前記係数情報発生部は、
    前記現在ブロックの係数をジグザグ方向の逆順に1回のみ判読する係数判読部と、
    前記判読された係数及び以前に判読された係数に応答して、前記係数情報を発生させるための臨時情報を発生させる係数判定及び制御部と、
    前記臨時情報を保存する臨時保存部と、
    前記ブロックの隣接したブロックの全体係数を更新して保存する内部全体係数保存部と、
    前記臨時情報に応答して前記係数情報を生成する係数情報生成部と、を備えることを特徴とする請求項1に記載の内容適応可変長符号化装置。
  6. 前記臨時保存部は、
    0でない前記係数が判読されたことを表わす係数有効フラグ、前記0でない係数の数を累積して保存する全体係数臨時情報、前記0でない係数の値を保存するレベル臨時情報、初めて絶対値が1である係数が連続的に判読されたことを表わすトレーリング1有効フラグ、初めて判読された絶対値が1である連続的な係数の数を累積して保存するトレーリング1臨時情報、及び前記0でない係数間の連続的な0である係数の数を累積して保存するラン臨時情報を保存することを特徴とする請求項5に記載の内容適応可変長符号化装置。
  7. 前記係数判定及び制御部は、
    前記判読された係数に応答して、前記係数有効フラグ及び前記トレーリング1有効フラグをセットまたはリセット状態にし、前記全体係数臨時情報、トレーリング1臨時情報、及びラン臨時情報の値を増加させ、レベル臨時情報を更新することを特徴とする請求項6に記載の内容適応可変長符号化装置。
  8. 前記係数情報生成部は、
    前記判読された係数が0である場合、前記ラン臨時情報の値を増加させ、
    前記判読された係数が0でない場合、前記レベル臨時情報及び前記ラン臨時情報を前記レベル及び前記ランとして前記係数情報保存部に保存した後、前記判読された係数を前記レベル臨時情報として更新して保存し、前記ラン臨時情報をリセットすることを特徴とする請求項7に記載の内容適応可変長符号化装置。
  9. 前記係数判定及び制御部は、
    前記0でない判読された係数の絶対値が1である場合、前記トレーリング1有効フラグに応答して前記トレーリング1臨時情報の値を増加させることを特徴とする請求項8に記載の内容適応可変長符号化装置。
  10. 前記係数判定及び制御部は、
    前記現在ブロック内の係数をいずれも判読した場合、前記臨時情報に応答して前記トレーリング1、レベル、及びランを前記係数情報保存部に保存し、所定の全体係数、及び全体0を前記ビットデータ発生部に伝送することを特徴とする請求項7に記載の内容適応可変長符号化装置。
  11. 前記係数情報生成部は、
    前記トレーリング1臨時情報、前記レベル臨時情報、及び前記ラン臨時情報を前記トレーリング1、レベル、及びランとして前記係数情報保存部に保存することを特徴とする請求項10に記載の内容適応可変長符号化装置。
  12. 前記全体0は、
    前記現在ブロックの係数の数と前記現在ブロックの全体係数との差であることを特徴とする請求項10に記載の内容適応可変長符号化装置。
  13. 前記所定の全体係数は、
    前記現在ブロックの全体係数、及び前記現在ブロックの左側と上側ブロックの全体係数であることを特徴とする請求項10に記載の内容適応可変長符号化装置。
  14. 前記内部全体係数保存部は、
    前記現在ブロックが含まれたマクロブロックの左側ブロックの全体係数を更新して保存する複数の左側バッファと、
    前記現在ブロックが含まれたマクロブロックの上側ブロックの全体係数を更新して保存する複数の上側バッファと、を備えることを特徴とする請求項5に記載の内容適応可変長符号化装置。
  15. 前記係数情報生成部は、
    前記現在ブロックの全体係数が発生する度に、前記現在ブロックの全体係数、及び前記現在ブロックに対応する左側バッファ及び上側バッファに保存された全体係数を前記ビットデータ発生部に伝送した後、前記左側バッファ及び上側バッファに保存された全体係数を前記現在ブロックの全体係数に更新して保存することを特徴とする請求項14に記載の内容適応可変長符号化装置。
  16. 前記係数情報生成部は、
    前記現在ブロックが、前記現在ブロックが含まれたマクロブロックで最初のブロックである場合、前記現在ブロックの全体係数を発生させる前に、前記現在ブロックが含まれたマクロブロック及び上側に隣接したマクロブロックに対する所定の全体係数を前記全体係数保存部で判読して前記内部全体係数保存部に保存し、
    前記現在ブロックが、前記現在ブロックが含まれたマクロブロックで最後のブロックである場合、前記現在ブロックの全体係数を発生させた後に、前記内部全体係数保存部に保存された所定の全体係数を前記全体係数保存部に保存することを特徴とする請求項14に記載の内容適応可変長符号化装置。
  17. 前記所定の全体係数は、
    前記内部全体係数保存部の上側バッファに保存された全体係数であることを特徴とする請求項2に記載の内容適応可変長符号化装置。
  18. ビットデータ発生部は、
    前記係数情報に応答して選択される所定のテーブルによって、前記係数情報をビットデータに符号化することを特徴とする請求項1に記載の内容適応可変長符号化装置。
  19. 前記所定のテーブルは、
    全体係数を符号化するための全体係数テーブル、レベルを符号化するためのレベルテーブルを備え、
    前記全体係数テーブルは、前記以前ブロックの全体係数及び前記以前ブロックの左側と上側ブロックの全体係数に応答して決定され、
    前記レベルテーブルは、前記レベルに応答して決定されることを特徴とする請求項18に記載の内容適応可変長符号化装置。
  20. 映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数を内容適応可変長符号化する方法において、
    現在判読される現在ブロックの係数をジグザグ方向の逆順に1回のみ判読して、前記現在ブロックの係数の符号化に必要な係数情報を発生させるステップと、
    所定の符号化テーブルによって前記現在ブロック直前に判読された以前ブロックの係数を符号化するステップと、を含み、
    前記係数情報を発生させるステップと前記係数を符号化するステップとは同時に行われることを特徴とする内容適応可変長符号化方法。
  21. 前記係数情報は、全体係数、トレーリング1、レベル、ラン、及び全体0であることを特徴とする請求項20に記載の内容適応可変長符号化方法。
  22. 前記係数情報を発生させるステップは、
    前記係数情報をリセットし、前記現在ブロックの係数をジグザグ方向の逆順に1回のみ判読するステップと、
    判読された順に前記判読されたデータが0であるかどうかを判断するステップと、
    前記判読された係数が0であれば、ランを増加させ、前記判読された係数が0でなければ、前記判読された係数に応答して、前記ランを除外した係数情報を計算するステップと、
    前記現在ブロックの係数をいずれも判読していなければ、前記判読されたデータの次に判読されたデータに対して前記0であるかどうかを判断するステップに進み、前記現在ブロックの係数をいずれも判読したならば、前記全体係数、トレーリング1、レベル、ラン、及び全体0を保存するステップと、を含むことを特徴とする請求項20に記載の内容適応可変長符号化方法。
  23. 前記ランを除外した係数情報を計算するステップは、
    全体係数を増加させた後、前記判読された係数の絶対値が1であるかどうかを判断するステップと、
    前記絶対値が1でなければ、トレーリング1有効フラグをリセット状態にした後、係数有効フラグがセット状態であるかどうかを判断し、前記判読された係数の絶対値が1であれば、トレーリング1を演算した後、前記係数有効フラグがセット状態であるかどうかを判断するステップと、
    前記係数有効フラグがセット状態でなければ、係数有効フラグをセット状態にした後、前記レベルを前記判読された係数に更新して前記ランをリセットし、前記有効フラグがセット状態であれば、前記レベル及び前記ランを保存した後、前記レベルを前記判読された係数に更新して前記ランをリセットするステップと、を含み、
    前記全体係数、トレーリング1、レベル、ラン、及び全体0を保存するステップは、前記係数有効フラグをリセット状態にするステップをさらに含むことを特徴とする請求項22に記載の内容適応可変長符号化方法。
  24. 前記トレーリング1を演算するステップは、
    前記係数を判読する前に絶対値が1である係数が判読されていなければ、トレーリング1有効フラグをセット状態にしてトレーリング1を増加させるステップと、
    前記係数を判読する前に絶対値が1である係数が判読されたならば、前記係数を判読する直前に判読された係数の絶対値が1であるかどうか、前記トレーリング1有効フラグ、及び前記トレーリング1に応答してトレーリング1を増加または維持するステップと、を含み、
    前記トレーリング1を増加または維持するステップは、
    前記直前に判読された係数の絶対値が1であり、トレーリング1有効フラグがセット状態であり、そして、前記トレーリング1が3より小さければ、前記トレーリング1を増加させるステップと、
    前記直前に判読された係数の絶対値が1でなければ、前記トレーリング1有効フラグをリセット状態にして前記トレーリング1を維持するステップと、
    前記直前に判読された係数の絶対値が1であり、トレーリング1有効フラグがセット状態ではないか、または前記直前に判読された係数の絶対値が1であり、トレーリング1有効フラグがセット状態であり、そして前記トレーリング1が3より小さくなければ、トレーリング1を維持するステップと、を含むことを特徴とする請求項23に記載の内容適応可変長符号化方法。
  25. 前記全体係数を保存するステップは、
    前記現在ブロックが、前記現在ブロックが含まれたマクロブロックの最初のブロックであるかどうかを判断するステップと、
    前記現在ブロックが最初のブロックでなければ、前記現在ブロックの全体係数を計算し、前記現在ブロックが最初であれば、前記現在ブロックが含まれたマクロブロックの上側マクロブロックに含まれた所定のブロックの全体係数を判読して内部メモリに保存した後、前記現在ブロックの全体係数を計算するステップと、
    前記計算された現在ブロックの全体係数を前記内部メモリに更新して保存するステップと、
    前記現在ブロックが、前記現在ブロックが含まれたマクロブロックでの最後のブロックでなければ、前記最初のブロックであるかどうかを判断するステップに進み、前記現在ブロックが前記現在ブロックが含まれたマクロブロックでの最後のブロックであれば、前記内部メモリに保存された所定の全体係数を保存するステップと、を含むことを特徴とする請求項22に記載の内容適応可変長符号化方法。
  26. 前記係数を符号化するステップは、
    前記以前ブロックの全体係数と前記以前ブロックの左側及び上側ブロックの全体係数に応答して選択される所定の全体係数テーブルによって、前記以前ブロックの全体係数を符号化するステップと、
    前記以前ブロックのレベルによって選択される所定のレベルテーブルによって前記以前ブロックのレベルを符号化するステップと、
    前記以前ブロックの全体係数に応答して選択される所定のテーブルによって前記以前ブロックの全体0を符号化するステップと、
    前記以前ブロックのランを符号化するステップと、を含むことを特徴とする請求項20に記載の内容適応可変長符号化方法。
  27. 映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して前記分割されたブロックの係数を内容適応可変長符号化する方法を行うプログラムを記録したコンピュータで読み取り可能な記録媒体において、
    現在判読される現在ブロックの係数をジグザグ方向の逆順に1回のみ判読して、前記現在ブロックの係数の符号化に必要な係数情報を発生させるステップと、
    所定の符号化テーブルによって前記現在ブロックの直前に判読された以前ブロックの係数を符号化するステップと、を備え、
    前記係数情報を発生させるステップと前記係数を符号化するステップとは、同時に行われることを特徴とするコンピュータで読み取り可能な記録媒体。
JP2006006503A 2005-01-13 2006-01-13 内容適応可変長符号化装置及び方法 Withdrawn JP2006197610A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20050003181A KR100674941B1 (ko) 2005-01-13 2005-01-13 내용 적응 가변 길이 부호화 장치 및 방법

Publications (1)

Publication Number Publication Date
JP2006197610A true JP2006197610A (ja) 2006-07-27

Family

ID=36654761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006006503A Withdrawn JP2006197610A (ja) 2005-01-13 2006-01-13 内容適応可変長符号化装置及び方法

Country Status (3)

Country Link
US (1) US20060156204A1 (ja)
JP (1) JP2006197610A (ja)
KR (1) KR100674941B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010516193A (ja) * 2007-01-08 2010-05-13 クゥアルコム・インコーポレイテッド Svccgs拡張層コーディングに関するcavlc拡張
JP2012182753A (ja) * 2011-03-02 2012-09-20 Sharp Corp 画像復号装置、画像符号化装置、および符号化データのデータ構造

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772870B1 (ko) * 2005-12-12 2007-11-02 삼성전자주식회사 Fgs 계층의 블록에 포함되는 계수의 특성에 따라 비디오신호를 부호화하고 복호화하는 방법 및 장치
KR100801967B1 (ko) * 2006-07-07 2008-02-12 광주과학기술원 문맥 기반 적응적 가변 길이 부호화 인코더 및 디코더,문맥 기반 적응성 가변 길이 부호화하는 방법과 복호화하는방법 및 이를 이용한 동영상 전송 시스템.
US8335261B2 (en) * 2007-01-08 2012-12-18 Qualcomm Incorporated Variable length coding techniques for coded block patterns
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
KR101362441B1 (ko) * 2010-07-16 2014-02-18 인텔렉추얼디스커버리 주식회사 쿼드트리 기반의 매크로블록을 위한 멀티 레벨의 양자화 파라미터 기록 방법 및 장치
WO2013175748A1 (ja) 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、および動画像符号化復号装置
WO2013175736A1 (ja) 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
KR102060617B1 (ko) * 2012-06-04 2019-12-30 선 페이턴트 트러스트 동화상 부호화 방법, 동화상 부호화 장치, 동화상 복호 방법, 및, 동화상 복호 장치
US10057599B2 (en) * 2014-02-19 2018-08-21 Mediatek Inc. Method for performing image processing control with aid of predetermined tile packing, associated apparatus and associated non-transitory computer readable medium

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0698313A (ja) * 1992-09-14 1994-04-08 Sony Corp 動画像復号化装置
KR100249235B1 (ko) * 1997-12-31 2000-03-15 구자홍 에이치디티브이 비디오 디코더
KR100298397B1 (ko) * 1998-02-03 2001-08-07 구자홍 비디오디코딩시스템
KR20000025296A (ko) * 1998-10-09 2000-05-06 김영환 블록 영상계수의 가변부호화 장치
US20040136457A1 (en) * 2002-10-23 2004-07-15 John Funnell Method and system for supercompression of compressed digital video
KR20040073095A (ko) * 2003-02-13 2004-08-19 주식회사 하이닉스반도체 Mpeg/jpeg 인코딩 및 디코딩 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010516193A (ja) * 2007-01-08 2010-05-13 クゥアルコム・インコーポレイテッド Svccgs拡張層コーディングに関するcavlc拡張
US8467449B2 (en) 2007-01-08 2013-06-18 Qualcomm Incorporated CAVLC enhancements for SVC CGS enhancement layer coding
JP2012182753A (ja) * 2011-03-02 2012-09-20 Sharp Corp 画像復号装置、画像符号化装置、および符号化データのデータ構造

Also Published As

Publication number Publication date
KR100674941B1 (ko) 2007-01-26
US20060156204A1 (en) 2006-07-13
KR20060082609A (ko) 2006-07-19

Similar Documents

Publication Publication Date Title
JP2006197610A (ja) 内容適応可変長符号化装置及び方法
JP4878262B2 (ja) エントロピー符号化装置
JP4732203B2 (ja) 画像符号化装置及び復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP4468858B2 (ja) データ符号化装置、データ符号化方法、プログラム
JP6706357B2 (ja) 少なくとも1つの第2の画像成分の参照ブロックに対して第1の画像成分の現在ブロックを符号化するための方法、符号化装置および対応するコンピュータプログラム
JP5073004B2 (ja) 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
JP2010251946A (ja) 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム
JP4785706B2 (ja) 復号装置及び復号方法
US8718391B2 (en) Random access image encoding system and method
JP2010178319A (ja) 画像符号化装置及び画像符号化方法
JP2009081726A (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
CN110191341B (zh) 一种深度数据的编码方法和解码方法
JP6149971B2 (ja) 映像量子化パラメータ符号化方法及び映像量子化パラメータ復号方法
JP2018201117A (ja) 映像符号化装置、映像符号化方法およびプログラム
JP2008187694A (ja) 画像符号化装置およびその方法
JP4493552B2 (ja) データ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラム
JP2003198858A (ja) 符号化装置および復号化装置
JP2008098751A (ja) 算術符号化装置及び算術復号化装置
JP4493551B2 (ja) データ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラム
JP2016092458A (ja) 動画像符号化装置、動画像符号化方法、及びプログラム
JP5872804B2 (ja) 符号化装置及び符号化方法
JP5200854B2 (ja) 符号化装置、復号装置、及び画像処理システム
JP2004104773A (ja) 画像処理装置、画像処理方法、記憶媒体、及びプログラム
JP5404857B2 (ja) 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
JP4507742B2 (ja) 動画像符号化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090113

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110104