JP4309954B2 - Camera device and method with orientation detection - Google Patents

Camera device and method with orientation detection Download PDF

Info

Publication number
JP4309954B2
JP4309954B2 JP2008209323A JP2008209323A JP4309954B2 JP 4309954 B2 JP4309954 B2 JP 4309954B2 JP 2008209323 A JP2008209323 A JP 2008209323A JP 2008209323 A JP2008209323 A JP 2008209323A JP 4309954 B2 JP4309954 B2 JP 4309954B2
Authority
JP
Japan
Prior art keywords
image
data
artcard
camera
bit
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.)
Expired - Fee Related
Application number
JP2008209323A
Other languages
Japanese (ja)
Other versions
JP2009022020A (en
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 claimed from AUPO7999A external-priority patent/AUPO799997A0/en
Priority claimed from AUPO7990A external-priority patent/AUPO799097A0/en
Priority claimed from AUPO8022A external-priority patent/AUPO802297A0/en
Priority claimed from AUPO8030A external-priority patent/AUPO803097A0/en
Priority claimed from AUPO7993A external-priority patent/AUPO799397A0/en
Priority claimed from AUPO7998A external-priority patent/AUPO799897A0/en
Priority claimed from AUPO7934A external-priority patent/AUPO793497A0/en
Priority claimed from AUPO8020A external-priority patent/AUPO802097A0/en
Priority claimed from AUPO7938A external-priority patent/AUPO793897A0/en
Priority claimed from AUPO8024A external-priority patent/AUPO802497A0/en
Priority claimed from AUPO8005A external-priority patent/AUPO800597A0/en
Priority claimed from AUPO7985A external-priority patent/AUPO798597A0/en
Priority claimed from AUPO7978A external-priority patent/AUPO797897A0/en
Priority claimed from AUPO7980A external-priority patent/AUPO798097A0/en
Priority claimed from AUPO8025A external-priority patent/AUPO802597A0/en
Priority claimed from AUPO8028A external-priority patent/AUPO802897A0/en
Priority claimed from AUPO7989A external-priority patent/AUPO798997A0/en
Priority claimed from AUPO8032A external-priority patent/AUPO803297A0/en
Priority claimed from AUPO8026A external-priority patent/AUPO802697A0/en
Priority claimed from AUPO7986A external-priority patent/AUPO798697A0/en
Priority claimed from AUPO8017A external-priority patent/AUPO801797A0/en
Priority claimed from AUPO8003A external-priority patent/AUPO800397A0/en
Priority claimed from AUPO8018A external-priority patent/AUPO801897A0/en
Priority claimed from AUPO7987A external-priority patent/AUPO798797A0/en
Priority claimed from AUPO7983A external-priority patent/AUPO798397A0/en
Priority claimed from AUPO8031A external-priority patent/AUPO803197A0/en
Priority claimed from AUPO7991A external-priority patent/AUPO799197A0/en
Priority claimed from AUPO8016A external-priority patent/AUPO801697A0/en
Priority claimed from AUPO8027A external-priority patent/AUPO802797A0/en
Priority claimed from AUPO7979A external-priority patent/AUPO797997A0/en
Priority claimed from AUPO7982A external-priority patent/AUPO798297A0/en
Priority claimed from AUPO7977A external-priority patent/AUPO797797A0/en
Priority claimed from AUPO7988A external-priority patent/AUPO798897A0/en
Priority claimed from AUPO8023A external-priority patent/AUPO802397A0/en
Priority claimed from AUPO8012A external-priority patent/AUPO801297A0/en
Priority claimed from AUPO7939A external-priority patent/AUPO793997A0/en
Priority claimed from AUPO7997A external-priority patent/AUPO799797A0/en
Priority claimed from AUPO8015A external-priority patent/AUPO801597A0/en
Priority claimed from AUPO8029A external-priority patent/AUPO802997A0/en
Priority claimed from AUPO8021A external-priority patent/AUPO802197A0/en
Priority claimed from AUPO8000A external-priority patent/AUPO800097A0/en
Priority claimed from AUPO8019A external-priority patent/AUPO801997A0/en
Priority claimed from AUPO7981A external-priority patent/AUPO798197A0/en
Priority claimed from AUPO7940A external-priority patent/AUPO794097A0/en
Priority claimed from AUPO8014A external-priority patent/AUPO801497A0/en
Priority claimed from AUPO7942A external-priority patent/AUPO794297A0/en
Priority claimed from AUPO8499A external-priority patent/AUPO849997A0/en
Priority claimed from AUPO8504A external-priority patent/AUPO850497A0/en
Priority claimed from AUPO8505A external-priority patent/AUPO850597A0/en
Priority claimed from AUPO8498A external-priority patent/AUPO849897A0/en
Priority claimed from AUPO8501A external-priority patent/AUPO850197A0/en
Priority claimed from AUPO8502A external-priority patent/AUPO850297A0/en
Priority claimed from AUPO8500A external-priority patent/AUPO850097A0/en
Priority claimed from AUPO8497A external-priority patent/AUPO849797A0/en
Priority claimed from AUPO9397A external-priority patent/AUPO939797A0/en
Priority claimed from AUPO9402A external-priority patent/AUPO940297A0/en
Priority claimed from AUPO9404A external-priority patent/AUPO940497A0/en
Priority claimed from AUPO9403A external-priority patent/AUPO940397A0/en
Priority claimed from AUPO9400A external-priority patent/AUPO940097A0/en
Priority claimed from AUPO9398A external-priority patent/AUPO939897A0/en
Priority claimed from AUPO9399A external-priority patent/AUPO939997A0/en
Priority claimed from AUPO9394A external-priority patent/AUPO939497A0/en
Priority claimed from AUPO9401A external-priority patent/AUPO940197A0/en
Priority claimed from AUPO9405A external-priority patent/AUPO940597A0/en
Priority claimed from AUPO9395A external-priority patent/AUPO939597A0/en
Priority claimed from AUPO9396A external-priority patent/AUPO939697A0/en
Priority claimed from AUPP0959A external-priority patent/AUPP095997A0/en
Priority claimed from AUPP1397A external-priority patent/AUPP139798A0/en
Priority claimed from AUPP2370A external-priority patent/AUPP237098A0/en
Priority claimed from AUPP2371A external-priority patent/AUPP237198A0/en
Priority claimed from AUPP4094A external-priority patent/AUPP409498A0/en
Application filed by シルバーブルック リサーチ ピーティワイ リミテッド filed Critical シルバーブルック リサーチ ピーティワイ リミテッド
Publication of JP2009022020A publication Critical patent/JP2009022020A/en
Application granted granted Critical
Publication of JP4309954B2 publication Critical patent/JP4309954B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2628Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/14Structure thereof only for on-demand ink jet heads
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/1626Manufacturing processes etching
    • B41J2/1628Manufacturing processes etching dry etching
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/1626Manufacturing processes etching
    • B41J2/1629Manufacturing processes etching wet etching
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/1631Manufacturing processes photolithography
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/1632Manufacturing processes machining
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/164Manufacturing processes thin film formation
    • B41J2/1642Manufacturing processes thin film formation thin film formation by CVD [chemical vapor deposition]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/164Manufacturing processes thin film formation
    • B41J2/1643Manufacturing processes thin film formation thin film formation by plating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/164Manufacturing processes thin film formation
    • B41J2/1645Manufacturing processes thin film formation thin film formation by spincoating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/16Production of nozzles
    • B41J2/1621Manufacturing processes
    • B41J2/164Manufacturing processes thin film formation
    • B41J2/1646Manufacturing processes thin film formation thin film formation by sputtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/086Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means by passive credit-cards adapted therefor, e.g. constructive particularities to avoid counterfeiting, e.g. by inclusion of a physical or chemical security-layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/0044Display of information to the user, e.g. menus for image preview or review, e.g. to help the user position a sheet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • H04N1/2154Intermediate information storage for one or a few pictures using still video cameras the still video camera incorporating a hardcopy reproducing device, e.g. a printer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/135Nozzles
    • B41J2/165Preventing or detecting of nozzle clogging, e.g. cleaning, capping or moistening for nozzles
    • B41J2/16585Preventing or detecting of nozzle clogging, e.g. cleaning, capping or moistening for nozzles for paper-width or non-reciprocating print heads
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/17Ink jet characterised by ink handling
    • B41J2/175Ink supply systems ; Circuit parts therefor
    • B41J2/17596Ink pumps, ink valves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2101/00Still video cameras

Abstract

A camera system comprising at least one area image sensor for imaging a scen e; a camera processor means for processing the imaged scene in accordance with a predetermined scene transformation requirement; and a printer for printing out the processed imaged scene on print media, utilizing printing ink stored in a single detachable module inside the camera system; the camera system comprising a portable hand held unit for the imagi ng of scenes by the area image sensor and printing the scenes directly out of the camera system via the printer.

Description

本発明は、画像処理方法及び装置に関し、特に、画像処理機能を有するデジタルインスタントカメラを開示する。   The present invention relates to an image processing method and apparatus, and in particular, discloses a digital instant camera having an image processing function.

本発明は、さらに、デジタルカメラ技術の分野に関し、特に、一体型カラープリンタ付きのデジタルカメラを開示する。   The invention further relates to the field of digital camera technology, and in particular, discloses a digital camera with an integrated color printer.

従来のカメラ技術は、長年に亘り、感光性フィルムに映し出される画像のネガに依存する光学処理システムの設備に依存してきている。この感光性フィルムは、“定着(fix)”して、原画像の再生を行うポジプリントの作成を許容するために後で化学的処理される。そのような画像処理技術は、標準的になってきていたけれども、画像のフルカラー処理においては不経済で困難な技術が必要とされるため、過度に複雑になり得る。近年、デジタルカメラが利用可能になってきている。これらのカメラは、標準的には、際立った画像を検知するための電荷結合素子(CCD)の利用に依存している。該カメラは標準的には、続けて行う画像処理(manipulation)や印刷のためにコンピュータ装置に画像を転送するためのコネクターに加え、検知したシーンのストレージのためのストレージ・メディアを有する。   Conventional camera technology has relied on equipment for optical processing systems that have relied on the negative of the image projected on the photosensitive film for many years. This photosensitive film is subsequently "fixed" and subsequently chemically processed to allow the creation of a positive print that reproduces the original image. Although such image processing techniques have become standard, full color processing of images can be overly complex due to the need for expensive and difficult techniques. In recent years, digital cameras have become available. These cameras typically rely on the use of charge coupled devices (CCDs) to detect prominent images. The camera typically has a storage medium for storage of the detected scene, in addition to a connector for transferring the image to a computer device for subsequent image manipulation and printing.

そのような装置は、全ての画像がカメラによって保存されており、しばらく後でないと印刷できないという点で不便である。また、該カメラは、多数の画像の保存のために十分なストレージ能力を有していなければならず、加えて、カメラのユーザは、画像のダウンロードやコンピュータ・プリンターによる印刷等のためにコンピュータシステムにアクセスしなければならない。   Such a device is inconvenient in that all images are stored by the camera and can only be printed after a while. In addition, the camera must have a sufficient storage capacity for storing a large number of images, and in addition, the user of the camera can use a computer system for downloading images or printing with a computer printer. Must have access to.

さらに、インスタント画像の生成を可能にするポラロイド(登録商標)タイプのインスタントカメラは、しばらくの間、使用されてきた。しかしながら、このタイプのカメラは、限定されたサイズの画像のみの作成に限られていて、また、化学物質の使用には多くの問題があり、特に、これらのタイプのカメラで作られた写真は劣化する。   In addition, Polaroid® type instant cameras that allow instant image generation have been used for some time. However, this type of camera is limited to producing only limited-size images, and there are many problems with the use of chemicals, especially photos made with these types of cameras. to degrade.

このような装置や他の画像キャプチャー装置を使用する場合、写真撮影の際、音声ひや他の環境の情報を適切に取り込めることが望ましい。   When using such a device or another image capture device, it is desirable to appropriately capture audio and other environmental information when taking a picture.

さらに、左眼に与えられる第1画像と右眼に与えられる第2画像とで三次元面の錯覚を起こすという立体視の生成が、よく知られている。しかしながら、従前のシステム複雑な準備を必要とし、現物に極めて近い画像(ハイファイ画像)は通常不可能であった。さらに、画像の一般的な選択は、特別に準備された画像のみに限定されている。   Furthermore, it is well known to generate stereoscopic vision in which an illusion of a three-dimensional surface is caused between a first image given to the left eye and a second image given to the right eye. However, the conventional system requires complicated preparation, and an image very close to the actual product (hi-fi image) is usually impossible. Furthermore, the general selection of images is limited to only specially prepared images.

現物に極めて近い立体画像(ハイファイ立体画像)を要求に応じて生成できること、特に、立体画像を自由に撮影することのできるポータブル・カメラ装置によって画像を作成することが一般的に必要である。   It is generally necessary to create a 3D image (Hi-Fi 3D image) that is very close to the actual product on demand, and in particular to create an image with a portable camera device that can shoot 3D images freely.

さらに、カメラ装置によってキャプチャーされた画像を片面に有すると共に、もう片面に郵便料金払い済み印と住所を有する、自動的にカスタマイズされた葉書を、そのようなカメラ写真画像作成システムが作成できれば、非常に便利だろう。   In addition, if such a camera photo image creation system could create an automatically customized postcard with an image captured by the camera device on one side and a postage-paid stamp and address on the other side, Would be useful.

近年、画像の長い“パノラマ”ビューを作成する写真再生技術については、ますます一般的になってきている。これらの画像は写真用紙などの上に作成される。また、さらなる“パノラマ”のタイプのビューを作成するため、画像の構成は、幅に比べて長さが長くされる。残念ながら、画像が形成される写真用紙は、小径のロールの状態で保存されていた場合に問題が発生する。   In recent years, photo playback techniques for creating “panoramic” views of long images have become increasingly common. These images are created on photo paper or the like. Also, to create additional “panoramic” type views, the composition of the image is lengthened relative to the width. Unfortunately, problems arise when the photographic paper on which the image is formed is stored in a small diameter roll.

近年、フィルターを配置して、人気のある芸術的な絵のスタイルに似せた効果を画像に生じさせるようにすることがかなり一般的になってきている。これらのフィルターは、画像を撮影すると共に、芸術的なスタイルの一つについての芸術的演出を最初の画像に与えて第2の画像を得るように設計されている。現代において極めて人気のある芸術家の一人は、ビンセント・ファン・ゴッホである。彼の絵画のフラット・エリアにおけるブラッシュストローク(筆さばき)の方向が、その絵画における主要な物のエッジの方向を積極的にたどるというのが、この芸術家の芸術作品の一つの特徴である。例えば、“糸杉と星の見える道”や“星月夜”や“医師ガッシュ”と題された彼の作品は、この処理の説明に役立つ実例である。入力されてきた任意の画像に“ファン・ゴッホ”効果を自動的に生じさせ、それを携帯用カメラシステムから出力するというコンピュータ・アルゴリズムの提供が望まれるだろう。   In recent years, it has become fairly common to place filters to create an effect in the image that resembles a popular artistic picture style. These filters are designed to take an image and give the first image an artistic presentation about one of the artistic styles to obtain a second image. One of the most popular artists in modern times is Vincent van Gogh. One characteristic of the artist's work of art is that the direction of the brush stroke in the flat area of his painting actively follows the direction of the edges of the main objects in the painting. For example, his works entitled “Roads with cypresses and stars”, “Starry Night” and “Doctor Gouache” are examples that help explain this process. It would be desirable to provide a computer algorithm that automatically creates a “Fan Van Gogh” effect on any input image and outputs it from a portable camera system.

残念ながら、ワーピングのシステムは、ハイエンドコンピュータにて使用されることが一般的であり、画像をコンピュータの中にスキャンすることやプリントアウトすることは一般には不便である。携帯用カメラ等を使って画像を取得するような場合は、取得画像を画像処理のためにコンピュータシステムに後で転送し、次に、要求に従ってそれらの画像を処理するという必要があるため、一般的には特に不便である。   Unfortunately, warping systems are commonly used on high-end computers, and it is generally inconvenient to scan and print out images into the computer. When acquiring images using a portable camera, etc., it is necessary to transfer the acquired images to a computer system for image processing later, and then process those images as required. Is particularly inconvenient.

さらに、多様な画法を真似るという効果に大きな価値があるとしばしば考えられる。さらに進んで、1つの簡単な形態の中にこれらの効果を組み入れることができれば、それらの効果は、デジタル撮影能力を有する携帯用カメラ装置と合体させるのに適切であり、それによって、カメラ装置で撮影されるシーンについて、所望のフィルター処理された画像を生成することができるだろう。   Furthermore, it is often considered that the effect of imitating various drawing methods has great value. Proceeding further, if these effects could be incorporated into one simple form, they would be appropriate to be combined with a portable camera device having digital shooting capability, thereby allowing the camera device to The desired filtered image could be generated for the scene being filmed.

残念ながら、今日 製造されるカメラにおいて厄介なシステムの要求である、デジタル画像変換技術やフィルター交換技術は、明らかに、未だ利用できない技術を利用することができず、今までのところ、創造も着想もできていないフィルターを利用することもできない。   Unfortunately, digital image conversion technology and filter replacement technology, which is a demanding system requirement for cameras manufactured today, clearly cannot use technologies that are not yet available, and so far, creation has also been conceived. You can't use a filter that isn't.

カメラ技術の極めて一般的な方式の一つは、伝統的なネガフィルムとポジプリント写真である。このケースでは、ネガフィルムにシーンを撮影するためにカメラが使用され、該ネガフィルムは陰画を定着させるために処理される。続いて一連のプリントがネガフィルムから作成される。さらに、一連のプリントはネガからどんなときにでも直ぐに作成されることができる。残念ながら、デジタルカメラ(本願にて提案されるものも含む)では、後においてさらなる画像のコピーが要求されるなら、キャプチャーされ印刷される写真をデジタル形式で永久的に保存することが必要であろう。“写真”のコピーが単に最初のプリントを必要とするということは一般的には不便かも知れない。もちろん、その代わりに、高品質なカラー写真コピー装置を使用してコピーしても差し支えない。残念ながら、そのような装置はコピー能力に限界があり、そのようなコピーの形態が行われるとき、しばしば信号の劣化が生じる。明らかに、カメラプリントのコピーを作成する、より好適な形態が望まれる。   One very common method of camera technology is traditional negative film and positive print photography. In this case, a camera is used to capture the scene on the negative film, which is processed to fix the negative. A series of prints is then created from the negative film. In addition, a series of prints can be made immediately from the negative at any time. Unfortunately, digital cameras (including those proposed in this application) require that captured and printed photos be permanently stored in digital form if a later copy of the image is required. Let's go. It may generally be inconvenient that a “photo” copy simply requires an initial print. Of course, instead, copying can be done using a high quality color photographic copying machine. Unfortunately, such devices have limited copy capabilities, and signal degradation often occurs when such copy forms are performed. Obviously, a more suitable form for making a copy of a camera print is desired.

さらに、下塗りの際のメディアの選択に起因して色が制限され、風景についてのほとんど全ての芸術的絵画は限定的な色域(gamut)を使用している。このような制限は、様々な芸術的効果を生じさせるために芸術家によってしばしば使われる。この処理の古典的な見本は、次のような周知の芸術作品を含む:
− カミーユ・ピサロ “L’le Lacroix−Rouen、霧の効果” 1888年、フィラデルフィア美術館
− シャルル・アングラン “セーヌ河、朝”−1889年、プティ・パレ・コレクション、ジュネーブ
− アンリ・ヴァン・ド・ヴェルド “Crepuscule” −1892年、クレラー=ミュラー国立美術館、オッテルロー
− ジョルジョ・スーラ “バ=ビュタンの砂浜、オンフルール”1886年−トゥルーネ美術館
In addition, the color is limited due to the choice of media in the undercoat, and almost all artistic paintings about the landscape use a limited gamut. Such restrictions are often used by artists to create various artistic effects. Classic examples of this process include the following well-known works of art:
-Camille Pissarro "L'le Lacroix-Rouen, the effect of the fog" 1888, Philadelphia Museum of Art-Charles Engran "The River Seine, Morning"-1889, Petit Palais Collection, Geneva-Henri van de Verde “Crepuscule”-1892, Klerer-Müller National Museum, Otterlo-Giorgio Sula “The Sands of Bas-Butane, Honfleur” 1886—The Trune Museum

任意の入力画像から、上記リストのそれと似たような効果や特性を持つ出力画像を作成することが望ましい。   It is desirable to create an output image having effects and characteristics similar to those in the above list from an arbitrary input image.

何らかの衣服が創造されるとき多くの創造的な判断がなされる。初めに、衣服の形状やスタイルであり、加えて、布の色や種類である。しばしは、ファッションデザイナーは、衣服を完成させる前に、多くの異なる代替案にトライし、最終的なファッションの製品を描こうとする。   Many creative judgments are made when some kind of clothing is created. First is the shape and style of the clothing, plus the color and type of the fabric. For the time being, fashion designers try many different alternatives to draw the final fashion product before completing the garment.

このようなプロセスは、衣服の迅速かつ柔軟な変更や、ファッション製品の最終外観の迅速な判断機会のためには一般的に不十分である。   Such a process is generally unsatisfactory for rapid and flexible changes in clothing and the opportunity to quickly determine the final appearance of a fashion product.

双眼鏡や望遠鏡は良く知られている。特に、双眼鏡を例にすると、該装置は、ユーザの視力の能力を高めるために景色の望遠の拡大を提供する。さらに、夜間用双眼鏡等のような装置も、また、ユーザの視力の能力を高めるために使われる。残念ながら、これらのシステムは、リアルタイムの、アナログの光学部品に依存し、見えた景色の永久記録は困難である。シーンの永久コピーの記録に適していると思われる1つの方法は、シーンを取得するCCD等のようなセンサー装置を取り付けることと、後に行う印刷のためにストレージデバイスに保存することである。残念ながら、そのような構造は、野外で、携行性に富む状態での双眼鏡の使用が望まれる場合には特に邪魔となる。   Binoculars and telescopes are well known. In particular, taking binoculars as an example, the device provides a telephoto extension of the landscape to enhance the user's visual ability. In addition, devices such as night binoculars are also used to enhance the visual acuity of the user. Unfortunately, these systems rely on real-time, analog optics, and it is difficult to permanently record the visible scene. One method that may be suitable for recording a permanent copy of a scene is to attach a sensor device, such as a CCD, that captures the scene and store it in a storage device for subsequent printing. Unfortunately, such a structure is particularly disturbing when it is desired to use binoculars outdoors and in a portable state.

圧縮した状態での情報のストレージについては、多くの形態のものが周知である。例えば、コンピュータ装置の分野では、固定された、或いは携行できる磁気ディスク装置の使用は一般的である。携行できるディスクについては、“フロッピーディスク”や“ジップディスク”や、ポータブル磁気ストレージメディアの他の方式が、市場において大量に受け入れられている。携帯可能なストレージの他の形式は、一連の細長いピット(螺旋状のトラックに沿って配置されたものであり、レーザビーム装置によって読み取られるもの)を利用するコンパクトディスク“CD”である。CDの利用は、ストレージについての極めて低コストの形態を提供する。しかしながら、必要とされる技術はかなり複雑であり、書き換え可能なCDタイプの装置の使用は極めて限定される。   Many forms of storage of information in a compressed state are well known. For example, in the field of computer devices, the use of a fixed or portable magnetic disk device is common. For disks that can be carried, "floppy disks" and "zip disks" and other methods of portable magnetic storage media are widely accepted in the market. Another form of portable storage is a compact disc “CD” that utilizes a series of elongated pits (placed along a spiral track and read by a laser beam device). The use of a CD provides a very low cost form of storage. However, the required technology is quite complex and the use of rewritable CD type devices is very limited.

ストレージの他の方式としては磁気カードがあり、しばしばクレジットカードや同種のものに使用される。これらのカードは、標準的には、カードのユーザに関連する情報を記録するため、裏面に磁気の帯を有している。近年、集積回路タイプの装置をカードに組み込むというスマートカード技術の形で、磁気カードの利便性が伸びてきている。残念ながら、そのような装置のコストはしばしば高く、使用される技術の複雑さもまた著しい。   Another type of storage is a magnetic card, often used for credit cards and the like. These cards typically have a magnetic strip on the back to record information related to the card user. In recent years, the convenience of magnetic cards has increased in the form of smart card technology in which integrated circuit type devices are incorporated into cards. Unfortunately, the cost of such devices is often high and the complexity of the technology used is also significant.

従来の銀塩カメラの処理システムは、多数のプリントの作成のため、周知の“ネガ”の使用を生じさせてきた。そのネガは、標準的にはプリントの生産源となり、その実施は、連続使用のためのケアや保護のために成長してきた。   Conventional silver halide camera processing systems have resulted in the use of the well-known “negative” for the production of multiple prints. The negative is typically the source of print production, and its practice has grown for care and protection for continuous use.

フォールトトレラント方法にて検知される符号化システムでは、効率的な復号化が可能となる符号化がどのようにすれば可能かという、重要な懸案がある。したがって、効率的な符号化システムの提供が望まれる。   In an encoding system that is detected by a fault tolerant method, there is an important concern as to how encoding that enables efficient decoding is possible. Therefore, it is desired to provide an efficient encoding system.

本発明の概要
本発明は、一体型カラープリンタ付きデジタルカメラを備えたカメラシステムの代替形態の提供に関する。加えて、該カメラは、イメージ・センシング・システムの見かけの解像度を増加させ、様々な“芸術的なスタイル”やグラフィック強化(graphic enhancement)に画像を変換するためのハードウェア及びソフトウェアを備える。
The present invention relates to the provision of an alternative form of a camera system comprising a digital camera with an integrated color printer. In addition, the camera includes hardware and software to increase the apparent resolution of the image sensing system and convert the image to various “artistic styles” and graphic enhancements.

本発明のさらなる態様に従って、シーンを撮像するための少なくとも1つのエリアイメージセンサーと、前記撮像されたシーンを所定のシーン変換要求に従って処理するためのカメラ処理装置(camera processor means)と、前記処理された画像のシーンをプリントメディアに印刷するためのプリンターと、前記カメラシステム内部の一つの取り外し可能なモジュールに収納されたプリントメディア及び印刷用インクと、を備えたカメラシステムが提供される。該カメラシステムは、前記エリアイメージセンサーによるシーンの撮像、及び前記プリンターによって前記シーンを印刷したものを前記カメラシステムから直接出力するためのハンドヘルドユニットを備える。   According to a further aspect of the present invention, at least one area image sensor for imaging a scene, a camera processor means for processing the imaged scene according to a predetermined scene conversion request, and the processed There is provided a camera system comprising a printer for printing a scene of a printed image on a print medium, and a print medium and printing ink stored in one removable module inside the camera system. The camera system includes a handheld unit for capturing an image of the scene by the area image sensor and outputting a print of the scene by the printer directly from the camera system.

前記カメラシステムは、好ましくは、プリントメディアの保管のためのプリントロールと、前記プリンターにより使用される印刷用インクを備えている。該プリントロールは前記カメラシステムから取り外し可能である。さらに、該プリントロールが前記カメラシステムに挿入されたときに認証が実行されるように、該プリントロールは、認証情報を含む認証チップを備え、前記カメラ処理装置は該認証チップを確認(interrogate)するように適合されている。   The camera system preferably includes a print roll for storing print media and printing ink used by the printer. The print roll is removable from the camera system. In addition, the print roll includes an authentication chip that includes authentication information so that authentication is performed when the print roll is inserted into the camera system, and the camera processing device interrogates the authentication chip. Is adapted to be.

さらに、前記プリンターは、ドロップ・オン・デマンドのインクプリンターと、印刷された写真の分離のための裁断装置とを含む。   Furthermore, the printer includes a drop-on-demand ink printer and a cutting device for separating printed photographs.

本発明の第1態様に従って、シーンを撮像するための少なくとも1つのエリアイメージセンサーと、前記撮像されたシーンを所定のシーン変換要求に従って処理するためのカメラ処理装置と、前記処理された画像のシーンをプリントメディアに印刷するためのプリンターと、前記カメラシステム内部の一つの取り外し可能なモジュールに収納されたプリントメディア及び印刷用インクと、を有するカメラシステムが提供される。該カメラシステムは、前記エリアイメージセンサーによるシーンの撮像、及び前記プリンターによって前記シーンを印刷したものを前記カメラシステムから直接出力するためのハンドヘルドユニットを備える。   According to a first aspect of the present invention, at least one area image sensor for capturing a scene, a camera processing device for processing the captured scene in accordance with a predetermined scene conversion request, and a scene of the processed image There is provided a camera system having a printer for printing the image on a print medium, and a print medium and printing ink housed in one removable module inside the camera system. The camera system includes a handheld unit for capturing an image of the scene by the area image sensor and outputting a print of the scene by the printer directly from the camera system.

好ましくは、該カメラシステムは、前記プリンターにより使用されるプリントメディア及び印刷用インクを収納するためのプリントロールを備えている。該プリントロールは前記カメラシステムから取り外しが可能である。さらに、該プリントロールが前記カメラシステムに挿入されたときに認証が実行されるように、該プリントロールは、認証情報を含む認証チップを備え、前記カメラ処理装置は該認証チップを確認(interrogate)するように適合されている。   Preferably, the camera system includes a print roll for storing print media and printing ink used by the printer. The print roll can be removed from the camera system. In addition, the print roll includes an authentication chip that includes authentication information so that authentication is performed when the print roll is inserted into the camera system, and the camera processing device interrogates the authentication chip. Is adapted to be.

さらに、前記プリンターは、ドロップ・オン・デマンドのインクプリンターと、印刷された写真の分離のための裁断装置とを含む。   Furthermore, the printer includes a drop-on-demand ink printer and a cutting device for separating printed photographs.

本発明のさらなる態様に従って、装置を操作するためのユーザ・インターフェースが提供される。該ユーザ・インターフェースは、装置に挿入されるカードを有しており、該カードの表面には、前記装置の出力に関して該カードが有する効果について目に見える説明が含まれている。   In accordance with a further aspect of the invention, a user interface for operating the device is provided. The user interface has a card that is inserted into the device and the surface of the card contains a visual description of the effect the card has on the output of the device.

本発明のさらなる態様に従って、
シーンを撮像するための少なくとも1つのエリアイメージセンサーと;
前記撮像されたシーンを所定のシーン変換要求に従って処理するためのカメラ処理装置と;
前記処理された画像のシーンをプリントメディアに印刷するためのプリンターと;
前記プリンターのための前記プリントメディアと印刷用インクとを収納するための取り外し可能なモジュールと;
を備えたカメラシステムが提供される。該カメラシステムは、前記エリアイメージセンサーによるシーンの撮像、及び前記プリンターによって前記シーンを印刷したものを前記カメラシステムから直接出力するためのハンドヘルドユニットを備える。
According to a further aspect of the invention,
At least one area image sensor for imaging a scene;
A camera processing device for processing the imaged scene according to a predetermined scene conversion request;
A printer for printing the processed image scene on a print medium;
A removable module for housing the print media and printing ink for the printer;
A camera system is provided. The camera system includes a handheld unit for capturing an image of the scene by the area image sensor and outputting a print of the scene by the printer directly from the camera system.

本発明のさらなる態様に従って、
画像を検知するセンサー装置(sensor means)と;
検知された画像を所定の処理要求に従って処理するための処理装置と;
もしあるならば、音声信号を検知画像に関連付けて一致させるための音声録音装置と;
前記カメラシステムで供給されるプリントメディアの第1エリアに処理された検知画像を印刷し、前記プリントメディアの第2エリアに前記音声信号の符号化されたバージョンを印刷するための印刷装置と;
を備えたカメラシステムが提供される。好ましくは、該検知画像は前記プリントメディアの第1面に印刷され、前記音声信号の符号化されたバージョンは該プリントメディアの第2面に印刷される。
According to a further aspect of the invention,
A sensor means for detecting images;
A processing device for processing the detected image in accordance with a predetermined processing request;
An audio recording device for matching the audio signal with the detected image, if any;
A printing device for printing the detected image processed in the first area of the print medium supplied by the camera system and printing the encoded version of the audio signal in the second area of the print medium;
A camera system is provided. Preferably, the detected image is printed on the first side of the print media and the encoded version of the audio signal is printed on the second side of the print media.

本発明に従って、
画像を検知するエリアイメージセンサー装置と;
該検知した画像を保管するための画像ストレージ装置と;
画像検知時におけるカメラの向きを検出する定位装置と;
検知したカメラの向きを使用して前記検知画像を処理するための処理装置と;
を備えたカメラシステムが提供される。
In accordance with the present invention,
An area image sensor device for detecting images;
An image storage device for storing the detected image;
A localization device that detects the orientation of the camera during image detection;
A processing device for processing the detected image using a detected camera orientation;
A camera system is provided.

本発明のさらなる態様に従って、
焦点調整技術を使用して画像をキャプチャーし;
画像における構成の位置の指示器として焦点設定を利用し;
該焦点設定に特有の効果を生成するために該焦点設定を利用して画像を処理し;
その画像を印刷すること;
からなるデジタル画像処理方法が提供される。
According to a further aspect of the invention,
Capture the image using focusing technology;
Use the focus setting as an indicator of the position of the composition in the image;
Processing the image using the focus setting to generate an effect specific to the focus setting;
Printing the image;
A digital image processing method is provided.

好ましくは、前記画像はズーム技術を使用してキャプチャーされ、そのズーム設定は、前記画像の部分を処理するように発見的な方法で使用される。   Preferably, the image is captured using a zoom technique, and the zoom setting is used in a heuristic way to process portions of the image.

本発明のさらなる態様に従って、アイポジション検知装置付きデジタルカメラにて撮影された画像を処理する方法が提供される。該方法は、空間的に変化するsense(アイポジション情報に依存するもの)で画像を処理するため、検知画像にアイポジション情報を使用するステップを含む。   According to a further aspect of the present invention, a method for processing an image taken with a digital camera with an eye position sensing device is provided. The method includes using the eye position information in the sensed image to process the image with a spatially varying sense (which depends on the eye position information).

前記ステップは、興味のあるエリアの位置を前記検知画像の中で特定するためにアイポジション情報を使用することを含む。その処理は、画像への吹き出しの配置や、画像への特定のゆがみの適用を含むことができる。代わりに、その処理は、前記アイポジション情報のエリアに、より細かい画像のためにブラッシュストロークフィルターを適用することも含む。理想的には、前記カメラは、処理の結果を大体直ぐに印刷することができる。   The step includes using eye position information to locate the area of interest in the sensed image. The process can include placement of speech balloons on the image and application of specific distortion to the image. Instead, the process also includes applying a brush stroke filter to the eye position information area for a finer image. Ideally, the camera can print the result of the process almost immediately.

本発明のさらなる態様に従って、自動露出設定を有するデジタルカメラで撮影された画像の処理方法が提供され、該処理方法は、検知画像を処理するために前記情報を使用するステップを含む。   According to a further aspect of the present invention, there is provided a method for processing an image taken with a digital camera having an automatic exposure setting, the processing method comprising using said information to process a sensed image.

上述の、情報を使用するステップは、画像中の色が前記自動露出設定の計算に変換されてなる補正画像を生成するため、画像中の色のリマッピングを決定するために自動露出設定を使用することを含む。その処理は、露出設定が暗い状態を示すときは、リマッピングされる画像の色が、より深く、より鮮やかになるようにし、露出設定が明るい状態を示すときは、リマッピングされる画像の色が、より明るく、より飽和するようにする。   The information using step described above uses the automatic exposure setting to determine remapping of the colors in the image to generate a corrected image in which the colors in the image are converted to the calculation of the automatic exposure setting. Including doing. The process is such that when the exposure setting shows a dark state, the color of the remapped image is deeper and more vivid, and when the exposure setting shows a bright state, the color of the remapped image Make it brighter and more saturated.

最近、デジタルカメラはますます一般的になってきている。これらのカメラは、標準的には、電荷結合素子(CCD)配列を使用した所望の画像の取得、並びに、撮像されたシーンの電子ストレージメディアへの保存(続けて行う画像処理や印刷のために、コンピュータシステムに後で行われるダウンロードのためのもの)を行う。標準的に、画像を印刷するためにコンピュータシステムを使用するとき、洗練されたソフトウェアが、要求に従って画像を処理するために使用される。   Recently, digital cameras have become increasingly popular. These cameras typically acquire desired images using a charge-coupled device (CCD) array and save the captured scene to an electronic storage medium (for subsequent image processing and printing). , For download to be performed later on the computer system). Typically, when using a computer system to print an image, sophisticated software is used to process the image according to requirements.

残念ながら、そのようなシステムは、キャプチャーされた画像の重要な後処理を必要とし、通常は、撮影された向きに画像を提示し、キャプチャーされた画像の必要な修正又は要求された修正を実行するため、後処理工程に依存する。さらに、写真が撮影される際の多くの環境情報が失われる。   Unfortunately, such systems require significant post-processing of the captured image, usually presenting the image in the direction it was taken and performing the necessary or required correction of the captured image. Therefore, it depends on the post-processing process. In addition, a lot of environmental information is lost when the picture is taken.

本発明のさらなる態様に従って、デジタルカメラ及びフラッシュを使用してキャプチャーされた画像の処理方法が提供され、該方法は、以下のステップを含む。
(a) 前記フラッシュの使用に起因した、前記キャプチャーされた画像のゆがみ(ディストーション、distortion)の発見(特定)
(b) 前記ゆがみの影響を局部的に減少させるように前記画像の修正
In accordance with a further aspect of the present invention, there is provided a method of processing an image captured using a digital camera and flash, the method comprising the following steps.
(a) Discovery (identification) of distortion of the captured image resulting from the use of the flash
(b) Modification of the image to locally reduce the effect of the distortion

本発明の第2の態様に従って、キャプチャーされた画像におけるフラッシュのゆがみ(distortion)の影響を減少させるデジタルカメラであって、
(a) 画像のキャプチャーのために画像をキャプチャーするデジタル画像キャプチャー装置と;
(b) フラッシュが誘発した色のゆがみの、前記キャプチャー画像内での位置を探すためのゆがみ位置決定装置と;
(c) 該ゆがみ位置決定装置及び前記デジタル画像キャプチャー装置に接続されて、前記ゆがみの影響を減少させるように前記キャプチャー画像を処理するように適合された画像ゆがみ是正装置と;
(d) 表示のために前記画像ゆがみ是正装置に接続されている表示装置と;
を備えたデジタルカメラが提供される。
In accordance with a second aspect of the present invention, a digital camera that reduces the effects of flash distortion in captured images, comprising:
(a) a digital image capture device that captures images for image capture;
(b) a distortion position determining device for finding a position in the captured image of a flash-induced color distortion;
(c) an image distortion correction device connected to the distortion position determination device and the digital image capture device and adapted to process the captured image to reduce the effects of the distortion;
(d) a display device connected to the image distortion correction device for display;
A digital camera is provided.

本発明のさらなる態様に従って立体写真画像を作り出す方法が提供され、該方法は、
(a) シーンを立体画像的に撮像するためにカメラ装置を使用し;
(b) レンズシステムが第2面に形成された透明なプリントメディアにおける第1面部分の所定位置に、一体的に形成された画像のような立体撮影画像を印刷して、該印刷された立体撮影画像の観察者の左右の眼が前記シーンを立体画像的に見るようにする;
ことを含む。
In accordance with a further aspect of the present invention, there is provided a method for creating a stereographic image, the method comprising:
(a) using a camera device to image the scene as a stereoscopic image;
(b) The lens system prints a stereoscopic image such as an integrally formed image at a predetermined position on the first surface portion of the transparent print medium formed on the second surface, and the printed three-dimensional image Make the left and right eyes of the viewer of the captured image see the scene as a stereoscopic image;
Including that.

本発明のさらなる態様に従って、プリントメディア及びインク供給装置が提供される。該供給装置は、インクと該インク付着用のプリントメディアとをプリント装置に供給するように適合されている。該供給装置は、メディア・フォーマーの上に巻かれた、ロール状のメディアを内部に有している。また、該供給装置は、前記メディア及びインク供給装置の内部に一体的に形成されると共に、インク及びプリントメディアの前記プリント装置への供給のために前記プリント装置に接続されるように適合された少なくとも1つのインク・リザーバを有している。   In accordance with further aspects of the present invention, print media and ink supply devices are provided. The supply device is adapted to supply ink and the print media for ink deposition to the printing device. The supply device includes a roll-shaped medium wound on a media former. The supply device is integrally formed in the medium and the ink supply device, and is adapted to be connected to the printing device for supplying ink and print media to the printing device. Having at least one ink reservoir;

本発明のさらなる態様に従って、カメラ画像システムにて使用されるプリントロールであって、フォーマットされた多数の葉書情報が、所定の間隔で裏面に印刷されてなるプリントロールが提供される。   According to a further aspect of the present invention, there is provided a print roll for use in a camera imaging system, wherein a large number of formatted postcard information is printed on the back surface at predetermined intervals.

本発明の第2の態様に従って、カスタマイズされた葉書の作成方法が提供される。該作成方法は、次のステップを含む。すなわち、フォーマットされた多数の葉書情報区域を所定位置に有する裏面を備えるプリントロールを備えるカメラ装置の使用と、該プリントロールの対応する画像面へのカスタマイズされた画像の撮像と、該カメラ装置によって葉書を作成するための前記プリントロールの使用。   In accordance with a second aspect of the present invention, a method for creating a customized postcard is provided. The production method includes the following steps. That is, the use of a camera device comprising a print roll with a back side having a number of formatted postcard information areas in place, taking a customized image on the corresponding image surface of the print roll, and the camera device Use of the print roll to create a postcard.

本発明の第3の態様に従って、カメラ画像を有する葉書を郵便制度を通じて送る方法が提供され、該方法は、次のステップを含む。すなわち、前払いの郵便料金が含まれているプリントロールを売るステップと、葉書を作成するために該プリントロールをカメラシステムで使用するステップと、該前払いした葉書を郵便で送るステップ。   According to a third aspect of the present invention, a method is provided for sending a postcard with a camera image through a postal system, the method comprising the following steps. That is, selling a print roll that includes prepaid postage, using the print roll in a camera system to create a postcard, and sending the prepaid postcard by mail.

本発明は、さらに、一体型プリンター装置付きカメラシステムを対象とする。そのプリントメディアは、カメラシステムから取り外し自在であり、該プリントメディアに関する重要な情報を保存するための装置を含む。   The present invention is further directed to a camera system with an integrated printer device. The print media is removable from the camera system and includes a device for storing important information about the print media.

本発明は、さらに、一体型プリンター装置付きカメラシステムを対象とする。そのプリントメディアは、カメラシステムから取り外し自在であり、該プリントメディアへの認証アクセスを提供する。   The present invention is further directed to a camera system with an integrated printer device. The print media is removable from the camera system and provides authenticated access to the print media.

本発明のさらなる態様に従って、使用に際してカールする度合いが低い、平らなプリントメディアが提供される。該プリントメディアは、前記平面の方向に異方性の剛性を有している。本発明の第2の態様に従って、異方性剛性を有する平らなプリントメディアにプリントされた画像においてカールを減少させる方法が提供される。該方法は、前記プリントメディアの部分に局所的な圧力を与えるものである。   In accordance with a further aspect of the present invention, a flat print media is provided that is less curled in use. The print medium has anisotropic rigidity in the direction of the plane. In accordance with a second aspect of the present invention, a method is provided for reducing curl in an image printed on a flat print media having anisotropic stiffness. The method applies local pressure to the print media portion.

本発明はさらに、一体型プリンター装置を有するカメラシステムを対象とする。該カメラシステムは、プリンターに残っている画像の数のインジケータを有する。該インジケータは、多くの異なるモードで、残っているプリントの数を表示することができる。   The present invention is further directed to a camera system having an integrated printer device. The camera system has an indicator of the number of images remaining in the printer. The indicator can display the number of prints remaining in many different modes.

本発明のさらなる態様に従って画像の自動処理方法が提供される。該処理方法は、高い空間的な変化を持つ特徴を、画像の中で位置特定し、高い空間的な変化を持つそれらの領域から放射する一連のブラッシュストロークを画像に描くことを含む。好ましくは、そのブラッシュストロークは、重要な特徴付けるものの近傍ではサイズが小さい。加えて、ブラッシュストロークの所定部分の位置はジッタリングの下になる。   In accordance with a further aspect of the invention, an automatic image processing method is provided. The processing method includes locating features with high spatial variation in the image and drawing a series of brush strokes radiating from those regions with high spatial variation in the image. Preferably, the brush stroke is small in size near what is important to characterize. In addition, the position of the predetermined part of the brush stroke is under jittering.

本発明のさらなる態様に従って、入力画像を歪ませるようなワーピング方法が提供される。該方法は、
所定の寸法A×Bである任意の出力画像のためのワープマップであって、該ワープマップの各要素は、理論上の入力画像における対応領域を、前記要素の座標位置に対応した前記任意の出力画像の画素位置にマッピングするワープマップを入力するステップと;
縮小されたワープマップを形成するためにワープマップをワープ画像の次元に縮小するステップと;
該縮小されたワープマップの各要素のため、該要素の値と隣接する要素の値とから前記入力画像における貢献領域を計算するステップと;
該貢献領域から前記要素に対応するワープ画像の画素のため、出力画像の色を決定するステップと;
を含む。
In accordance with a further aspect of the invention, a warping method is provided that distorts an input image. The method
A warp map for an arbitrary output image having a predetermined dimension A × B, wherein each element of the warp map represents a corresponding region in the theoretical input image corresponding to the coordinate position of the element. Inputting a warp map that maps to pixel locations in the output image;
Reducing the warp map to warp image dimensions to form a reduced warp map;
For each element of the reduced warp map, calculating a contribution region in the input image from the value of the element and the value of an adjacent element;
Determining the color of the output image for the pixels of the warped image corresponding to the element from the contribution region;
including.

本発明のさらなる態様に従って、センサー装置によって読み取るため、メディアに保存されたデータの復元力を増加させる方法が提供される。該方法は、
(a) 回復可能な方法で保存されているデータを、高周波成分を有する変調信号にて変調するステップと;
(b) 前記データを変調された形式で前記メディアに保存するステップと;
(c) 該変調され保存されているデータを前記センサー装置によって検知するステップと;
(d) 変調され前記メディアに保存されているデータの位置の分離を探知するため、変調され保存されているデータの変調を中立化するステップと;
(e) 保存データの内の変調されていないものを、保存データの内の変調されているものから回収するステップと;
を含む。
In accordance with a further aspect of the invention, a method is provided for increasing the resiliency of data stored on media for reading by a sensor device. The method
(a) modulating data stored in a recoverable manner with a modulated signal having a high frequency component;
(b) storing the data in a modulated format on the medium;
(c) detecting the modulated and stored data by the sensor device;
(d) neutralizing the modulation of the modulated and stored data in order to detect the separation of the position of the modulated and stored data in the medium;
(e) retrieving the unmodulated portion of the stored data from the modulated one of the stored data;
including.

本発明の好適な実施例は、カメラシステムの中に設けられたシステムであって、後で復号化が行えるように、CCDタイプの装置を介してデータを読み込むためのカード読み取りシステムに関して説明される。さらに、該好適な実施例の説明は、誤差制御システムの分野に大きく依存する。したがって、この仕様が案内される人は、誤差制御システムのエキスパートになるべきである。特に、“デジタル・コミュニケーションやストレージのための誤差制御システム”ステファン.B.ウィッカー著、プレティス・ホール社出版、1995年、特にリード・ソロモン・コードの考察のような標準的なテキストや他の標準的なテキストにしっかりと精通すべきである。   The preferred embodiment of the present invention will be described with reference to a card reading system for reading data via a CCD type device, which is provided in a camera system for later decoding. . Furthermore, the description of the preferred embodiment is highly dependent on the field of error control systems. Therefore, those who are guided by this specification should become experts in error control systems. In particular, "Error control system for digital communication and storage" Stefan. B. You should be well versed in standard texts and other standard texts, such as Wicker, Pretis Hall Publishing, 1995, especially the Reed-Solomon Code consideration.

本発明の目的は、スキャンされた画素を含むスキャンされた画像を、対応するビットマップイメージに変換する方法を提供することであって、該方法は、ビットマップイメージにおける各ビットのために、次のステップを有する。すなわち、
a.スキャンされた画像における周囲のビットの位置から現在のビットにおけるスキャンされた画像での予期された位置を決定するステップ、
b.前記スキャンされた画像における期待された対応画素の位置での値から前記ビットの適当な値を決定するステップ、
c.前記予期された位置での予期された強度の中心の重心の寸法を決定するステップ、
d.前記スキャンされた画像における現在のビットの周囲に近接した画素のため、重心の寸法を決定するステップ、
e.前記重心の寸法が前記予期された位置に関連して伸びる場合、伸びた重心の寸法を有する画素に該予期された位置を調整するステップ、
とを有する。
An object of the present invention is to provide a method for converting a scanned image containing scanned pixels into a corresponding bitmap image, which for each bit in the bitmap image: It has the following steps. That is,
a. Determining the expected position in the scanned image at the current bit from the position of surrounding bits in the scanned image;
b. Determining an appropriate value for the bit from the value at the expected corresponding pixel location in the scanned image;
c. Determining the size of the center of gravity of the center of expected intensity at the expected location;
d. Determining the size of the center of gravity for pixels close to the periphery of the current bit in the scanned image;
e. If the dimension of the center of gravity extends in relation to the expected position, adjusting the expected position to a pixel having an extended center of gravity dimension;
And have.

本発明のさらなる態様に従って、
画像を検知できるデジタルカメラ装置と;
該画像を処理すべく該デジタルカメラ装置に挿入されて該デジタルカメラ装置に画像処理の指示(画像にテキストを付加する指示)を与えるように適合された画像処理データ入力カードと;
前記画像に付加する新たなテキスト文字を作成するために、前記画像処理指示に関連して前記デジタルカメラ装置により使用される一連の非ローマ・フォント文字を有するテキスト入力装置であって、前記画像に付加する前記文字を入力するために前記デジタルカメラ装置に接続されるテキスト入力装置と;
を備えた、画像を編集する、テキストのための装置が提供される。
According to a further aspect of the invention,
A digital camera device capable of detecting images;
An image processing data input card that is inserted into the digital camera device to process the image and is adapted to give the digital camera device an image processing instruction (an instruction to add text to the image);
A text input device having a series of non-Roman font characters used by the digital camera device in association with the image processing instructions to create new text characters to be added to the image, the image input device A text input device connected to the digital camera device for inputting the character to be added;
An apparatus for text editing, comprising:

望ましくは、前記新しいテキスト文字を作成するために前記画像処理指示に従って前記装置により要求された場合に、フォント文字が前記デジタルカメラ装置に送られる。前記画像処理データ入力カードは、ローマフォント文字のセットと、ヘブライ語、キリル文字、アラビア語、漢字及び中国文字(chinese character)の少なくとも1つを含む非ローマ文字とを含む。   Preferably, font characters are sent to the digital camera device when requested by the device in accordance with the image processing instructions to create the new text character. The image processing data input card includes a set of Roman font characters and non-Roman characters including at least one of Hebrew, Cyrillic, Arabic, Chinese characters, and Chinese characters.

本発明のさらなる態様に従って、
画像を検知できるデジタルカメラ装置と;
該画像を処理すべく該デジタルカメラ装置に挿入されて該デジタルカメラ装置に画像処理の指示(画像にテキストを付加する指示)を与えるように適合された画像処理データ入力カードと;
前記画像に付加する新たなテキスト文字を作成するために、前記画像処理指示に関連して前記デジタルカメラ装置により使用される一連の非ローマ・フォント文字を有するテキスト入力装置であって、前記画像に付加する前記文字を入力するために前記デジタルカメラ装置に接続されるテキスト入力装置と;
を備えた、画像を編集する、テキストのための装置が提供される。
According to a further aspect of the invention,
A digital camera device capable of detecting images;
An image processing data input card that is inserted into the digital camera device to process the image and is adapted to give the digital camera device an image processing instruction (an instruction to add text to the image);
A text input device having a series of non-Roman font characters used by the digital camera device in association with the image processing instructions to create new text characters to be added to the image, the image input device A text input device connected to the digital camera device for inputting the character to be added;
An apparatus for text editing, comprising:

本発明の目的は、作り出される新しいフィルターの利点、及び、プリントアウトするデジタル画像の処理のための柔軟性のある方法の利点に加えて、アップデートされる技術の利点を利用することである。   The object of the present invention is to take advantage of the updated technology in addition to the advantages of the new filter created and of the flexible method for processing the digital images to be printed out.

本発明のさらなる態様に従って、一連のインクドットからなる入力画像の再生のための画像コピー装置が提供され、該装置は、
(a) 対応した見本画像を作成するため、前記ドットの周波数よりも高いサンプリングレートで前記入力画像を撮像するイメージング・アレイ装置と;
(b) 前記見本画像中の印刷ドットの位置を決定するために前記画像を処理する処理装置と;
(c) 前記印刷ドットの位置に対応する、プリントメディア上の位置にインクドットを印刷するプリント装置と;
を含む。
According to a further aspect of the present invention, there is provided an image copying device for reproduction of an input image consisting of a series of ink dots, the device comprising:
(a) an imaging array device that captures the input image at a sampling rate higher than the frequency of the dots to create a corresponding sample image;
(b) a processing device for processing the image to determine the position of the printed dots in the sample image;
(c) a printing apparatus that prints ink dots at positions on a print medium corresponding to the positions of the print dots;
including.

2. 前記コピー装置が前記入力画像のフルカラーコピーを印刷する、請求項1に記載された画像コピー装置。 2. The image copying apparatus according to claim 1, wherein the copying apparatus prints a full color copy of the input image.

本発明のさらなる態様に従って、ボケ修正画像を出力するためのカメラシステムが提供される。該カメラシステムは、
画像を検知するイメージ・センサーと;
外部環境に関連した前記画像の何らかの動きを検知して、その動きを示す速度出力を生成するための速度検出手段と;
それらのイメージ・センサーや速度検出手段に接続されると共に、前記画像のボケ修正を行ってボケ修正画像を出力するように適合されたプロセッサー手段と;
を備えている。
In accordance with a further aspect of the present invention, a camera system for outputting a blur corrected image is provided. The camera system
An image sensor for detecting images;
Speed detection means for detecting any movement of the image associated with the external environment and generating a speed output indicative of the movement;
Processor means connected to the image sensors and speed detection means and adapted to perform blur correction of the image and output a blur correction image;
It has.

望ましくは、前記カメラシステムは、前記ボケ修正画像を直ぐに出力するために印刷装置に接続されるものであって、携帯用のハンドヘルドユニットである。前記速度検出手段は、微小電気機械(MEMS)装置のような加速度計を含むことができる。   Preferably, the camera system is a portable handheld unit that is connected to a printing apparatus for outputting the blur correction image immediately. The speed detection means may include an accelerometer such as a micro electromechanical (MEMS) device.

本発明のさらなる態様に従って、フォトセンサー読み取り形成品が提供され、該形成品は、
(a) 発光素子の挿入のための、一連の発光体収納部と;
(b) 前記一連の発光素子から発光された光を、撮像されるべきオブジェクトの表面に焦点を合わせるための発光素子合焦装置と;
(c) 一連のフォトセンサー列を挿入するためのフォトセンサー収納部と;
(d) 撮像されるべきオブジェクトからの反射光を、前記CCD列の特徴的な部分に焦点を合わせる合焦装置と;
を備える。
In accordance with a further aspect of the present invention, a photosensor reading article is provided, the article comprising:
(a) a series of light emitter housings for insertion of light emitting elements;
(b) a light emitting element focusing device for focusing the light emitted from the series of light emitting elements on the surface of the object to be imaged;
(c) a photo sensor housing for inserting a series of photo sensor rows;
(d) a focusing device that focuses reflected light from an object to be imaged on a characteristic part of the CCD array;
Is provided.

本発明の態様に従って、コンピュータシステムに接続されるプリンター装置が提供される。該プリンター装置は、プリントメディアに画像を印刷するためのインクジェット・プリントヘッドからなるプリントヘッドユニットを備え、さらに、消耗財であるプリントロールユニットを挿入するための空洞を有する。該プリントロールユニットは、該空洞に挿入される消耗財であるプリントメディアとインクとを含み、該インクは前記プリントメディアに画像を印刷するため、前記インクジェット・プリントヘッドにより使用される。   In accordance with an aspect of the present invention, a printer device connected to a computer system is provided. The printer apparatus includes a print head unit including an ink jet print head for printing an image on a print medium, and further includes a cavity for inserting a print roll unit which is a consumable. The print roll unit includes print media and ink that are consumables inserted into the cavity, and the ink is used by the inkjet print head to print an image on the print media.

本発明のさらなる態様に従って、
画像を検知するセンサー装置(sensing means)と;
カメラに入力される修正指示に従って前記検知した画像を修正する修正装置と;
該修正された画像を出力するための出力装置と;
を備えたデジタルカメラシステムであって、前記修正装置が、中央のクロスバー・スイッチの周りに配列された一連のPE(Processing element)であるものが提供される。望ましくは、該PEは、書き込み可能なコントロール・ストアを有するマイクロコード・ストアの制御下で動作する算術論理演算ユニット(ALU)を有する。前記PEは、該素子にて使用される画素データを保存するための内部入出力FIFOを含むことができ、前記修正装置は、該装置へ画像の画素データを書き込んだり読み込んだりするための読み書きFIFOに接続されている。
According to a further aspect of the invention,
A sensing means for detecting images;
A correction device for correcting the detected image in accordance with a correction instruction input to the camera;
An output device for outputting the modified image;
A digital camera system is provided, wherein the correction device is a series of processing elements (PEs) arranged around a central crossbar switch. Preferably, the PE has an arithmetic logic unit (ALU) that operates under the control of a microcode store having a writable control store. The PE can include an internal input / output FIFO for storing pixel data used by the element, and the correction device can read and write image pixel data to and from the device. It is connected to the.

それぞれのPEは輪になるように配置されることができ、また、それぞれのPEは最も近い隣のPEに単独で接続される。前記ALUは、内部クロスバースイッチを介してALU内の一連の中央演算装置に接続された一連の入力を受け、テンポラリーデータのストレージのための多くの内部レジスターを有する。該中央演算装置は、乗算器、加算器及びバレル・シフターの内の少なくとも1つを有している。   Each PE can be arranged in a ring, and each PE is connected alone to the nearest neighboring PE. The ALU receives a series of inputs connected to a series of central processing units within the ALU via an internal crossbar switch and has a number of internal registers for temporary data storage. The central processing unit has at least one of a multiplier, an adder, and a barrel shifter.

前記PEはさらに、該PEに画素データを転送するためのコモン・データバスに接続されている。該データバスはデータキャッシュに接続され、該データキャッシュは前記PEと、画像を保管するメモリーストアとの間で中間キャッシュとして機能する。   The PE is further connected to a common data bus for transferring pixel data to the PE. The data bus is connected to a data cache, and the data cache functions as an intermediate cache between the PE and a memory store for storing images.

本発明のさらなる態様に従って、カードに高ピッチレートで保存された検知画像データを、リアルタイムで短時間に復号化する方法が提供され、該方法は、
前記画像データの初期位置を検出するステップと;
該画像データの対応するビットパターンを決定すべく、該画像データを復号化するステップと;
を含む。
According to a further aspect of the present invention, there is provided a method for decoding detected image data stored on a card at a high pitch rate in real time in a short time, the method comprising:
Detecting an initial position of the image data;
Decoding the image data to determine a corresponding bit pattern of the image data;
including.

本発明のさらなる態様に従って、カードに高ピッチレートで保存されて回転やワーピングやマーキングがされる検知画像データをフォールトトレラント方法によって短時間で復号化する方法が提供され、該方法は、
前記画像データの開始の初期位置を決定するステップと;
前記ピッチレートよりも高いサンプリングレートで前記画像データを検知するステップと;
カラム処理によってカラム中の検知画像データを処理し、次のカラムの各ドットの中心(重心)の期待される位置をキープし、期待される次の重心の位置をアップデートするように、各カラムを処理する場合に該重心の微細な調整を行うステップと;
を有する。
According to a further aspect of the present invention, there is provided a method for quickly decoding detected image data stored at a high pitch rate on a card and rotated, warped or marked by a fault tolerant method, the method comprising:
Determining an initial position of the start of the image data;
Detecting the image data at a sampling rate higher than the pitch rate;
Process the detected image data in the column by column processing, keep the expected position of the center (centroid) of each dot in the next column, and update each column to update the expected next center of gravity position. Performing a fine adjustment of the center of gravity when processing;
Have

本発明のさらなる態様に従って、ドット配列からなり、画素配列を形成するため、該ドット配列のピッチ周波数よりも高いレートでサンプリングされた検知画像データのドットの値を正確に検出する方法が提供され、該方法は、
前記画素配列の内で、期待された重心位置に対応した、期待された中央画素を決定するステップと;
前記画素の位置を中心とするドットの値を出力するルックアップテーブルのインデックスとして、前記中央画素の検知値、及び、多くの隣接画素の検知値を使用するステップと;
からなる。
According to a further aspect of the present invention, there is provided a method for accurately detecting dot values of sensed image data consisting of a dot array and sampled at a rate higher than the pitch frequency of the dot array to form a pixel array, The method
Determining an expected central pixel in the pixel array corresponding to an expected centroid position;
Using the detection value of the central pixel and the detection values of many adjacent pixels as an index of a look-up table that outputs a dot value centered on the pixel position;
Consists of.

本発明のさらなる態様に従って、カードに高ピッチレートで保存され、回転やワーピングやマーキングの効果を前提とする検知画像データのドットの位置を正確に決定する方法が提供され、該方法は、
カラム中の前記画像データをカラム形式によって処理するステップと;
画素の前記処理されたカラムのドットパターンを記録するステップと;
前記処理された画素の記録されたドットパターンから、期待されたドットパターンを最新のカラム位置にするステップと;
前記期待されたドットパターンを、前記最新のカラム位置での検知画像データの実際のドットパターンと比較するステップと;
その比較が所定の誤差内である場合に、新しい実際のドット位置を生成するため、前記期待されたドットパターンに適合させるため、実際のドット位置を前記最新のカラム位置に帰るように前記最新のカラム位置を使用するステップと;
次のカラムのドット位置を決定する際に、最新のカラム位置にて前記実際のドット位置を利用するステップと;
を含む。
According to a further aspect of the present invention, there is provided a method for accurately determining the position of dots in detected image data stored at a high pitch rate on a card and premised on the effects of rotation, warping and marking, the method comprising:
Processing the image data in a column in a column format;
Recording a dot pattern of the processed column of pixels;
Setting the expected dot pattern from the recorded dot pattern of the processed pixels to the latest column position;
Comparing the expected dot pattern with the actual dot pattern of the sensed image data at the latest column position;
If the comparison is within a predetermined error, the latest dot position is returned to the latest column position to adapt to the expected dot pattern to generate a new actual dot position. Using column positions;
Using the actual dot position at the latest column position when determining the dot position of the next column;
including.

本発明のさらなる態様に従って、画像に絵画の効果を擬態するために画像バンプマップを結合させる方法が提供され、該方法は、
絵の具が塗られる表面を生じさせる、画像キャンバスバンプマップを規定し、
該表面に描かれるオブジェクトのペイントバンプマップを規定し、
前記画像キャンバスバンプマップによる、前記ペイントバンプマップの修正の程度を決定する剛性因子を使用し、最終的な結合バンプマップを作成するために前記画像キャンバスバンプマップと前記ペイントバンプマップとを結合すること、
を含む。
In accordance with a further aspect of the present invention, there is provided a method of combining an image bump map to mimic the effect of a painting on an image, the method comprising:
Define an image canvas bump map that gives rise to a surface to be painted,
Define the paint bump map of the object drawn on the surface,
Combining the image canvas bump map and the paint bump map to create a final combined bump map using a stiffness factor that determines the degree of modification of the paint bump map by the image canvas bump map. ,
including.

本発明のさらなる態様に従って、芸術的な効果を生じさせるため、入力されてきた画像を自動的に処理する方法が提供され、該方法は、
目的とする芸術的効果を作成するため、所定の出力ガモットへの入力ガモットのマッピングを決定し、
所定の出力ガモットを有する出力画像に前記入力画像をマップするマッピングを利用する、
ことを含む。
According to a further aspect of the present invention, there is provided a method for automatically processing an input image to produce an artistic effect, the method comprising:
Determine the mapping of the input gamut to a given output gamut to create the desired artistic effect,
Using a mapping that maps the input image to an output image having a predetermined output gamut;
Including that.

望ましくは、前記方法は、さらに、ブラッシュストローク・フィルターを使用した、出力画像の後処理のステップを含む。   Preferably, the method further comprises the step of post-processing the output image using a brush stroke filter.

さらに、望ましくは、前記出力ガモットは、所定数の入力ガモット値を、対応する出力色ガモット値にマッピングすると共に、入力ガモット値から出力色ガモット値へのマッピングの維持を挿入することによって形成される。その挿入プロセスは、出力色ガモット値への入力ガモット値の所定数のマッピングの加重和を含む。   Further preferably, the output gamut is formed by mapping a predetermined number of input gamut values to corresponding output color gamut values and inserting a maintenance of the mapping from input gamut values to output color gamut values. . The insertion process includes a weighted sum of a predetermined number of mappings of input gamut values to output color gamut values.

本発明の第2の態様に従って、出力色ガモットに入るように入力色ガモットを圧縮する方法が提供され、該方法は、
現在の入力色の強さにてゼロクロミナンス値を決定するステップと;
前記ゼロクロミナンス値から前記入力色ガモットのエッジまでの距離であるソース距離を決定するステップと;
前記出力色ガモットの好適なエッジを決定するステップと;
前記ゼロクロミナンス値から前記出力色ガモットのエッジまでの距離であるターゲット距離を決定するステップと;
前記ソース距離と前記ターゲット距離との比から導き出される因子により、現在の入力色強さを計るステップと、
を備える。
According to a second aspect of the present invention, there is provided a method for compressing an input color gamut to enter an output color gamut, the method comprising:
Determining a zero chrominance value with the current input color strength;
Determining a source distance that is a distance from the zero chrominance value to an edge of the input color gamut;
Determining a suitable edge of the output color gamut;
Determining a target distance that is a distance from the zero chrominance value to an edge of the output color gamut;
Measuring the current input color strength by a factor derived from the ratio of the source distance to the target distance;
Is provided.

好ましくは、前記現在の入力色強さは、前記ゼロクロミナンス値ポイントからの前記現在の入力色の距離に基づく因子により計られる。   Preferably, the current input color strength is measured by a factor based on the distance of the current input color from the zero chrominance value point.

本発明のさらなる態様に従って、カメラによって検知された画像の出力のための携帯用カメラが提供され、該カメラは、
画像を検知するためのセンサー装置(sensing means)と;
タイル状画像を作成すべく、検知された画像にタイル効果を付与するタイル装置と;
該タイル状画像を表示するための表示装置と;
を備えている。
In accordance with a further aspect of the present invention, a portable camera for the output of an image detected by a camera is provided, the camera comprising:
A sensing means for detecting the image;
A tile device that imparts a tile effect to the detected image to create a tiled image;
A display device for displaying the tiled image;
It has.

本発明のさらなる態様に従って、カメラによって検知された画像の出力のための携帯用カメラが提供され、該カメラは、
画像を検知するためのセンサー装置(sensing means)と;
テクスチャが付加された画像を作成すべく、検知された画像にテクスチャ効果を付与するテクスチャマッピング装置と;
該テクスチャが付加された画像を表示するための表示装置と;
を備える。
In accordance with a further aspect of the present invention, a portable camera for the output of an image detected by a camera is provided, the camera comprising:
A sensing means for detecting the image;
A texture mapping device for applying a texture effect to the detected image to create an image with a texture added;
A display device for displaying an image to which the texture is added;
Is provided.

本発明のさらなる態様に従って、カメラにより検知された画像を出力するための携帯用カメラが提供され、該カメラは、
画像を検知するためのセンサー装置(sensor means)と;
該検知された画像にて光を放つ光源の効果を真似たイルミネーション画像を作成すべく、検知画像に照明効果を付与する照明装置と;
該イルミネーション画像を表示するためのディスプレイ装置と;
を備えている。
According to a further aspect of the present invention, a portable camera is provided for outputting an image detected by a camera, the camera comprising:
Sensor means for detecting images;
An illumination device for providing an illumination effect to the detected image so as to create an illumination image that mimics the effect of a light source that emits light in the detected image;
A display device for displaying the illumination image;
It has.

本発明のさらなる態様に従って、
検知画像の特徴を有する布製衣料を描くディスプレイ装置への出力のため、前記検知画像の処理のためにカメラそうちに入力される一連の入力トークン信号と;
前記出力画像を形成するために、前記入力トークン信号を読み、画像を検知し、読み込んだ入力トークン信号に従って該画像を処理するように適合されたカメラ装置と;
前記出力画像を表示するように適合されたディスプレイ装置と;
からなる衣類創作システムが提供される。
According to a further aspect of the invention,
A series of input token signals input to the camera for processing of the sensed image for output to a display device depicting fabric apparel having the sensed image characteristics;
A camera device adapted to read the input token signal, detect the image, and process the image according to the read input token signal to form the output image;
A display device adapted to display the output image;
A clothing creation system is provided.

本発明のさらなる態様に従って、画像センサー装置と画像表示装置とを有し、画像センサー装置によって検知された任意の画像の部分を衣類にマッピングして、前記画像表示装置にて表示する衣類創作システムが提供される。   According to a further aspect of the present invention, there is provided a clothing creation system that includes an image sensor device and an image display device, maps a portion of an arbitrary image detected by the image sensor device to clothing, and displays the image on the image display device. Provided.

本発明のさらなる態様に従って、処理された画像を形成する方法が提供され、該方法は、一連のカメラ処理ユニット(camera manipulation unit)を接続することを含み、それぞれのカメラ処理ユニットは、処理された出力画像を形成すべく、入力画像に画像処理を与えるものである。それらのカメラ処理ユニットの最初の1つは周囲から画像を検知し、それらのカメラ処理ユニットの少なくとも最後の1つは、色落ちしない出力画像を形成する。   In accordance with a further aspect of the invention, a method is provided for forming a processed image, the method comprising connecting a series of camera manipulation units, each camera processing unit being processed. In order to form an output image, the input image is subjected to image processing. The first one of the camera processing units senses an image from the surroundings, and at least the last one of the camera processing units forms an output image that does not fade.

本発明のさらなる態様に従って、遠い所にある被写体を眺めるための携帯用撮像装置が提供され、該撮像装置は、
遠く離れたところに見える被写体を拡大するための光学レンズシステムと;
該被写体を同時に検知するための検知システムと;
該検知された画像を処理してプリンター装置に送るために前記検知システムに接続される処理装置と;
要求に応じて前記携帯用撮像装置により検知された画像をプリントメディアに印刷するため前記処理装置に接続されたプリンター装置と;
を備えている。
According to a further aspect of the present invention, there is provided a portable imaging device for viewing a subject at a distant location, the imaging device comprising:
An optical lens system to magnify a subject that is visible far away;
A detection system for simultaneously detecting the subject;
A processing device connected to the detection system for processing the detected image and sending it to a printer device;
A printer device connected to the processing device for printing an image detected by the portable imaging device on a print medium upon request;
It has.

好ましくは、前記システムは、さらに、前記プリンター装置にロール状のプリントメディアとインクとを供給するため、前記プリンター装置に接続される、取り外し可能なモジュールに配置された、取り外し可能なプリントメディア供給装置を有する。   Preferably, the system further comprises a removable print media supply device arranged in a removable module connected to the printer device for supplying roll-shaped print media and ink to the printer device. Have

前記プリンター装置は、検知した画像を出力するための、フルカラープリンターを提供する、インクジェットプリント装置を備えることができる。   The printer apparatus may include an inkjet printing apparatus that provides a full-color printer for outputting a detected image.

さらに、好ましい実施例は、遠い所の被写体を前記検知システムに投影するためのビームスプリッタ装置を備えた双眼鏡システムとして実施される。   Furthermore, the preferred embodiment is implemented as a binocular system with a beam splitter device for projecting a distant subject onto the detection system.

本発明のさらなる態様に従って、カードに印刷された一連のドットとして、フォールトトレラント方法により符号化されている録音済み音声を再生するシステムが提供される。該システムは、
録音済み音声の目に見える形式のスキャニングのためのオプティカル・スキャナー装置と;
スキャンされた音声符号を復号化して音声信号を生成するように、該オプティカル・スキャナー装置に接続された処理装置と;
要求に応じて該音声信号を再生するように、該処理装置に接続された音声エミッター装置と;
を備える。
In accordance with a further aspect of the present invention, a system is provided for playing recorded audio that has been encoded by a fault tolerant method as a series of dots printed on a card. The system
An optical scanner device for the visual scanning of recorded audio;
A processing device connected to the optical scanner device to decode the scanned audio code to generate an audio signal;
An audio emitter device connected to the processing device to reproduce the audio signal on demand;
Is provided.

前記符号化は、録音済み音声のリード・ソロモン符号化を含むことができ、スキャニングを補助するために高周波変調されたインクドット列を含むことができる。   The encoding may include Reed-Solomon encoding of recorded speech and may include a series of ink dots that are high frequency modulated to aid scanning.

前記システムは、前記カードを挿入するための細長い穴を有する棒状のアームを備える。   The system includes a rod-like arm having an elongated hole for inserting the card.

本発明のさらなる態様に従って、印刷されたカードに情報を担持させる方法を提供するものであって、該方法は、
カードの表面を多くの所定のエリアに分割するステップと;
該所定のエリアの内の第1エリアに格納されるべき第1のデータを印刷するステップと;
前記カードに保存されている情報を読み取るときに前記印刷された第1の所定エリアを使用するステップと;
該カードに保存された情報をアップデートするときに、該カードに保存されるさらなる情報が印刷される、データの印刷に使用されていない第2の所定エリアを決定するステップと;
を有する。
In accordance with a further aspect of the present invention, there is provided a method for carrying information on a printed card, the method comprising:
Dividing the surface of the card into a number of predetermined areas;
Printing first data to be stored in a first area of the predetermined area;
Using the printed first predetermined area when reading information stored on the card;
Determining a second predetermined area that is not used for printing data, when further information stored on the card is printed when updating the information stored on the card;
Have

望ましくは、それらのエリアは、予め決められた順番で選択される。また、例えば、データのリード・ソロモン符号化によってもたらされるフォールトトレラントを有するデータを印刷するため、高解像度のインクドットプリンターを使用して印刷される。前記エリアのボーダーの線引きをするボーダー領域が印刷されて提供され、さらに、該ボーダー領域の位置を示すのに役立つ、多数のボーダー・ターゲット・マーカーが提供される。それらのボーダー・ターゲットは、第1色の大きなエリアと、該エリアの中心に配置される、第2色の小さなエリアとからなる。   Preferably, these areas are selected in a predetermined order. It is also printed using a high resolution ink dot printer, for example, to print data with fault tolerance resulting from Reed-Solomon encoding of the data. A border area is provided that is printed to delineate the border of the area, and a number of border target markers are provided to help indicate the position of the border area. These border targets consist of a large area of the first color and a small area of the second color arranged in the center of the area.

望ましくは、前記データは、市松模様パターンのような高周波変調信号を使用して印刷されている。その印刷されたものは、1インチにつき約1200ドットよりも大きい解像度のドット配列であり、好ましくは、1インチにつき少なくとも1600ドットよりも大きい解像度を有するドット配列である。該所定のエリアは、該カードの表面にて標準の配列に配列することができ、該カードは、一般的な長方形のクレジットカードのようなサイズ及び形状にすることができる。   Preferably, the data is printed using a high frequency modulation signal such as a checkered pattern. The print is a dot array with a resolution greater than about 1200 dots per inch, and preferably a dot array with a resolution greater than at least 1600 dots per inch. The predetermined areas can be arranged in a standard array on the surface of the card, and the card can be sized and shaped like a typical rectangular credit card.

本発明のさらなる態様に従って、画像処理のための一連の指示を作成する方法が提供される。該方法は、
ユーザが選択するため、見本画像の初期配列を表示するステップと;
該見本画像の少なくとも1つをユーザが選択することを受諾するステップと;
見本画像のさらなる配列を作成するため、その選択結果を利用するステップと;
ユーザが最終的な最適画像を少なくとも1つ選択するまで、上述のステップを繰り返して適用するステップと;
前記一連の指示に従って見本画像を作成するステップと;
該一連の指示を出力するステップと;
を含む。
In accordance with a further aspect of the invention, a method is provided for creating a series of instructions for image processing. The method
Displaying an initial array of sample images for selection by the user;
Accepting a user to select at least one of the sample images;
Using the selection result to create a further array of sample images;
Applying the above steps repeatedly until the user selects at least one final optimal image;
Creating a sample image according to the series of instructions;
Outputting the series of instructions;
including.

さらに、前記方法は、ユーザの写真をスキャンすることと、各見本画像の作成のための初期画像として該スキャンされた写真を使用すること、を含む。前記指示は、前記カードの第2面に視覚表示されるように印刷されるのに加えて、第1面にエンコード形式で印刷されることができる。加えて、処理画像自体は印刷される。   Further, the method includes scanning a user's photograph and using the scanned photograph as an initial image for creation of each sample image. In addition to being printed for visual display on the second side of the card, the instructions can be printed in encoded form on the first side. In addition, the processed image itself is printed.

前記配列を形成するため、遺伝的アルゴリズムや遺伝的プログラミング技術を含む画像の形成に様々な技術が使用され得る。さらに、さらなる画像の形成において、‘これまでのところベスト(best so far)’の画像が使用のために保存される。   Various techniques can be used to form the image, including genetic algorithms and genetic programming techniques, to form the sequence. Further, in further image formation, the 'best so far' image is saved for use.

望ましくは、カードや写真を販売する自動販売機に組み込まれたコンピュータシステムにこの方法が実行される。   Preferably, the method is performed on a computer system incorporated in a vending machine that sells cards and photos.

本発明のさらなる態様に従って、挿入されたカードに情報を保存するための情報保存装置が提供され、該装置は、
カードの面に印刷されたパターンであって、カードの所定数の可能動作領域(possible active area)に配置されたパターンを検知するセンサー装置と;
該検知したパターンを対応するデータに復号化するためのデコード装置と;
カード表面であって前記活動領域の1つにドットパターンを印刷するための印刷装置と;
前記センサー装置及び前記印刷装置の公知の相対位置に、検知されるカードを配置する位置決め装置と;
を備え、
前記検知装置は、前記カードの最新の動作プリント領域にて印刷されたパターンを検知するように適合され、
前記デコード装置は、該検知したパターンを対応する最新のデータに復号化するように適合化され、
前記印刷装置は、最新のデータのアップデートが要求された場合に、カードの正確な位置決めのために位置決め装置が駆動された後、前記活動領域の内の最新の1つに、アップデートされた最新データをプリントするように適合される。
According to a further aspect of the present invention, there is provided an information storage device for storing information on an inserted card, the device comprising:
A sensor device for detecting a pattern printed on the surface of the card and disposed in a predetermined number of possible active areas on the card;
A decoding device for decoding the detected pattern into corresponding data;
A printing device for printing a dot pattern on the card surface and in one of the active areas;
A positioning device for placing a detected card at a known relative position of the sensor device and the printing device;
With
The detection device is adapted to detect a pattern printed in the latest operational print area of the card;
The decoding device is adapted to decode the detected pattern into corresponding latest data;
If the printing device is requested to update the latest data, the printing device is updated to the latest one of the active areas after the positioning device is driven for accurate card positioning. Is adapted to print.

前記印刷装置は、望ましくは、1度にカード幅の印刷が可能なカード幅プリントヘッドからなるインクジェットプリンタ装置を備える。前記位置決め装置は、カードを挟んでカードの移動をコントロールするための一連のピンチローラーを備えることができる。前記印刷されたパターンは、例えば、リードソロモン復号化を使用して、フォールトトレラント方法により配列され、前記デコード装置は、該フォールトトレラントパターンのために好適なデコーダを有する。   The printing apparatus preferably includes an inkjet printer apparatus including a card width print head capable of printing a card width at a time. The positioning device can comprise a series of pinch rollers for controlling the movement of the card across the card. The printed pattern is arranged in a fault tolerant manner, for example using Reed-Solomon decoding, and the decoding device has a decoder suitable for the fault tolerant pattern.

本発明のさらなる態様に従って、
画像を検知するイメージ・センサーと;
検知画像及び関連するシステム構成を保存するためのストレージ装置と;
前記検知画像を修正するために画像修正データモジュールを入力するためのデータ入力装置と;
前記検知画像の処理に加えて前記カメラシステムのコントロールのために、前記イメージ・センサーや前記ストレージ装置や前記データ入力装置に接続された処理装置と;
供給されるプリントメディアに、要求に応じて前記検知画像を印刷するための印刷装置と;
を備えたデジタルカメラシステム、並びに、
さらなる画像修正モジュールの挿入に基づき、前記デジタルカメラシステムの操作の修正を前記処理装置にさせるように適合された、画像修正データモジュールの提供方法が提供される。
According to a further aspect of the invention,
An image sensor for detecting images;
A storage device for storing detected images and related system configurations;
A data input device for inputting an image correction data module to correct the detected image;
A processing device connected to the image sensor, the storage device, and the data input device for controlling the camera system in addition to processing of the detected image;
A printing device for printing the detected image on a supplied print medium as required;
A digital camera system comprising:
A method is provided for providing an image correction data module adapted to cause the processing device to modify the operation of the digital camera system based on the insertion of a further image correction module.

望ましくは、符号化されたデータをその表面に有するカードを前記画像修正データモジュールが有し、そのデータの符号化は印刷により行われ、前記データ入力装置は、カード表面をスキャンするための光学スキャナーを有する。操作の修正は、繰り返し、同じ画像に、一連の画像修正モジュールが挿入される順にそれぞれ画像修正を行う。   Preferably, the image correction data module includes a card having encoded data on the surface thereof, the encoding of the data is performed by printing, and the data input device is an optical scanner for scanning the card surface Have The correction of the operation is repeated, and the images are corrected in the order in which a series of image correction modules are inserted into the same image.

本発明のさらなる態様に従って、
画像を検知するイメージ・センサーと;
検知画像及び関連するシステム構成を保存するためのストレージ装置と;
前記検知画像を修正するために画像修正データモジュールを入力するためのデータ入力装置と;
前記検知画像の処理に加えて前記カメラシステムのコントロールのために、前記イメージ・センサーや前記ストレージ装置や前記データ入力装置に接続された処理装置と;
供給されるプリントメディアに、要求に応じて前記検知画像を印刷するための印刷装置と;
を備え、画像修正データモジュールは、デジタルカメラシステムにて一連の診断テストの実施、及び前記印刷装置を介した結果の印刷を前記処理装置が行うように適合されたデジタルカメラシステムが提供される。
According to a further aspect of the invention,
An image sensor for detecting images;
A storage device for storing detected images and related system configurations;
A data input device for inputting an image correction data module to correct the detected image;
A processing device connected to the image sensor, the storage device, and the data input device for controlling the camera system in addition to processing of the detected image;
A printing device for printing the detected image on a supplied print medium as required;
And the image correction data module is provided with a digital camera system adapted to perform a series of diagnostic tests in the digital camera system and to print the results through the printing device.

望ましくは、符号化された指示データをその一面に有するカードを前記画像修正データモジュールが有し、前記処理装置は、該カードに符号化された指示データを読み取るための装置を有する。前記診断テストは、連続した全てが黒の帯を印刷するなどによって、プリンター装置の操作を向上させるため、プリンター装置のためのクリーニングサイクルを有することもできる。代わりに、インクジェットプリンターの操作を向上させるため、前記診断テストがノズルの調節を含むこともできる。加えて、カメラシステムの様々な内部操作パラメータを印刷することもできる。重力衝撃センサーをカメラシステムに装備した場合には、前記診断テストは、該センサーの局地を印刷することもできる。   Preferably, the image correction data module includes a card having encoded instruction data on one side thereof, and the processing device includes a device for reading the instruction data encoded on the card. The diagnostic test can also have a cleaning cycle for the printer device to improve the operation of the printer device, such as by printing all continuous black bands. Alternatively, the diagnostic test may include nozzle adjustments to improve the operation of the ink jet printer. In addition, various internal operating parameters of the camera system can be printed. If a gravitational impact sensor is installed in the camera system, the diagnostic test can also print the locality of the sensor.

本発明のさらなる態様に従って、画像を生成するためのカメラシステムが提供され、該カメラシステムは、画像を検知するセンサーと;何らかの所定の処理要求に従って前記検知画像を処理するための処理装置と;プリントメディアの面に前記検知画像を印刷するための印刷装置と;前記プリントメディアに形成された磁気感受性面に関連情報を記録するための磁気記録装置とを備える。前記関連情報は、検知画像に関連した音声情報を含み、前記印刷装置は、望ましくは、検知画像を前記プリントメディアの第1面に印刷し、前記磁気記録装置は前記プリントメディアの第2面に前記関連情報を記録する。前記プリントメディアは、前記カメラシステムの内部の取り外し可能なロールに収納されることができる。1つの実施例では、前記磁気感受性面は、前記プリントメディアの裏面に貼り付けられた帯片を含むことができる。   In accordance with a further aspect of the present invention, a camera system for generating an image is provided, the camera system comprising: a sensor for detecting the image; a processing device for processing the detected image according to some predetermined processing request; A printing apparatus for printing the detected image on the surface of the medium; and a magnetic recording apparatus for recording related information on the magnetic sensitive surface formed on the print medium. The related information includes audio information related to a detected image, and the printing apparatus preferably prints the detected image on the first surface of the print medium, and the magnetic recording device on the second surface of the print medium. The related information is recorded. The print media can be stored in a removable roll inside the camera system. In one embodiment, the magnetically sensitive surface can include a strip attached to the back surface of the print media.

本発明のさらなる態様に従って、携帯用カメラ装置のイメージセンサーにキャプチャーされた画像の、色落ちしないコピーを作る方法が提供される。前記携帯用カメラ装置は、該カメラ装置に格納されているプリントメディアに印刷するための一体型コンピュータ装置と一体型プリンター装置とを備えており、前記方法は、前記イメージセンサーにて画像を検知するステップと;フォールトトレラントの符号性質を持つ符号化形式に前記画像を変換するステップと;前記一体型プリンター装置を使用して画像の色落ちしない記録としての画像の符号化形式を印刷するステップとからなる。   In accordance with a further aspect of the invention, a method is provided for making a non-fading copy of an image captured by an image sensor of a portable camera device. The portable camera device includes an integrated computer device and an integrated printer device for printing on a print medium stored in the camera device, and the method detects an image with the image sensor. Converting the image into an encoding format having fault-tolerant encoding properties; and printing the image encoding format as a non-fading record of the image using the integrated printer device. Become.

好ましくは、前記一体型プリンター装置は、プリントメディアの第1面及び第2面に印刷するための装置を備え、前記検知画像やその視覚的な処理は第1面に印刷され、符号化された形式は第2面に印刷される。検知画像のサムネイルは、前記画像のエンコード形式の横に印刷されることができる。また、そのフォールト・トレラント符号化は、永久的な録音が、反復可能な高周波スペクトラル成分を有する符号化形式に市松模様のような高周波変調信号を適用するのに加えて、画像のリードソロモン符号化バージョンを形成することも含む。   Preferably, the integrated printer device includes devices for printing on a first surface and a second surface of a print medium, and the detected image and its visual processing are printed and encoded on the first surface. The form is printed on the second side. The thumbnail of the detected image can be printed beside the image encoding format. Its fault-tolerant coding also allows Reed-Solomon coding of images in addition to applying a checkered high-frequency modulation signal to a coding format in which permanent recordings have repeatable high-frequency spectral components. Also includes forming a version.

本発明の第1の態様に従って、カメラ装置で使用される画像処理カードの販売のための販売システムが提供される。該カメラ装置は、画像処理カードの挿入のためのカード処理インターフェースを有する。該画像処理カードは、前記カメラ装置での画像の処理のためのものである。前記販売システムは、
画像処理カードを出力するための複数の印刷装置と;
該画像処理カードの作成のために必要な一連の画像処理カードデータのストレージのために、それぞれの印刷装置が対応するコンピュータシステムに接続されている。
According to a first aspect of the present invention, a sales system for sales of image processing cards used in camera devices is provided. The camera device has a card processing interface for inserting an image processing card. The image processing card is for processing an image in the camera device. The sales system
A plurality of printing devices for outputting an image processing card;
In order to store a series of image processing card data necessary for creating the image processing card, each printing apparatus is connected to a corresponding computer system.

望ましくは、前記コンピュータシステムは、コンピュータ・ネットワークを介してキャッシュされる方法で、一連の画像処理カードデータを保存する。そして、カード配布コンピュータは、新しい画像処理カードをコンピュータシステムへ配布する。   Preferably, the computer system stores a series of image processing card data in a manner that is cached via a computer network. The card distribution computer distributes the new image processing card to the computer system.

前記画像処理カードにイベントカード(季節ごとのイベントに利用すべくカードをプリントアウトするため、前記コンピュータシステムに分配される季節ごとのカード)が含まれる場合、本発明は特定用途を有する。   If the image processing card includes an event card (a seasonal card distributed to the computer system for printing out the card for use in seasonal events), the present invention has a specific application.

本発明のさらなる態様に従って、オブジェクトの表面に符号化された、一連のブロックデータ領域を有するデータ構成が提供され、それぞれのブロックデータ領域は、
符号化された形式に復号化されるデータを含む符号化データ領域と;
該符号化データ領域の第1の周辺部を囲むように配置された、一連のクロックマーク構成と;
該符号化データ領域の第2の周辺部を囲むように配置された、一連の、簡単に特定できるターゲット構成と;
からなる。
According to a further aspect of the present invention, a data structure is provided having a series of block data areas encoded on the surface of an object, each block data area comprising:
An encoded data area containing data to be decoded into an encoded format;
A series of clock mark configurations arranged to surround the first peripheral portion of the encoded data region;
A series of easily identifiable target configurations arranged to surround the second peripheral portion of the encoded data region;
Consists of.

前記ブロックデータ領域は、さらに、前記符号化データ領域の第3の周辺部の周りに配置された方向データ構成(orientation data structure)を含む。該方向データ構成は、前記周辺部のエッジに沿った、等データ点の線(a line of equal data points)を含むことができる。   The block data area further includes an orientation data structure disposed around a third peripheral portion of the encoded data area. The directional data structure may include a line of equal data points along the peripheral edge.

前記クロックマーク構成は、符号化データ領域のエッジに沿って配置されたデータ点の実質的近接第2の線(a substantially adjacent second line)に加えて、等データ点の第1の線を有することができる。該クロックマーク構成は、符号化データ領域の反対側に配置されることができる。   The clock mark configuration has a first line of equal data points in addition to a substantially adjacent second line of data points located along the edge of the encoded data region. Can do. The clock mark configuration can be located on the opposite side of the encoded data area.

前記ターゲット構成は、間隙を有するように配置された一連のデータポイントブロック(data points blocks)のセットを有し、該データポイントは、中央部以外では、第1の大きさ(magunitude)の定値を有し、中央部では、前記第1の大きさとは逆の大きさを有する。前記ブロックのセットは、さらに、前記逆の大きさの連続群の値を有する、ターゲット数表示構成を含む。   The target configuration has a set of data points blocks arranged so as to have a gap, and the data points have a constant value of a first magnitude except at the center. And having a size opposite to the first size at the central portion. The set of blocks further includes a target number display configuration having the values of the inverse continuous group.

前記データ構成は、理想的には基材表面に印刷された一連のドットにて活用される。   The data structure is ideally utilized with a series of dots printed on the substrate surface.

本発明の第2の態様に従って、オブジェクトの表面に符号化されたデータ構成を復号化する方法が提供され、該データ構成は一連のブロックデータ領域を有し、それぞれのブロックデータ領域は、
符号化された形式に復号化されるデータを含む符号化データ領域と;
該符号化データ領域の第1の周辺部を囲むように配置された、一連のクロックマーク構成と;
該符号化データ領域の第2の周辺部を囲むように配置された、一連の、簡単に特定できるターゲット構成と;
からなり、前記方法は、
(a) 前記データ構成をスキャンするステップと;
(b) 前記データ構成のスタートの位置を探すステップと;
(c) 前記ターゲット構成の最新の方向を判断して該ターゲット構成の位置を探すステップと;
(d) 前記ターゲット構成の位置から前記クロックマーク構成の位置を探すステップと;
(e) 前記符号化データ領域のビットデータの期待される位置を決定するために前記クロックマーク構成を使用するステップと;
(f) 各ビットデータのために期待されるデータ値を決定するステップと;
を有する。
According to a second aspect of the present invention, there is provided a method for decoding a data structure encoded on the surface of an object, the data structure having a series of block data areas, each block data area comprising:
An encoded data area containing data to be decoded into an encoded format;
A series of clock mark configurations arranged to surround the first peripheral portion of the encoded data region;
A series of easily identifiable target configurations arranged to surround the second peripheral portion of the encoded data region;
The method comprises:
(a) scanning the data structure;
(b) searching for the starting position of the data structure;
(c) determining the latest direction of the target configuration and searching for the position of the target configuration;
(d) searching for the position of the clock mark configuration from the position of the target configuration;
(e) using the clock mark configuration to determine an expected position of bit data in the encoded data region;
(f) determining an expected data value for each bit data;
Have

前記クロックマーク構成は、符号化データ領域のエッジに沿って配置されたデータ点の実質的近接第2の線(a substantially adjacent second line)に加えて、等データ点の第1の線を有することができる。前記(e) の、使用するステップは、前記クロックマーク構成中の最新の位置を維持するため、疑似位相ロックループタイプのアルゴリズムを使用してデータポイントの第2の線に沿ってランすることも含む。   The clock mark configuration has a first line of equal data points in addition to a substantially adjacent second line of data points located along the edge of the encoded data region. Can do. The step of using (e) may also run along the second line of data points using a pseudo-phase locked loop type algorithm to maintain the current position in the clock mark configuration. Including.

さらに、決定するステップ(f)
は、
検知したビット値を3つの隣接する領域(すなわち、中央領域、第1のlower extreme 領域、及び第2のupper extreme 領域)に分けることを含み、
第1の領域にそれらの値が含まれ、該第1の領域に対応するビット値を決定し;
第2の領域にそれらの値が含まれ、該第2の領域に対応するビット値を決定し;
前記中央領域にそれらの値が含まれ、その値が第1の値か第2の値かを決定するために空間的に囲まれる値を使用する。
Further, determining step (f)
Is
Dividing the sensed bit value into three adjacent regions (i.e., a central region, a first lower extreme region, and a second upper extreme region);
Those values are included in a first region and a bit value corresponding to the first region is determined;
Those values are included in a second region, and a bit value corresponding to the second region is determined;
Those values are included in the central region, and spatially enclosed values are used to determine whether the value is the first value or the second value.

本発明のさらなる態様に従って、検知データの出力データ値を決定する方法が提供され、該方法は、
(a) 検知されたデータ値を3つの隣接する領域(すなわち、中央領域、第1のlower extreme 領域、及び第2のupper extreme 領域)に分けることを含み、
第1の領域にそれらの値が含まれ、該第1の領域に対応するビット値を決定し;
第2の領域にそれらの値が含まれ、該第2の領域に対応するビット値を決定し;
前記中央領域にそれらの値が含まれ、その値が第1の値か第2の値かを決定するために空間的に囲まれる値を使用する。
In accordance with a further aspect of the invention, a method is provided for determining an output data value of sensing data, the method comprising:
(a) dividing the detected data value into three adjacent regions (ie, a central region, a first lower extreme region, and a second upper extreme region);
Those values are included in a first region and a bit value corresponding to the first region is determined;
Those values are included in a second region, and a bit value corresponding to the second region is determined;
Those values are included in the central region, and spatially enclosed values are used to determine whether the value is the first value or the second value.

本発明のさらなる態様に従って、複数の異なる供給スロットに複数の異なる流体を供給するための流体供給装置が提供される。該供給スロットは、交互に配置するという方法で周期的な間隔を置いて配置され、前記流体供給装置は、
複数の異なる流体のそれぞれのための流体注入口装置と;
異なる流体のそれぞれのための流路であって、前記供給スロットのそれぞれに接続されたメインチャンネル流路と;
前記供給スロットのそれぞれを、対応するメインチャンネル流路に接続するサブチャンネル流路と;
を備えている。流体の数は2よりも多く、成形された流体供給ユニットの第1面に少なくとも2本のメインチャンネル流体装置が形成され、他のメインチャンネル流体装置は、成形品の表面を貫通する貫通孔を介して前記スロットに接続されたサブチャンネル流路で該成形品の上面に形成される。
In accordance with a further aspect of the invention, a fluid supply apparatus is provided for supplying a plurality of different fluids to a plurality of different supply slots. The supply slots are arranged at periodic intervals in an alternating manner, and the fluid supply device comprises:
A fluid inlet device for each of a plurality of different fluids;
A flow path for each of the different fluids, and a main channel flow path connected to each of the supply slots;
A sub-channel channel connecting each of the supply slots to a corresponding main channel channel;
It has. The number of fluids is more than 2, and at least two main channel fluid devices are formed on the first surface of the molded fluid supply unit, and the other main channel fluid devices have through holes penetrating the surface of the molded product. A sub-channel flow path connected to the slot is formed on the upper surface of the molded product.

望ましくは、前記供給装置は、プラスチック射出成形されており、前記スロットのピッチレートは、1インチ当たり1000に等しいか、1000よりも少ない。さらに、スロットの集合が、写真の幅に形成される。望ましくは、前記流体供給装置は、1又はそれ以上のピンチローラーを収容するためのローラースロット装置を複数有しており、前記流体はインクからなり、前記ローラーは、前記スロットに接続されたプリントヘッドをプリントメディアが横切るように制御される。前記スロットは、カラムに配置された一連のカラースロットに分割される。   Preferably, the feeding device is plastic injection molded and the pitch rate of the slots is equal to or less than 1000 per inch. In addition, a collection of slots is formed in the width of the photograph. Preferably, the fluid supply device includes a plurality of roller slot devices for receiving one or more pinch rollers, the fluid is made of ink, and the rollers are connected to the slots. Is controlled so that the print media crosses the print media. The slot is divided into a series of color slots arranged in a column.

好ましくは、前記流体供給装置の少なくとも1つのチャンネルは、製造時に露出され、該露出面をシーリングテープにてシールされている。有利なことには、前記流体供給装置は、テープによる自動結合されたワイヤを得るため、TABスロットにより提供される。   Preferably, at least one channel of the fluid supply device is exposed during manufacture, and the exposed surface is sealed with a sealing tape. Advantageously, the fluid supply device is provided by a TAB slot to obtain a self-bonded wire by tape.

本発明のさらなる態様に従って、インク供給路を介して供給するインク吐出装置を少なくとも1つ使用する画像印刷用プリンター装置が提供され、該装置は、
前記プリンターへのインク供給のためのインク供給装置に連動するように適合された、1つの出力色につき1つで一連のインク供給口と;
前記プリンター装置の外表面に沿った、一連の導電性コネクタパッドと;
インクを吐出させる一連のインク吐出装置を有するページ幅プリントヘッドと;
前記インク供給口から前記ページ幅プリントヘッドの前記インク吐出装置にインクを供給するインク供給システムと;
前記ページ幅プリントヘッドを前記導電性コネクタパッドに接続する、複数の相互接続ワイヤと;
を備え、
前記プリンター装置は、ハウジング装置の中に取り外し可能に挿入されるように適合され、該ハウジングは、前記導電性コネクタパッドとの相互接続のための相互接続部や、前記インク供給装置によるインクの供給のため、前記インク供給口との相互接続のためのインク供給コネクタを有している。
According to a further aspect of the present invention, there is provided a printer device for image printing that uses at least one ink ejection device that supplies via an ink supply path, the device comprising:
A series of ink supply ports, one for each output color, adapted to work with an ink supply device for supplying ink to the printer;
A series of conductive connector pads along the outer surface of the printer device;
A page width printhead having a series of ink ejection devices for ejecting ink;
An ink supply system for supplying ink from the ink supply port to the ink ejection device of the page width print head;
A plurality of interconnect wires connecting the page width printhead to the conductive connector pads;
With
The printer device is adapted to be removably inserted into a housing device, the housing comprising an interconnect for interconnection with the conductive connector pad, and ink supply by the ink supply device Therefore, an ink supply connector for interconnection with the ink supply port is provided.

望ましくは、前記複数の相互接続ワイヤは、前記プリンター装置の外面を包み込むと共に、導電性コネクターパッドに接続されたテープ自動ボンディング・シートを形成する。該相互接続されたワイヤーは、
前記導電性コネクターパッドに相互接続されると共に、プリントヘッドの全長に沿って互いにほぼ平行な配置された第1のセットのワイヤーと、
該プリントヘッドの表面から互いにほぼ平行に配置された第2のセットのワイヤーと、
を有している。第1のセットのワイヤーのそれぞれは、第2のセットのワイヤの多くに接続されている。前記インク供給口は、薄いダイアフラム部を有している。該ダイアフラム部は、前記インク供給コネクタが前記ハウジング装置に挿入されることに基づき穴が開けられている。
Preferably, the plurality of interconnect wires wrap around the outer surface of the printer device and form an automatic tape bonding sheet connected to a conductive connector pad. The interconnected wires are
A first set of wires interconnected to the conductive connector pads and disposed generally parallel to each other along the entire length of the printhead;
A second set of wires arranged substantially parallel to each other from the surface of the printhead;
have. Each of the first set of wires is connected to many of the second set of wires. The ink supply port has a thin diaphragm portion. The diaphragm portion is perforated based on the ink supply connector being inserted into the housing device.

前記ページ幅プリントヘッドは、それぞれに所定数のインク吐出装置を有する、実質的に等しく繰り返し可能なユニット(substantially identical repeatable unit)を多数備えることができる。該ユニットは、所定数の接続ワイヤを有する標準インターフェースを有し、各標準インターフェース装置は、導電性コネクタパッドにグループで接続される。該プリントヘッド自体は、シリコンウェハから作成されることができ、ページ幅ストリップに分離される。   The page width print head may include a number of substantially identical repeatable units, each having a predetermined number of ink ejection devices. The unit has a standard interface with a predetermined number of connection wires, and each standard interface device is connected to the conductive connector pads in groups. The print head itself can be made from a silicon wafer and separated into page width strips.

本発明のさらなる態様に従って、電流の変動をモニターするという方法によって集積回路のモニタリングに対する抵抗を与える方法が提供され、前記方法は、前記集積回路の一部であるスプリアスノイズ発生回路を形成するステップを含む。   In accordance with a further aspect of the present invention, there is provided a method of providing resistance to integrated circuit monitoring by a method of monitoring current fluctuations, the method comprising forming a spurious noise generating circuit that is part of the integrated circuit. Including.

前記ノイズ発生回路はLFSR(リニア・フィードバック・シフト・レジスタ)のような乱数発生器を含むことができる。   The noise generation circuit may include a random number generator such as LFSR (Linear Feedback Shift Register).

本発明のさらなる態様に従って、低消費電力のCMOS回路が提供される。該回路は、第1のクロックと入力とに接続されたゲートを有するpタイプのトランジスタ、及び、第2のクロックと入力とに接続されたnタイプのトランジスタを備え、該CMOS回路は、オーバーラップしない方法により前記第1及び第2のクロックが切り換えられることに稼動される。   In accordance with a further aspect of the present invention, a low power CMOS circuit is provided. The circuit comprises a p-type transistor having a gate connected to a first clock and an input, and an n-type transistor connected to a second clock and an input, the CMOS circuit comprising an overlap The first and second clocks are switched by a method that does not.

該回路は、高出力スイッチング特性(high power switching characteristics)を持つ第2の回路に実質的に隣接されることができる。該第2の回路は、ノイズ発生回路を有することができる。   The circuit can be substantially adjacent to a second circuit having high power switching characteristics. The second circuit can include a noise generation circuit.

本発明のさらなる態様に従って、異なる出力状態に対応する複数のレベル状態を有する、メモリー回路のモニタリングに対する抵抗を与える方法が提供され、該方法は、有効な出力状態のためだけに中間状態を利用することを含む。該メモリーはフラッシュメモリーにすることができ、さらに、1かそれ以上のパリティビットを有することができる。   In accordance with a further aspect of the present invention, there is provided a method for providing resistance to memory circuit monitoring having a plurality of level states corresponding to different output states, the method utilizing an intermediate state only for valid output states. Including that. The memory can be a flash memory and can further have one or more parity bits.

本発明のさらなる態様に従って、集積回路に手を加える攻撃(attempt)をモニターするため、ランダムノイズ発生器に取り付けられた回路(circuit path)を使用する、前記集積回路に手を加えることに対する抵抗を与える方法が提供される。   In accordance with a further aspect of the present invention, a resistance to tampering with the integrated circuit is used using a circuit path attached to a random noise generator to monitor attacks that tamper with the integrated circuit. A method of giving is provided.

前記回路(circuit
path)は、互いに逆であって、様々な回路に接続され、リセット出力信号を生成するための排他的OR回路となる、第1パス及び第2パスを有する。
Circuit
path) is opposite to each other and has a first path and a second path that are connected to various circuits and serve as exclusive OR circuits for generating a reset output signal.

本発明の第2の態様に従って、接地された大きな抵抗に一端が接続され、電源に接続された第2の大きな抵抗に他端が接続されたタンパー検出ラインが提供される。該タンパー検出ラインは、さらに、期待される電圧が所定の許容範囲内にあるかを比較するコンパレータに接続される。一連のテストに接続される抵抗の中間には、そのテストの1つによってタンパリングが検出された場合にコンパレータがリセット信号を出力するように大きな抵抗が出力される。   In accordance with a second aspect of the present invention, there is provided a tamper detection line having one end connected to a grounded large resistor and the other end connected to a second large resistor connected to a power source. The tamper detection line is further connected to a comparator that compares whether the expected voltage is within a predetermined tolerance. In the middle of the resistors connected to the series of tests, a large resistor is output so that the comparator outputs a reset signal when tampering is detected by one of the tests.

本発明のさらなる態様に従って、認証されるべき付属ユニットの有効性を判断するための認証システムが提供され、該システムは、
第1及び第2のセキュアキーの確認のための中央システムユニットと;
該中央システムユニットに取り付けられた第1及び第2のセキュアキーを保持するオブジェクトと;
を備え、
第2のセキュアキーを保持するオブジェクトは取り外せないような方法で取り付けられ、
前記中央システムユニットは、
第1のレスポンスを決定するために前記第1のセキュアキーを保持するオブジェクトに問い合わせを行い、
第2のレスポンスを決定するために前記第2のセキュアキーを保持するオブジェクトに問い合わせを行うために前記第1のレスポンスを利用し、
さらに、
前記第2のセキュアキーを保持するオブジェクトが、有効な取り付けユニットに取り付けられているかどうかを判断するために、前記第1のレスポンスと前記第2のレスポンスを比較するように適合されている。
According to a further aspect of the invention, an authentication system is provided for determining the validity of an attached unit to be authenticated, the system comprising:
A central system unit for verification of the first and second secure keys;
An object holding first and second secure keys attached to the central system unit;
With
The object holding the second secure key is attached in such a way that it cannot be removed,
The central system unit is
Querying the object holding the first secure key to determine a first response;
Using the first response to query the object holding the second secure key to determine a second response;
further,
The first response and the second response are adapted to be compared to determine whether an object holding the second secure key is attached to a valid attachment unit.

前記取り付けユニットの所定の使用の後に該ユニットが作動を止めるように、前記第2のセキュアキーを保持するオブジェクトは、さらに、効果的に単調減少するマグニチュード・ファクターを有するレスポンスを含む。したがって、取り付けられたユニットは、消耗品を含むことができる。   The object holding the second secure key further includes a response having a magnitude factor that effectively decreases monotonically so that the unit ceases operation after a predetermined use of the mounting unit. Thus, the attached unit can include consumables.

さらに、前記中央システムユニットは、前記第1のレスポンスを受け取った数を前記第1のセキュアキーを保持するオブジェクトに問い合わせることができ、そのとき、該中央システムユニットは、第2のレスポンスの判断のための前記第2のセキュアキーを保持するオブジェクトへの問い合わせに際して前記第1のレスポンスを使用し、該中央システムユニットは、前記第2のレスポンスの有効範囲を判断するため、前記第1のセキュアキーを保持するユニットに問い合わせを行うために前記第2のレスポンスを使用する。   In addition, the central system unit can query the object that holds the first secure key for the number of received first responses, at which time the central system unit can determine the second response. Using the first response when inquiring to the object holding the second secure key for the central system unit to determine the valid range of the second response The second response is used to make an inquiry to the unit that holds

該システムは、理想的には、インクジェットプリンターにおけるインクのように、プリンターの消耗品を認証するために使用される。   The system is ideally used to authenticate printer consumables, such as ink in inkjet printers.

実際に、内蔵型インクジェットプリンターを有するカメラシステムにおいて、消耗品であるインクに関連して、好ましい実施例が論じられるだろうけれども、本発明がそのことに限定されるものではない。   Indeed, in a camera system having a built-in inkjet printer, the preferred embodiment will be discussed in connection with consumable ink, but the invention is not so limited.

好適なその他の実施例の説明Description of other preferred embodiments

好適な実施例により構成されたデジタル画像処理カメラシステムは、図1に示されている。カメラユニット1は、一体的なプリントロール(図示しない)を挿入する手段を含む。カメラユニット1は、カメラによって撮影される像3を検出するエリアイメージセンサ2を含む。オプションとして、シーン3を映像化し、オプション的に立体画法の出力効果の生成物を得るため、第2のエリアイメージセンサを搭載してもよい。 A digital image processing camera system constructed in accordance with the preferred embodiment is shown in FIG. The camera unit 1 includes means for inserting an integral print roll (not shown). The camera unit 1 includes an area image sensor 2 that detects an image 3 photographed by the camera. As an option, a second area image sensor may be mounted to visualize the scene 3 and optionally obtain a 3D image output product.

カメラ1は、センサ2によって検出された像を表示するためのオプションのカラーディスプレイ5を含む。シンプルな像がディスプレイ5に表示されるとき、ボタン6を押下することが可能であり、その結果、印刷された画像8がカメラユニット1によって出力される。以下では、Artcard(アートカード)9と呼ばれる一連のカードは、一方の面に符号化された情報を含み、もう一方の面に、Artcard9により生成された特定の効果によって歪められた画像を含む。Artcard9は、カメラ1の側面にあるArtcardリーダー10に挿入され、挿入されると、Artcard9の面に現れた歪みと同じ方法で歪められた出力画像8が得られる。したがって、この簡単なユーザインタフェースを使用することにより、特定の効果を生じさせることを望むユーザは、多数のArtcard9のうちの一枚をArtcardリーダー10に挿入し、像3の写真を撮影するためボタン19を利用することが可能であり、その結果、対応した歪んだ出力画像8が得られる。 The camera 1 includes an optional color display 5 for displaying an image detected by the sensor 2. When a simple image is displayed on the display 5, the button 6 can be pressed, so that a printed image 8 is output by the camera unit 1. In the following, a series of cards called Artcards (Art Cards) 9 will contain information encoded on one side, and on the other side will contain images that have been distorted by a particular effect generated by Artcard 9. The Artcard 9 is inserted into the Artcard reader 10 on the side of the camera 1, and when inserted, an output image 8 that is distorted in the same manner as the distortion that appears on the surface of the Artcard 9 is obtained. Therefore, by using this simple user interface, a user who wants to produce a specific effect inserts one of a number of Artcards 9 into the Artcard reader 10 and takes a button to take a picture of the image 3 19 can be used, resulting in a corresponding distorted output image 8.

カメラユニット1は、カメラユニットの内部プリントロールに残っているプリントアウトの数を含む説明情報を表示するための簡単なLCD出力ディスプレイ15に加えて、多数の他の制御ボタン13、14を含み得る。更に、様々な出力フォーマットがCHPスイッチ17によって制御され得る。 The camera unit 1 may include a number of other control buttons 13, 14 in addition to a simple LCD output display 15 for displaying explanatory information including the number of printouts remaining on the internal print roll of the camera unit. . In addition, various output formats can be controlled by the CHP switch 17.

次に図2を参照すると、カメラ1の内部ハードウェアの概略図が示されている。内部ハードウェアは、Artcam(アートカム)中央プロセッサユニット(ACP)31を中心としている。 Referring now to FIG. 2, a schematic diagram of the internal hardware of the camera 1 is shown. The internal hardware is centered on an Artcam central processor unit (ACP) 31.

Artcam中央プロセッサ31
Artcam中央プロセッサ31は、システムの心臓部を形成する多数の機能を提供する。ACP31は、好ましくは、複雑な高速CMOSシステムオンチップとして実現される。一部のフルカスタム領域を有する標準的なセル設計を利用することが推奨される。0.25ミクロンCMOSプロセス上の製作は、合理的に小さいダイ面積と共に、要求され
る密度及び速度を実現する。
Artcam central processor 31
The Artcam central processor 31 provides a number of functions that form the heart of the system. The ACP 31 is preferably implemented as a complex high speed CMOS system on chip. It is recommended to use a standard cell design with some full custom area. Fabrication on a 0.25 micron CMOS process achieves the required density and speed with a reasonably small die area.

ACP31によって与えられる機能には次の機能が含まれる:
1. エリアイメージセンサ2の制御及びデジタル化。ACPの3次元立体視バージョンは、第2のオプションのイメージセンサ4が立体視効果のために設けられた二つのエリアイメージセンサインタフェースを必要とする;
2. エリアイメージセンサ補償、再フォーマッティング、及び画像強調;
3. 記憶装置33に対するメモリインタフェース及び管理;
4. Artcard9からのデータの読み出しのために設けられたArtcardリーダーのリニアイメージセンサ34のインタフェース、制御及びアナログ・デジタル変換;
5. デジタル化された符号化Artcard画像からの未加工Artcardデータの抽出;
6. Artcardの符号化データのリード・ソロモン誤差検出及び訂正。Artcard9の符号化された面は、Artcard9の画像歪み面に表示された効果を生成するためどのように画像を処理するかに関する情報を含む。この情報は、以下では、「Varkスクリプト」と呼ばれるスクリプトの形式である。Varkスクリプトは、望ましい効果を生成するためACP31内で実行されるインタープリタによって利用される;
7. Artcard9上のVarkスクリプトの解釈;
8. Varkスクリプトによって指定されたとおりの画像処理動作の実行;
9. 用紙輸送36、ズームレンズ38、自動焦点39、及びArtcardドライバ37のための様々なモーターの制御;
10. プリントロール42からの写真8を裁断する裁断機41の動作用の裁断機アクチュエータ40の制御;
11. 印刷用画像データの中間調化;
12. 適当な時におけるプリントヘッド44へのプリントデータの供給;
13. プリントヘッド44の制御;
14. プリントヘッド44へのインク圧送の制御;
15. オプションのフラッシュユニット56の制御;
16. 方位センサ46、自動焦点47及びArtcard挿入センサ49を含むカメラ内の様々なセンサの読み出し及びそれに基づく処置;
17. ユーザインタフェースボタン6、13、14の読み出し及びそれに基づく処置。
18. 状態ディスプレイ15の制御;
19. ビューファインダー及びプレビュー画像のカラーディスプレイ5への供給;
20. 電力管理回路51によるACP電力消費を含むシステム電力消費の制御;
21. 汎用コンピュータへの外部通信52の提供(パートUSBを使用);
22. プリントロール認証チップ53の情報の読み出し及び保存;
23. カメラ認証チップ54の情報の読み出し及び保存;
24. テキスト修正用のオプションのミニキーボード57との通信。
The functions provided by ACP 31 include the following functions:
1. Control and digitization of the area image sensor 2. The 3D stereoscopic version of ACP requires a two area image sensor interface in which a second optional image sensor 4 is provided for the stereoscopic effect;
2. Area image sensor compensation, reformatting, and image enhancement;
3. Memory interface and management for storage device 33;
4). Interface, control and analog / digital conversion of the linear image sensor 34 of the Artcard reader provided for reading data from the Artcard 9;
5. Extraction of raw Artcard data from a digitized encoded Artcard image;
6). Reed-Solomon error detection and correction of Artcard encoded data. Coded surface of Artcard9 includes information on how to handle how image to generate an image distortion face the displayed effects of Artcard9. This information is in the form of a script called “Vark script” below. The Vark script is used by an interpreter executed within the ACP 31 to produce the desired effect;
7). Interpretation of Vark script on Artcard9;
8). Execution of image processing operations as specified by the Vark script;
9. Control of various motors for paper transport 36, zoom lens 38, autofocus 39, and Artcard driver 37;
10. Control of the cutter actuator 40 for operation of the cutter 41 that cuts the photograph 8 from the print roll 42;
11. Halftoning of image data for printing;
12 Supply of print data to the print head 44 at an appropriate time;
13. Control of the print head 44;
14 Control of ink pumping to the print head 44;
15. Control of optional flash unit 56;
16. Readout of various sensors in the camera, including orientation sensor 46, autofocus 47 and Artcard insertion sensor 49, and treatment based thereon;
17. Reading of the user interface buttons 6, 13, 14 and treatment based thereon.
18. Control of the status display 15;
19. Supply of a viewfinder and a preview image to the color display 5;
20. Control of system power consumption including ACP power consumption by the power management circuit 51;
21. Provision of external communication 52 to a general-purpose computer (using part USB);
22. Reading and storing information of the print roll authentication chip 53;
23. Reading and storing information of the camera authentication chip 54;
24. Communication with optional mini keyboard 57 for text correction.

水晶振動子58
水晶振動子58は、システムクロック用の周波数基準として使用される。システムクロックは非常に高いため、ACP31は水晶58から得られた周波数を増大させるため位相ロックループクロック回路を含む。
Crystal resonator 58
The crystal resonator 58 is used as a frequency reference for the system clock. Since the system clock is very high, the ACP 31 includes a phase locked loop clock circuit to increase the frequency obtained from the crystal 58.

イメージセンシング
エリアイメージセンサ2
エリアイメージセンサ2は、そのレンズを通る像を電気信号へ変換する。エリアイメージセンサは、電荷結合素子(CCD)でもよく、アクティブ画素センサ(APS)CMOSイメージセンサでもよい。現在のところ、利用可能なCCDは、通常、かなり高い画質を有するが、CMOSイメージャの開発は、現在、非常に盛んに行われている。CMOSイメージャは、最終的には、画素数の少ないCCDよりも実質的に安価になり、駆動回路及び信号処理を組み込み得ることが予想される。CMOSイメージャは、12インチウェハーに移行しているCMOS製造技術で製作することが可能である。したがって、CCDとCMOSイメージャの間の製造コストの差は増加し、徐々にCMOSイメージャの方が支持される可能性が高い。しかし、現在のところ、CCDは、最良の選択肢である。
Image sensing area Image sensor 2
The area image sensor 2 converts an image passing through the lens into an electric signal. The area image sensor may be a charge coupled device (CCD) or an active pixel sensor (APS) CMOS image sensor. At present, available CCDs usually have a fairly high image quality, but the development of CMOS imagers is currently very active. It is expected that a CMOS imager will eventually be substantially less expensive than a CCD with a small number of pixels and can incorporate drive circuitry and signal processing. CMOS imagers can be fabricated with CMOS manufacturing technology that is moving to 12-inch wafers. Therefore, the manufacturing cost difference between the CCD and the CMOS imager increases, and the CMOS imager is likely to be gradually supported. However, at present, CCD is the best option.

Artcamユニットは、1500×1000型のエリアイメージセンサで適切な結果を生じるであろう。しかし、例えば、750×700型のような小型のセンサも、様々な市場で適切であろう。Artcamは、従来のデジタルカメラと比べると、イメージセンサの解像度に対する感度が低い。その理由は、Artcard9に入っている殆どのスタイルは、解像度の不足をわかりにくくするように画像を処理するからである。例えば、画像が印象派の絵画へ変換される効果をシミュレートするため歪められる場合、原画像の低解像度は最小の影響で使用可能である。低解像度入力画像が典型的に気付かれない更なる例には、極めて歪んだ画像を生じる画像ワープ、画像の複数の縮写(例えば、パスポート写真)、ベースレリーフメタルルックのためのバンプマッピングのようなテクスチャ処理、及び構造化されたシーンへの写真合成が含まれる。 The Artcam unit will produce adequate results with a 1500 × 1000 type area image sensor. However, small sensors such as, for example, a 750 × 700 type may also be appropriate in various markets. Artcam is less sensitive to the resolution of the image sensor than conventional digital cameras. The reason is that most styles in Artcard 9 process images so as to obscure the lack of resolution. For example, if the image is distorted to simulate the effect of being converted to an impressionist painting, the low resolution of the original image can be used with minimal impact. Further examples where low resolution input images are typically not noticed, such as image warping that results in very distorted images, multiple reductions of images (eg passport photos), bump mapping for base relief metal look Includes texture processing and photo composition into structured scenes.

このように低解像度イメージセンサを許容することは、Artcamユニット1カメラの製造コストを低下させる重要なファクタである。低コストの750×500型イメージセンサを用いるArtcamは、しばしば、非常に高価な1500×1000型イメージセンサを用いる従来のデジタルカメラよりも優れた結果を生じる。 Allowing low-resolution image sensors in this way is an important factor that reduces the manufacturing cost of the Artcam unit 1 camera. Artcams using low cost 750 × 500 type image sensors often give better results than conventional digital cameras using very expensive 1500 × 1000 type image sensors.

オプションの立体視3次元イメージセンサ4
Artcamユニット1の3次元バージョンは、立体視動作のため補助イメージセンサ4を備える。このイメージセンサは、主イメージセンサと同一である。オプションのイメージセンサを駆動する回路は、設計コストの増大を低減するため、ACPチップ31の標準部品として収容してもよい。或いは、別個の3次元Artcam
ACPを設計してもよい。このオプションは、主流の単一センサ型のArtcamの製造コストを削減する。
Optional stereoscopic 3D image sensor 4
The three-dimensional version of the Artcam unit 1 includes an auxiliary image sensor 4 for stereoscopic operation. This image sensor is identical to the main image sensor. A circuit for driving an optional image sensor may be accommodated as a standard part of the ACP chip 31 in order to reduce an increase in design cost. Alternatively, a separate 3D Artcam
An ACP may be designed. This option reduces the manufacturing cost of the mainstream single sensor Artcam.

プリントロール認証チップ53
小型チップ53は、各プリントロール42に収容される。このチップは、APS(新写真システム)フィルムカートリッジのような他の形態のカメラフィルムユニット上のバーコード、光学センサ及びホイール、並びに、ISO/ASAセンサの機能を置き換える。
Print roll authentication chip 53
The small chip 53 is accommodated in each print roll 42. This chip replaces the function of bar codes, optical sensors and wheels, and ISO / ASA sensors on other forms of camera film units such as APS (New Photo System) film cartridges.

認証チップは、以下のその他の機能も提供する:
1. APSロールから機械的及び光学的に検出されるデータではなく、データの保存;
2. 高解像度の正確さの媒体の残りの長さの表示;
3. 粗悪な模造プリントロールコピーを防止するための認証情報。
The authentication chip also provides the following other functions:
1. Storage of data, not data detected mechanically and optically from the APS roll;
2. Display the remaining length of the medium with high resolution accuracy;
3. Authentication information to prevent bad imitation print roll copying.

認証チップ53は、1024ビットのフラッシュメモリを含み、1024ビットのうちの128ビットは認証鍵であり、512ビットは認証情報である。更に、認証鍵が直接アクセスされないことを保証するため、暗号化回路が収容される。 The authentication chip 53 includes a 1024-bit flash memory, and 128 bits of the 1024 bits are an authentication key, and 512 bits are authentication information. In addition, an encryption circuit is accommodated to ensure that the authentication key is not directly accessed.

プリントヘッド44
Artcamユニット1は、十分に小規模、十分に低電力、十分に高速、十分に高品質、及び十分に低コストであり、プリントロールに適合したどのようなカラー印刷技術でも利用可能である。以下、当該印刷ヘッドについて具体的に説明する。
Print head 44
The Artcam unit 1 is sufficiently small, sufficiently low power, sufficiently fast, sufficiently high quality, and sufficiently low in cost, and can be used with any color printing technology adapted to the print roll. Hereinafter, the print head will be specifically described.

インクジェットヘッドの仕様は以下の通りである。 The specifications of the inkjet head are as follows.

Figure 0004309954
オプションのインク圧コントローラ(図示せず)
インク圧コントローラの機能は、Artcamに組み込まれたインクジェットプリントヘッド44のタイプに依存する。一部のタイプのインクジェットでは、インク圧は単純に大気圧であるため、インク圧コントローラを使用しなくても済む。他のタイプのプリントヘッドは、安定化した正のインク圧を必要とする。この場合、インプレッシャ・コントローラは、ポンプ及び圧力トランスデューサを含む。
Figure 0004309954
Optional ink pressure controller (not shown)
The function of the ink pressure controller depends on the type of ink jet print head 44 incorporated in Artcam. In some types of inkjets, the ink pressure is simply atmospheric pressure, so there is no need to use an ink pressure controller. Other types of printheads require a stabilized positive ink pressure. In this case, the pressure controller includes a pump and a pressure transducer.

その他のプリントヘッドは、インク圧力に、典型的に約100KHzの規則的な振動を生じさせるため超音波トランスデューサが必要である。この場合、ACP31は、これらの振動の周波数位相及び振幅を制御する。 Other printheads require an ultrasonic transducer to cause regular oscillations in the ink pressure, typically about 100 KHz. In this case, the ACP 31 controls the frequency phase and amplitude of these vibrations.

用紙輸送モーター36
用紙輸送モーター36は、プリントロール42内からプリントヘッドの傍を通して、一定速度で用紙を移動させる。モーター36は、用紙を移動させるローラーを駆動するため適切な速度までギアダウンされた小型モーターである。機械的なガタ又はその他の振動が印刷されたドット行間隔に影響を与えるので、高画質を実現するためには、高品質モーターと機械式ギアが必要である。
Paper transport motor 36
The paper transport motor 36 moves the paper at a constant speed from inside the print roll 42 through the side of the print head. The motor 36 is a small motor geared down to an appropriate speed to drive a roller that moves the paper. Since mechanical play or other vibrations affect the printed dot row spacing, high quality motors and mechanical gears are required to achieve high image quality.

用紙輸送モータードライバ60
モータードライバ60は、APC31からのデジタルモーター制御信号をモーター36の駆動に適切なレベルまで増幅する小型回路である。
Paper transport motor driver 60
The motor driver 60 is a small circuit that amplifies the digital motor control signal from the APC 31 to a level appropriate for driving the motor 36.

用紙プルセンサ
用紙プルセンサ50は、印刷プロセス中にユーザによるカメラユニットからの写真の引っ張りを検出する。APC31は、このセンサ50を読み出し、この状況を検出した場合、裁断機41を作動する。用紙プルセンサ50は、動作中にカメラをより絶対確実にするために組み込まれる。ユーザが印刷中に強引に用紙を引き出そうとした場合、プリント機構44又はプリントロール42は、(極端なケースでは)破損するであろう。ポッドが完全に排出される前にポラロイド式カメラからポッドを引き出すことが許されるので、一般の人々はこのような動作を行うことに慣れている。したがって、一般の人々は、用紙を引き出してはならないという印刷された指示に留意しない可能性が高い。
Paper Pull Sensor The paper pull sensor 50 detects the pulling of the photograph from the camera unit by the user during the printing process. The APC 31 reads the sensor 50 and operates the cutting machine 41 when detecting this situation. The paper pull sensor 50 is incorporated to make the camera more absolutely reliable during operation. If the user attempts to pull out the paper forcibly during printing, the print mechanism 44 or print roll 42 will be damaged (in the extreme case). Since the pod is allowed to be pulled out of the Polaroid camera before it is completely ejected, the general public is accustomed to performing such an operation. Thus, the general public is likely not to pay attention to the printed instructions that the paper should not be pulled out.

Artcamは、好ましくは、引っ張り検出後に裁断機41が用紙を裁断した後、写真印刷プロセスを再開する。 Artcam preferably restarts the photo printing process after the cutter 41 cuts the paper after detecting the pull.

引っ張りセンサは、歪みゲージセンサとして実現してもよく、又は用紙が引っ張られたときに用紙ドライブローラーに発生するトルクによって偏向される小さいプラスチック製のフラグを検出する光学センサとして実現してもよい。後者の実現形態は、低コストのため推奨される。 The pull sensor may be realized as a strain gauge sensor, or may be realized as an optical sensor that detects a small plastic flag deflected by a torque generated in the paper drive roller when the paper is pulled. The latter implementation is recommended because of its low cost.

用紙裁断機アクチュエータ40
用紙裁断機アクチュエータ40は、写真の終わりに、又は用紙引っ張りセンサ50が作動されたときに、裁断機41に用紙を裁断させる小型アクチュエータである。
Paper cutter actuator 40
The paper cutter actuator 40 is a small actuator that causes the cutter 41 to cut the paper at the end of the photo or when the paper pull sensor 50 is activated.

用紙裁断機アクチュエータ40は、APCからの裁断機制御信号をアクチュエータ41によって要求されるレベルまで増幅する小型回路である。 The paper cutter actuator 40 is a small circuit that amplifies the cutter control signal from the APC to a level required by the actuator 41.

Artcard9
Artcard9はArtcamユニット用のプログラム記憶媒体である。前述の通り、プログラムは、Varkスクリプトの形式である。Varkは、特に、Artcamユニットのため開発された強力な画像処理言語である。各Artcard9は一つのVarkスクリプトを格納し、これによって、一つの画像処理スタイルを規定する。
Artcard9
Artcard 9 is a program storage medium for the Artcam unit. As described above, the program is in the form of a Vark script. Vark is a powerful image processing language specifically developed for the Artcam unit. Each Artcard 9 stores one Var script, thereby defining one image processing style.

好ましくは、VARK言語は高度に画像処理専用である。高度に画像処理専用とすることにより、カード上に詳細を記憶するために要する記憶容量は実質的に減少する。更に、機能強化された効果を含む新しいプログラムを作成できる簡便さは、実質的に向上する。好ましくは、この言語は、ワープマップによる画像ワーピング、コンボリューション、カラールックアップテーブル、画像のポスタリゼーション、画像へのノイズ付加、画像強調フィルタ、ペインティングアルゴリズム、ブラシジッタリング及び操作エッジ検出フィルタ、タイリング、光源による照明、バンプマップ、テキスト、顔検出及び物体検出属性、3次元フォントを含むフォント、並びに、任意の複合予備レンダリングアイコンを含む多数の画像処理機能を取り扱う機能を含む。Vark言語インタープリタの動作のより詳細な内容は以下に記載される。 Preferably, the VARK language is highly dedicated to image processing. By being highly dedicated to image processing, the storage capacity required to store details on the card is substantially reduced. Furthermore, the convenience with which new programs including enhanced functions can be created is substantially improved. Preferably, this language is warp map image warping, convolution, color look-up table, image posterization, image noise addition, image enhancement filter, painting algorithm, brush jittering and manipulation edge detection filter, tiling Illuminating with light sources, bump maps, text, face detection and object detection attributes, fonts including 3D fonts, and the ability to handle multiple image processing functions including any composite pre-rendering icons. More detailed contents of the operation of the Vark language interpreter are described below.

したがって、作成された言語によって定義されるような言語構造を利用することにより、任意の画像に対する新しい影響を作成し、Artcard上の安価な記憶装置のために構築し、その後、カメラの所有者に配布することが可能である。更に、カードの片面には、カードのもう一方の面に記憶された特定のVARKスクリプトが任意の撮影像に与える影響を説明する例が設けられる。 Thus, by utilizing a language structure as defined by the language created, a new impact on any image is created and built for an inexpensive storage device on Artcard, after which the camera owner It is possible to distribute. Further, on one side of the card, an example is provided for explaining the influence of a specific VARK script stored on the other side of the card on an arbitrary photographed image.

このようなシステムを利用することにより、VARKインタープリタがカメラ装置に組み込まれているならば、装置に依存しないシナリオが与えられ、その結果として、根本的な技術が長期のうちに完全に変えられるという点で、カメラ技術は、著しく陳腐化する虞を伴わずに普及させることができる。更に、新しいフィルタが作成され、カード読み出し用の簡単なカードを用いるような、安価な方式で配布されたときに、Varkスクリプトを更新することが可能である。 By using such a system, if the VARK interpreter is built into the camera device, a device-independent scenario is given, and as a result, the underlying technology can be completely changed in the long term. In this respect, camera technology can be disseminated without the risk of becoming obsolete. Furthermore, it is possible to update a Vark script when a new filter is created and distributed in an inexpensive manner, such as using a simple card for card reading.

Artcard9は、クレジットカード(長さ86mm、幅54mm)と同一フォーマットの薄い白色プラスチック製の片である。Artcardは、高解像度インクジェットプリンタを使用して両面印刷されている。このインクジェットプリンタ技術は、1600dpi(63dpmm)の解像度のArtcamに使用される技術と同じ技術であると考えられる。Artcard9の主要な特徴は、安価な製造コストである。Artcardは、プラスチックフィルムの幅広いウェブと同様に高速で製造可能である。プラスチックウェブは、親水性の染料固着層で両面を覆われる。ウェブは、ページ幅のカラーインクジェットプリンタを用いて両面同時に印刷される。次に、ウェブは、個別のカードに切断され打ち抜かれる。カードの一方の面は、Artcard9が検出された像に与える影響を人が読める形で表現したものが印刷される。これは、カードの裏面に記憶されたVarkスクリプトを使用して処理された単純な標準画像でもよい。 Artcard 9 is a thin white plastic piece in the same format as a credit card (length 86 mm, width 54 mm). Artcard is printed on both sides using a high resolution inkjet printer. This inkjet printer technology is considered to be the same technology used for Artcam with a resolution of 1600 dpi (63 dpi). The main feature of Artcard 9 is its low manufacturing cost. Artcard can be manufactured at high speeds as well as a wide web of plastic films. The plastic web is covered on both sides with a hydrophilic dye fixing layer. The web is printed simultaneously on both sides using a page width color inkjet printer. The web is then cut and punched into individual cards. One side of the card is printed with a human-readable representation of the effect of Artcard 9 on the detected image. This may be a simple standard image processed using a Vark script stored on the back of the card.

カードの裏面には、画像処理シーケンスを定義するVarkスクリプトに復号化され得るドットの配列が印刷される。この印刷面積は80mm×50mmであり、全部で15876000ドットがある。このドットの配列は、少なくとも1.89MByteのデータを表現することができる。高信頼性を実現するため、広範な誤り検出及び訂正がドットの配列に組み込まれる。これにより、カードの実質的な部分が汚損され、損耗され、皺を付けられ、或いは、汚されても、データの完全性に影響が及ばないようにすることができる。使用されるデータ符号化方式はリード・ソロモン符号化であり、データの半分が誤り訂正のために用いられる。これにより、各Artcard9には、誤り訂正された967Kbyteのデータを記憶させることができる。 On the back side of the card is printed an array of dots that can be decoded into a Vark script that defines the image processing sequence. This printing area is 80 mm × 50 mm, and there are a total of 15876000 dots. This dot arrangement can represent at least 1.89 MBytes of data. Extensive error detection and correction is built into the dot array to achieve high reliability. This ensures that even if a substantial portion of the card is soiled, worn, wrinkled or soiled, the data integrity is not affected. The data encoding method used is Reed-Solomon encoding, and half of the data is used for error correction. As a result, each Artcard 9 can store 967 Kbytes of error-corrected data.

リニアイメージセンサ34
Artcardリニアセンサ34は、上記のArtcardデータ画像を電気信号へ変換する。エリアイメージセンサ2、4の場合と同様に、リニアイメージセンサは、CCD又はAPS
CMOS技術を用いて製造可能である。イメージセンサ34の有効長さは50mmであり、Artcard9上のデータ配列の幅と一致する。ナイキストのサンプリング定理を充たすため、リニアイメージセンサ34の解像度は、イメージセンサに到達するArtcard光学像の最高空間周波数の少なくとも2倍でなければならない。実際上、データ検出は、イメージセンサ解像度がこれよりも実質的に高くなった場合、より簡単になる。4900dpi(180dpmm)の解像度が選ばれた場合、全部で9450画素が与えられる。この解像度は、5.3μmの画素センサピッチを必要とする。これは、千鳥状にされた4行の20μm画素センサを使用することによって簡単に実現することができる。
Linear image sensor 34
The Artcard linear sensor 34 converts the Artcard data image into an electrical signal. As in the case of the area image sensors 2 and 4, the linear image sensor can be a CCD or APS.
It can be manufactured using CMOS technology. The effective length of the image sensor 34 is 50 mm, which matches the width of the data array on the Artcard 9. In order to satisfy the Nyquist sampling theorem, the resolution of the linear image sensor 34 must be at least twice the highest spatial frequency of the Artcard optical image reaching the image sensor. In practice, data detection is simpler when the image sensor resolution is substantially higher than this. If a resolution of 4900 dpi (180 dpi) is selected, a total of 9450 pixels are provided. This resolution requires a pixel sensor pitch of 5.3 μm. This can be easily achieved by using four rows of 20 μm pixel sensors that are staggered.

リニアイメージセンサは、ライトパイプ(図示せず)によってArtcard9を照明するためのLED65を含む特殊なパッケージに装着される。 The linear image sensor is mounted in a special package that includes an LED 65 for illuminating Artcard 9 by a light pipe (not shown).

Artcardリーダーのライトパイプは、以下の数機能を備えた成形ライトパイプでもよい:
1. ライトパイプは、全ての内部反射ファセットを使用してカードの幅に亘ってLEDからの光を拡散する。
2. ライトパイプは、集積化されたシリンドリカルレンズを使用してArtcard9の16μm幅のストリップ上に光を集める。
3. ライトパイプは、成形されたマイクロレンズの配列を使用してArtcardから反射された光をリニアイメージセンサの画素に集める。
The Artcard reader light pipe may be a molded light pipe with several functions:
1. The light pipe uses all internally reflecting facets to diffuse the light from the LED across the width of the card.
2. The light pipe collects light on a 16 μm wide strip of Artcard 9, using an integrated cylindrical lens.
3. The light pipe uses a shaped array of microlenses to collect the light reflected from the Artcard onto the pixels of the linear image sensor.

次に、Artcardリーダーの動作を説明する。 Next, the operation of the Artcard reader will be described.

Artcardリーダーモーター37
Artcardリーダーモーターは、比較的一定の速度でArtcardを進めてリニアイメージセンサ34を通過させる。厳密な精度の機械コンポーネントをArtcardリーダーに収容することは費用対効果がよくないので、モーター37は、Artcard9を動かすローラーのペアを駆動するため適切な速度までギアダウンされた標準的な小型モーターである。速度変動、ガタ、及びその他の振動は、未加工の画像データに影響を与えるので、APC31内の回路は、Artcardデータを確実に読むためこれらの効果の広範な補償を行う。
Artcard reader motor 37
The Artcard reader motor advances the Artcard at a relatively constant speed and passes the linear image sensor 34. Since it is not cost effective to house the precision precision mechanical components in the Artcard reader, the motor 37 is a standard small motor geared down to the proper speed to drive a pair of rollers that move the Artcard 9 . Since speed fluctuations, backlash, and other vibrations affect the raw image data, the circuitry within the APC 31 provides extensive compensation for these effects to reliably read the Artcard data.

モーター37は、Artcardを取り出すとき、逆向きに駆動される。 The motor 37 is driven in the reverse direction when taking out the Artcard.

Artcardモータードライバ61
Artcardモータードライバ61は、モーター37を駆動するために適切なレベルまでAPC31からのデジタルモーター制御信号を増幅する小型回路である。
Artcard motor driver 61
The Artcard motor driver 61 is a small circuit that amplifies the digital motor control signal from the APC 31 to an appropriate level for driving the motor 37.

カード挿入センサ49
カード挿入センサ49は、カードリーダー34に挿入されているカードの有無を検出する光学センサである。このセンサ49からの信号の後、APC31はカード読み出しプロセスを開始し、そのプロセスには、Artcardリーダーモーター37の作動が含まれる。
Card insertion sensor 49
The card insertion sensor 49 is an optical sensor that detects the presence or absence of a card inserted in the card reader 34. After the signal from this sensor 49, the APC 31 starts the card reading process, which includes the operation of the Artcard reader motor 37.

カードイジェクトボタン16
カードイジェクトボタン16(図1)は、現在のArtcardを取り出すためユーザによって使用され、他のArtcardを挿入できるようになる。APC31は、ボタンの押下を検出し、カードを取り出すため、Artcardリーダーモーター37を反転させる。
Card eject button 16
The card eject button 16 (FIG. 1) is used by the user to retrieve the current Artcard, allowing another Artcard to be inserted. The APC 31 detects the press of the button and reverses the Artcard reader motor 37 in order to take out the card.

カード状態インジケータ66
カード状態インジケータ66は、Artcard読み出しプロセスの状態をユーザへ報せるために設けられる。これは、標準的な2色(赤/緑)LEDでもよい。カードが正しく読み出され、データの完全性が検証されたとき、LEDは連続的に緑色で発光する。カードが不良である場合、LEDは赤色で発光する。
Card status indicator 66
A card status indicator 66 is provided to inform the user of the status of the Artcard read process. This may be a standard bi-color (red / green) LED. When the card is read correctly and the integrity of the data is verified, the LED will continuously emit green light. If the card is defective, the LED emits red light.

カメラが3Vのバッテリではなく1.5Vのバッテリから給電される場合、電源電圧は、緑色LEDの前向き電圧降下よりも小さく、LEDは発光しない。この場合、赤色LEDが使用されるか、又はそのLEDは、より高い電圧を必要とするArtcam内の他の回路に給電する電圧ポンプから給電される。 When the camera is powered from a 1.5V battery rather than a 3V battery, the power supply voltage is less than the forward voltage drop of the green LED and the LED does not emit light. In this case, a red LED is used, or the LED is powered from a voltage pump that feeds other circuits in the Artcam that require higher voltages.

64MビットDRAM33
多種多様な画像処理効果を実行するため、カメラは8Mbyteのメモリ33を利用する。これは、単一の64Mビットメモリチップによって設けることができる。勿論、メモリ技術の変化に伴って、より大容量のDRAM記憶容量サイズで置き換えても構わない。
64Mbit DRAM33
The camera uses an 8 Mbyte memory 33 to perform a wide variety of image processing effects. This can be provided by a single 64 Mbit memory chip. Of course, it may be replaced with a larger DRAM storage capacity size as the memory technology changes.

メモリチップへの高速アクセスが要求される。これは、Rambus
DRAM(毎秒500メガバイトのバーストアクセス速度)、又はダブルデータレート(DDR)SDRAM又はシンクリンク(SyncLink)DRAMチップを使用することによって達成できる。
High speed access to the memory chip is required. This is Rambus
This can be achieved by using DRAM (burst access speed of 500 megabytes per second), or double data rate (DDR) SDRAM or SyncLink DRAM chip.

カメラ認証チップ
カメラ認証チップ54は、異なる情報を記憶している点を除くと、プリントロール認証チップ53と同一のものである。カメラ認証チップ54には、以下の三つの主要な目的がある:
1. 認証コードをプリントロール認証チップと比較するセキュア手段を設けること;
2. カメラの製造番号のような製造情報用の記憶装置を設けること;
3. ユーザ情報の記憶用の小容量の不揮発性メモリを設けること。
Camera authentication chip The camera authentication chip 54 is the same as the print roll authentication chip 53 except that it stores different information. The camera authentication chip 54 has three main purposes:
1. Providing a secure means of comparing the authentication code with the print roll authentication chip;
2. Providing a storage device for manufacturing information such as the camera serial number;
3. Provide a small-capacity nonvolatile memory for storing user information.

ディスプレイ
Artcamは、オプションのカラーディスプレイ5及び小型状態ディスプレイ15を含む。最低コストの民生用カメラは、ある種のデジタルカメラ及びビデオカメラで見られるような小型TFT
LCD5のようなカラー画像ディスプレイを含む。カラーディスプレイ5は、これらのバージョンのArtcamの主要なコストのかかる要素であり、バックライトを加えたディスプレイ5は主要な電力消費元である。
The display Artcam includes an optional color display 5 and a small state display 15. The lowest cost consumer camera is a small TFT as found in some digital and video cameras
A color image display such as LCD 5 is included. The color display 5 is the main costly element of these versions of Artcam, and the display 5 with the backlight is the main power consumer.

状態ディスプレイ15
状態ディスプレイ15は、小型の受動セグメントに基づくLCDであり、現在のハロゲン化銀式カメラ及びデジタルカメラに設けられているLCDと類似している。その主要な機能は、プリントロール42に残っているプリントの数と、フラッシュ状態及びバッテリ状態のような様々な標準的なカメラ機能に対するアイコンと、を表示することである。
Status display 15
The status display 15 is an LCD based on a small passive segment, similar to the LCDs found in current silver halide and digital cameras. Its primary function is to display the number of prints remaining on the print roll 42 and icons for various standard camera functions such as flash and battery status.

カラーディスプレイ5
カラーディスプレイは、完全動画像ディスプレイであり、ビューファインダーとして、印刷される画像の確認として、及びユーザインタフェースディスプレイとして動作する。ディスプレイ5のコストは、その面積にほぼ比例するので、大型ディスプレイ(例えば、4インチ対角)ユニットは、Artcamユニットの高価なバージョンに限定される。例えば、カラービデオカメラの約1インチのビューファインダーTFTのようなより小さいディスプレイは、中程度のArtcamに有効である。
Color display 5
The color display is a complete moving image display and operates as a viewfinder, as a confirmation of the image to be printed, and as a user interface display. Since the cost of the display 5 is approximately proportional to its area, large display (eg, 4 inch diagonal) units are limited to expensive versions of Artcam units. For example, smaller displays, such as about 1 inch viewfinder TFTs in color video cameras, are effective for moderate Artcam.

ズームレンズ(図示せず)
Artcamはズームレンズを含むことができる。これは、標準的な電子カメラに使用されるズームレンズと同一であり、ポケットカメラのズームレンズに類似している標準的な電子制御ズームレンズでもよい。Artcamユニットの好適なバージョンは、標準的な交換可能な35mmSLRレンズを含む。
Zoom lens (not shown)
Artcam can include a zoom lens. This may be a standard electronically controlled zoom lens that is identical to the zoom lens used in a standard electronic camera and is similar to the zoom lens of a pocket camera. The preferred version of the Artcam unit includes a standard interchangeable 35mm SLR lens.

自動焦点モーター39
自動焦点モーター39はズームレンズの焦点を変更する。モーターは、自動焦点機構を駆動するため適切な速度にギアダウンされた小型モーターである。
Autofocus motor 39
The autofocus motor 39 changes the focus of the zoom lens. The motor is a small motor geared down to an appropriate speed to drive the autofocus mechanism.

自動焦点モータードライバ63
自動焦点モータードライバ63は、モーター39を駆動するため適切なレベルまでAPC31からのデジタルモーター制御信号を増幅する小型回路である。
Autofocus motor driver 63
The autofocus motor driver 63 is a small circuit that amplifies the digital motor control signal from the APC 31 to an appropriate level for driving the motor 39.

ズームモーター38
ズームモーター38は、ズームのフロントレンズを出入りするように動かす。モーターは、ズーム機構を駆動するため適切な速度にギアダウンされた小型モーターである。
Zoom motor 38
The zoom motor 38 moves the zoom front lens in and out. The motor is a small motor geared down to an appropriate speed to drive the zoom mechanism.

ズームモータードライバ62
ズームモータードライバ62は、モーターを駆動するため適切なレベルまでAPC31からのデジタルモーター制御信号を増幅する小型回路である。
Zoom motor driver 62
The zoom motor driver 62 is a small circuit that amplifies the digital motor control signal from the APC 31 to an appropriate level for driving the motor.

通信
ACP31は、パーソナルコンピュータとの通信用のユニバーサルシリアルバス(USB)インタフェース52を含む。必ずしも全てのArtcamモデルがUSBコネクタを組み込むことを予定されているわけではない。しかし、USB回路52のために必要なシリコン面積は小さいので、インタフェースを標準的なACPに収容することが可能である。
The communication ACP 31 includes a universal serial bus (USB) interface 52 for communication with a personal computer. Not all Artcam models are scheduled to incorporate a USB connector. However, since the silicon area required for the USB circuit 52 is small, the interface can be accommodated in a standard ACP.

オプションのキーボード57
Artcamユニットは、Artcardによって指定されたテキストをカスタマイズするオプションの小型キーボード57を含む。Artcard画像に現れるあらゆるテキストは、複雑なメタリック3次元フォントの形である場合でも編集可能である。小型キーボードは、元のテキストと編集されたテキストを表示するため単一ラインの英数字LCDを含む。このキーボードは標準装備品でもよい。
Optional keyboard 57
The Artcam unit includes an optional mini-keyboard 57 that customizes the text specified by Artcard. Any text that appears in an Artcard image can be edited even when it is in the form of a complex metallic 3D font. The mini-keyboard includes a single line alphanumeric LCD to display the original text and the edited text. This keyboard may be standard equipment.

ACP31は、小型キーボートとの間でデータを転送するシリアル通信回路を含む。 The ACP 31 includes a serial communication circuit that transfers data to and from a small keyboard.

電源
Artcamユニットは、バッテリ48を使用する。Artcamのオプションに依存して、このバッテリは、3Vのリチウム電池、1.5VのAAアルカリ電池、又はその他のバッテリ装置のいずれでもよい。
The power supply Artcam unit uses a battery 48. Depending on the Artcam option, this battery can be either a 3V lithium battery, a 1.5V AA alkaline battery, or other battery device.

電源管理ユニット51
電源消費は、Artcamにおける重要な設計制約条件である。標準的なカメラバッテリ(例えば、3Vのリチウムバッテリ)又は標準的なAA若しくはAAAアルカリ電池の何れかが使用可能であることが望ましい。Artcamユニットの電子回路の複雑さの程度は35mm写真カメラよりも著しく高いが、電力消費量が相応に高いとは限らない。Artcamの電源は、全てのユニットが未使用時には電源をオフされるように慎重に管理される。
Power management unit 51
Power consumption is an important design constraint in Artcam. Desirably, either a standard camera battery (eg, a 3V lithium battery) or a standard AA or AAA alkaline battery can be used. Although the degree of complexity of the electronic circuit of the Artcam unit is significantly higher than that of a 35 mm photographic camera, the power consumption is not necessarily high. The Artcam power supply is carefully managed so that all units are powered off when not in use.

最も重大な電力浪費元は、APC31、エリアイメージセンサ2及び4、プリンタ44の様々なモーター、フラッシュユニット56、並びに、オプションのカラーディスプレイ5である。次に各部品について別々に取り扱う:
1. ACP:0.25μmのCMOSを使用して製造され、1.5Vで動作するならば、ACP電力消費は非常に小さくすることができる。ACPチップの様々な部品へのクロックも非常に小さくすることができる。ACPチップの様々な部品へのクロックは、未使用時にオフにすることができ、スタンバイ電流消費を殆ど取り除く。ACPは、印刷される写真毎に約4秒間だけ完全に使用される;
2. エリアイメージセンサ:電力は、ユーザがボタンに指を置いたときに限りエリアイメージセンサに供給される;
3. プリンタ電力は、実際に印刷しているときに限りプリンタへ供給される。これは、1枚の写真につき約2秒間である。たとえそうであっても、適度に低い電力消費印刷が使用されるべきである;
4. Artcamで必要になるモーターは、全て低電力小型モーターであり、典型的に、1枚の写真について数秒間だけ作動される;
5. フラッシュユニット45は、一部の写真だけに対して使用される。その電力消費は、妥当なバッテリ寿命の3Vのリチウムバッテリによって容易に供給される。
6. オプションのカラーディスプレイ5は、次の二つの理由から主要な電流浪費元である。カラーディスプレイは、カメラの使用中の全ての時間に亘ってオンにする必要があり、液晶ディスプレイが使用された場合には、バックライトが必要になる。カラーディスプレイを組み込むカメラは、許容可能なバッテリ寿命を達成するため、より大型のバッテリを要求する。
The most important power waste sources are APC 31, area image sensors 2 and 4, various motors of printer 44, flash unit 56, and optional color display 5. Then handle each part separately:
1. ACP: If manufactured using 0.25 μm CMOS and operate at 1.5V, ACP power consumption can be very small. The clock to the various parts of the ACP chip can also be very small. The clocks to the various parts of the ACP chip can be turned off when not in use, eliminating most of the standby current consumption. ACP is fully used for about 4 seconds per photo to be printed;
2. Area image sensor: power is supplied to the area image sensor only when the user places his finger on the button;
3. Printer power is supplied to the printer only when it is actually printing. This is about 2 seconds per picture. Even so, moderately low power consumption printing should be used;
4). The motors required for Artcam are all low-power small motors and are typically run for a few seconds per photo;
5. The flash unit 45 is used only for some photographs. Its power consumption is easily supplied by a 3V lithium battery with reasonable battery life.
6). The optional color display 5 is a major current wasting source for the following two reasons. The color display needs to be turned on for all the time that the camera is in use, and if a liquid crystal display is used, a backlight is required. Cameras incorporating color displays require larger batteries to achieve acceptable battery life.

フラッシュユニット56
フラッシュユニット56は民生用カメラの標準的な小型電子フラッシュである。
Flash unit 56
The flash unit 56 is a standard small electronic flash for consumer cameras.

ACP31の概要
図3は、Artcam中央プロセッサ(ACP)31を詳細に示す図である。Artcam中央プロセッサは、Artcamの処理能力の全てを提供する。ACPは、0.25ミクロンCMOSプロセス用に設計され、約150万個のトランジスタと、約50mm2の面積を有する。ACP31の設計は複雑であるが、設計の手間は、データパスコンパイレーション技術、マクロセル、及びIPコアを使用することによって軽減できる。ACP31は、
RISC型CPUコア72と、
4ウェイVLIWベクトルプロセッサ74と、
ダイレクトRAMbus(ラムバス)インタフェース81と、
CMOSイメージセンサインタフェース83と、
CMOSリニアイメージセンサインタフェース88と、
USBシリアルインタフェース52と、
赤外線キーボードインタフェース55と、
数字LCDインタフェース84と、
カラーTFT LCDインタフェース88と、
プログラム記憶装置70用4Mバイトフラッシュメモリ70と、
を含む。RISC型CPU、ダイレクRAMbusインタフェース81、CMOSセンサインタフェース83、及びUSBシリアルインタフェース52は、ベンダーによって供給されるコアでもよい。ACP31は、電力消費を最小限に抑えるため、外部3V及び内部1.5Vに基づいて200MHzのクロック速度で動作することが意図されている。CPUコアは100MHzで動作すればよい。以下の二つのブロック図、即ち、
単独のACP31の説明図、及び
Artcamの残りのハードウェアに接続されたACP31の上位レベルの図を与える例示的なArtcam、
はACP31の2通りの見方を与える。
Overview of ACP 31 FIG. 3 shows the details of the Artcam central processor (ACP) 31 in detail. The Artcam central processor provides all of Artcam's processing power. The ACP is designed for a 0.25 micron CMOS process and has about 1.5 million transistors and an area of about 50 mm 2 . Although the design of ACP 31 is complex, the design effort can be reduced by using data path compilation technology, macrocells, and IP cores. ACP31
RISC type CPU core 72;
A 4-way VLIW vector processor 74;
A direct RAMbus (Rambus) interface 81;
A CMOS image sensor interface 83;
A CMOS linear image sensor interface 88;
USB serial interface 52;
An infrared keyboard interface 55;
A numeric LCD interface 84;
Color TFT LCD interface 88;
A 4 Mbyte flash memory 70 for the program storage device 70;
including. The RISC type CPU, direct RAMbus interface 81, CMOS sensor interface 83, and USB serial interface 52 may be cores supplied by vendors. The ACP 31 is intended to operate at a clock rate of 200 MHz based on external 3V and internal 1.5V to minimize power consumption. The CPU core only needs to operate at 100 MHz. The following two block diagrams:
An exemplary Artcam that provides a single ACP 31 illustration and a high-level view of ACP 31 connected to the remaining hardware of Artcam,
Gives two views of ACP31.

画像アクセス
前述の通り、DRAMインタフェース81は、ACPチップの他のクライアント部と、ラムバスDRAMとの間を接続する役割を担う。実際上、DRAMインタフェース内の各モジュールはアドレス生成器である。
Image Access As described above, the DRAM interface 81 serves to connect the other client unit of the ACP chip and the Rambus DRAM. In practice, each module in the DRAM interface is an address generator.

ACPによって操作される画像には三つの論理タイプがある。それらは、
−CCDから撮影された入力像であるCCD画像と、
−Artcam装置によって内部的に利用される画像フォーマットである内部画像フォーマットと、
−Artcamによって印刷される出力画像フォーマットである印刷画像と、
である。
There are three logical types of images manipulated by ACP. They are,
A CCD image that is an input image taken from the CCD;
An internal image format that is an image format used internally by the Artcam device;
A print image that is an output image format printed by Artcam;
It is.

これらの画像は、典型的に、色空間、解像度、並びに、カメラ間で変動のあり得る出力及び入力色空間の点で相違する。例えば、低価格カメラのCCD画像は、高価格カメラで使用されるものとは異なる解像度、又は異なる色特性を揺する。しかし、あらゆる内部画像フォーマットは、全てのカメラを通じて色空間の点で同一フォーマットである。 These images typically differ in color space, resolution, and output and input color space that can vary between cameras. For example, the CCD image of a low-price camera shakes a different resolution or different color characteristic than that used in a high-price camera. However, all internal image formats are the same format in terms of color space across all cameras.

その上、3種類の画像タイプは、どちらの方向が「上向き」であるかに関しても異なり得る。カメラの物理的な向きは、人物像であるか、又は風景像であるかについての観念を生じさせ、この観念は処理全体を通じて維持されるべきである。このため、内部画像は常に正しく向きを決められ、印刷動作中にCCDから獲得された画像に対して回転が実行される。 In addition, the three image types can differ with respect to which direction is “upward”. The physical orientation of the camera gives rise to the idea of whether it is a person image or a landscape image, and this idea should be maintained throughout the process. For this reason, the internal image is always oriented correctly and rotation is performed on the image acquired from the CCD during the printing operation.

CPUコア(CPU)72
ACP31は、Vark画像処理言語インタープリタを動作させ、Artcamの汎用オペレーティングシステムの役割を実行するため32ビットRISC型CPU72を内蔵する。多種多様なCPUコアが適当であり、要求されたコア計算及び制御機能を消費者の期待を満足する十分な速さで実行するために足りる処理能力を備えていればどのようなプロセッサコアでも構わない。適当なコアの例には、LSIロジック社のMIPS
R4000、Strong ARMコアが含まれる。異なるArtcamモデルの間で命令セットの継続性を維持する必要はない。Artcardの互換性は、将来のプロセッサの進歩及び変更とは無関係に維持される。なぜならば、Varkインタープリタは、新しい命令セット毎に再コンパイルをするだけで済むからである。したがって、ACP31のアーキテクチャは、自由に進化させることができる。種々の製造者は、CPUコアの使用許諾や移植をすることなく、様々なACP31チップ設計を製造することができる。この装置非依存性によって、PC市場においてインテル社が行っているようなチップベンダーのロックインが避けられる。CPUは100MHzで動作し、単一サイクルタイムは10nsである。このCPUは、VLIWベクトルプロセッサ74が時間的に重大な演算を担うとしても、Varkインタープリタを実行するために十分な高速性が必要である。
CPU core (CPU) 72
The ACP 31 incorporates a 32-bit RISC type CPU 72 to operate the Vark image processing language interpreter and execute the role of Artcam's general-purpose operating system. A wide variety of CPU cores are appropriate, and any processor core that has sufficient processing power to execute the required core calculation and control functions fast enough to satisfy consumer expectations. Absent. An example of a suitable core is LSI Logic's MIPS.
R4000, Strong ARM core included. There is no need to maintain instruction set continuity between different Artcam models. Artcard compatibility is maintained regardless of future processor advances and changes. This is because the Vark interpreter only needs to be recompiled for each new instruction set. Therefore, the architecture of ACP31 can be freely evolved. Various manufacturers can manufacture various ACP31 chip designs without licensing or porting the CPU core. This device independence avoids chip vendor lock-in as Intel does in the PC market. The CPU operates at 100 MHz and the single cycle time is 10 ns. This CPU needs to be sufficiently fast to execute the Vark interpreter even if the VLIW vector processor 74 is responsible for time-critical operations.

プログラムキャッシュ72
プログラムコードがオンチップフラッシュメモリ70に保存されるとしても、ウェルパックされたフラッシュメモリ70がCPUによって要求される10nsのサイクルタイムで動作できる可能性は低い。したがって、優れた性能のために小規模のキャッシュが要求される。各々が32バイトの16個のキャッシュラインは、全部で512バイトになり、十分な大きさである。プログラムキャッシュ72は、プログラムキャッシュ72という名前の章に規定されている。
Program cache 72
Even if the program code is stored in the on-chip flash memory 70, it is unlikely that the well-packed flash memory 70 can operate in the 10 ns cycle time required by the CPU. Therefore, a small cache is required for superior performance. Each of the 16 cache lines of 32 bytes is 512 bytes in total, and is sufficiently large. The program cache 72 is defined in a chapter named program cache 72.

データキャッシュ76
小規模のデータキャッシュ76が優れた性能のために要求される。この要求は、概して、ラムバスDRAMを使用しているために生じる。ラムバスDRAMは、高速データをバーストで提供することができるが、単一バイトのアクセスには不十分である。CPUは、CPUデータキャッシュ76のサイズをフレキシブルに操作することを可能にさせるメモリキャッシングシステムにアクセスする。最小限で16個のキャッシュライン(512バイト)が優れた性能のために推奨される。
Data cache 76
A small data cache 76 is required for superior performance. This requirement generally arises due to the use of Rambus DRAM. Rambus DRAMs can provide high speed data in bursts, but are insufficient for single byte access. The CPU accesses a memory caching system that allows the size of the CPU data cache 76 to be flexibly manipulated. A minimum of 16 cache lines (512 bytes) are recommended for good performance.

CPUメモリモデル
ArtcamのCPUメモリモデルは、32MBのエリアにより構成される。Artcamの基本モデルでは、CPUメモリモデルは、8MBの物理的RDRAMオフチップにより構成され、最大で16MBのオフチップメモリが設けられる。ACP31にはプログラム記憶用に4MBのフラッシュメモリ70が存在し、最終的に、4MBのアドレス空間がACP31の様々なレジスタ及びコントロールに割り当てられる。したがって、Artcam用のメモリマップは以下の通りである。
The CPU memory model Artcam has a 32 MB area. In the basic model of Artcam, the CPU memory model is composed of 8 MB of physical RDRAM off-chip, and a maximum of 16 MB of off-chip memory is provided. The ACP 31 has a 4 MB flash memory 70 for storing programs. Finally, a 4 MB address space is allocated to various registers and controls of the ACP 31. Therefore, the memory map for Artcam is as follows.

Figure 0004309954
アドレスをデコードする簡単な方法は、アドレスビット23−24を使用することである。即ち、
ビット24がクリアされている場合、アドレスは下位側16MBのレンジに含まれるので、DRAM及びデータキャッシュ76から充たされる。殆どの場合に、DRAMは8MBに過ぎないが、より上位のメモリモデルArtcamを考慮に入れるため16MBが割り当てられる。
ビット24がセットされ、ビット23がクリアされている場合、アドレスは、フラッシュメモリ70の4Mバイトレンジを表現し、プログラムキャッシュ72によって充たされる。
ビット24=1及びビット23=1である場合、アドレスは、CPUメモリデコーダ68によって、低速バス経由によるAC内の要求されたコンポーネントへのアクセスに変換される。
Figure 0004309954
A simple way to decode the address is to use address bits 23-24. That is,
If bit 24 is cleared, the address is included in the lower 16 MB range and is filled from the DRAM and data cache 76. In most cases, the DRAM is only 8 MB, but 16 MB is allocated to take into account the higher memory model Artcam.
If bit 24 is set and bit 23 is cleared, the address represents the 4 Mbyte range of flash memory 70 and is filled by program cache 72.
If bit 24 = 1 and bit 23 = 1, the address is converted by the CPU memory decoder 68 to access the requested component in the AC via the low speed bus.

フラッシュメモリ70
ACP31は、Artcamプログラムを記憶する4Mバイトのフラッシュメモリ70を含む。フラッシュメモリ70はマスクROMよりも高い充填率を有し、カメラプログラムコードを試験するためより高いフレキシビリティを許容することが想定される。フラッシュメモリ70の弱点はアクセス時間であり、このアクセス時間はCPUの100MHzの動作速度(10nsのサイクルタイム)に対して十分に高速であるとはいえない。したがって、高速プログラム命令キャッシュ77が、CPUと低速のフラッシュメモリ70との間のインタフェースとして作用する。
Flash memory 70
The ACP 31 includes a 4 Mbyte flash memory 70 that stores the Artcam program. It is envisioned that the flash memory 70 has a higher fill factor than the mask ROM and allows higher flexibility for testing the camera program code. The weak point of the flash memory 70 is the access time, and this access time cannot be said to be sufficiently high with respect to the CPU operating speed of 100 MHz (10 ns cycle time). Therefore, the high-speed program instruction cache 77 acts as an interface between the CPU and the low-speed flash memory 70.

プログラムキャッシュ72
優れたCPU性能のために小型キャッシュが要求される。この要求は、プログラムコードを記憶するフラッシュメモリ70が低速であることに起因する。各々が32バイトの16個のキャッシュラインは、全部で512バイトになり、十分な大きさである。プログラムキャッシュ72は読み出し専用キャッシュである。CPUプログラムによって使用されるデータは、CPUメモリデコーダ68を通過し、アドレスがDRAM内にある場合、汎用データキャッシュ76を通る。分離によって、CPUをVLIWベクトルプロセッサ74とは独立して動作させることができる。所定のプロセスに対するデータ要求量が少ない場合、結果的に、そのプロセスは完全にキャッシュによって動作し得る。
Program cache 72
A small cache is required for excellent CPU performance. This request is caused by the low speed of the flash memory 70 that stores the program code. Each of the 16 cache lines of 32 bytes is 512 bytes in total, and is sufficiently large. The program cache 72 is a read-only cache. Data used by the CPU program passes through the CPU memory decoder 68, and through the general data cache 76 if the address is in DRAM. The separation allows the CPU to operate independently of the VLIW vector processor 74. If the amount of data required for a given process is small, as a result, the process can run entirely on the cache.

最後に、プログラムキャッシュ72は、CPUによって純粋にプログラム命令としてではなく、データとして読み出すことが可能である。これにより、テーブル、即ち、VLIWのためのマイクロコード等をフラッシュメモリ70からロードすることが可能になる。ビット24がセットされ、ビット23がクリアされているアドレスは、プログラムキャッシュ72から充足される。 Finally, the program cache 72 can be read by the CPU as data rather than as purely program instructions. This makes it possible to load a table, that is, microcode for the VLIW from the flash memory 70. The address where bit 24 is set and bit 23 is cleared is satisfied from program cache 72.

CPUメモリデコーダ68
CPUメモリデコーダ68は、CPUデータアクセスに沿う簡単なデコーダである。デコーダは、データアドレスを、内部低速バスによる内部ACPレジスタアクセスに変換し、これにより、ACPレジスタのメモリマップドI/Oを可能にさせる。CPUメモリデコーダ68は、ビット24がセットされ、ビット23がクリアされているアドレスだけを解釈する。CPUメモリデコーダ68内ではキャッシングは行われない。
CPU memory decoder 68
The CPU memory decoder 68 is a simple decoder along with CPU data access. The decoder converts the data address to internal ACP register access via the internal low speed bus, thereby enabling memory mapped I / O of the ACP register. The CPU memory decoder 68 interprets only addresses where bit 24 is set and bit 23 is cleared. Caching is not performed in the CPU memory decoder 68.

DRAMインタフェース81
Artcamによって使用されるDRAMは、1.6GB/秒で動作する単一チャンネルの64Mビット(8Mバイト)RAMbus(ラムバス)RDRAMである。RDRAMアクセスは、単一チャンネル(16ビットデータパス)コントローラによる。RDRAMは、低電力動作用の数種の有効な動作モードを有する。ラムバス仕様書には、95%以上の効率を達成可能であるようなランダムな32バイト転送のあるシステムが記載されているが、これは、32バイトのうちの一部しか使用されない場合には成り立たない。同一のデバイスに対する2回の読み出しに続いて2回の書き込みを行うことによって86%以上の効率が得られる。基礎的なレイテンシーは、書き込みから読み出しへ変化するバスのターンアラウンドのために必要であり、遅延書き込み機構が存在するので、効率を更に改善することが可能である。書き込みに関して、書き込みマスクは、特定のバイトのサブセットへの書き込みを可能にさせる。これらの書き込みマスクは、内部キャッシュの「ダーティビット」によってセットされるであろう。ラムバスダイレクトRDRAMは、要するに、1GB/秒を超えるスループットを簡単に達成可能であり、32バイトの転送知識を十分に利用する知的アルゴリズムと組み合わされ(殆どのプロセスで)書き込み毎に複数回の読み出しを伴い、1.3GB/秒を超える転送レートが期待されるということである。10ns毎に、コアとの間で16バイトを転送することができる。
DRAM interface 81
The DRAM used by Artcam is a single channel 64 Mbit (8 Mbyte) RAMbus RDRAM operating at 1.6 GB / s. RDRAM access is by a single channel (16 bit data path) controller. RDRAM has several effective modes of operation for low power operation. The Rambus specification describes a system with random 32-byte transfers that can achieve efficiencies greater than 95%, but this is true if only some of the 32 bytes are used. Absent. An efficiency of 86% or more can be obtained by performing two writes followed by two writes to the same device. Basic latency is necessary for bus turnarounds that change from write to read, and a delayed write mechanism exists, which can further improve efficiency. For writing, the write mask allows writing to a specific subset of bytes. These write masks will be set by "dirty bits" in the internal cache. In summary, Rambus Direct RDRAM can easily achieve throughputs in excess of 1 GB / s, combined with intelligent algorithms that make full use of 32 bytes of transfer knowledge (in most processes) multiple reads per write Therefore, a transfer rate exceeding 1.3 GB / second is expected. Every 10 ns, 16 bytes can be transferred to and from the core.

DRAM構成
基本モデル(8MB RDRAM)のArtcam用のDRAM構成を次に示す。
The DRAM configuration for Artcam of the DRAM configuration basic model (8MB RDRAM) is shown below.

Figure 0004309954
注:非圧縮形式の印刷画像は4.5MB(1チャンネル当たり1.5MB)を必要とする。他の対象を8MBモデルに収容するため、印刷画像は圧縮されるべきである。クロミナンスチャンネルが4:1に圧縮された場合、各クロミナンスチャンネルは0.375MBしか必要としない。
Figure 0004309954
Note: An uncompressed print image requires 4.5 MB (1.5 MB per channel). The print image should be compressed to accommodate other objects in the 8MB model. If the chrominance channels are compressed 4: 1, each chrominance channel requires only 0.375 MB.

ここで説明されるメモリモデルは、単一の8MBのRDRAMを想定している。Artcamのその他のモデルの中にはより多くのメモリを具備し、印刷画像を圧縮しなくてもよいものがある。その上、メモリ量が増加すると、最終画像の大部分を同時に操作できるようになり、速度が向上する可能性がある。 The memory model described here assumes a single 8 MB RDRAM. Some other Artcam models have more memory and do not need to compress the printed image. In addition, as the amount of memory increases, the majority of the final image can be manipulated simultaneously, possibly increasing speed.

Artcardの取り出し又は挿入は、印刷画像、拡大された写真画像の1チャンネル、及び画像ピラミッドを保持する5.5MBエリアを無効にすることに注意すべきである。この空間は、Artcardデータを復号化するためArtcardインタフェースによって安全に使用される。 It should be noted that the removal or insertion of Artcard invalidates the 5.5 MB area that holds the printed image, one channel of the enlarged photographic image, and the image pyramid. This space is securely used by the Artcard interface to decrypt Artcard data.

データキャッシュ76
ACP31は、専用CPU命令キャッシュ77及び汎用データキャッシュ76を含む。データキャッシュ76は、CPU、VLIWベクトルプロセッサ74及びディスプレイコントローラ88からの全てのDRAM要求(データの読み出し及び書き込み)を取り扱う。これらの要求は、メモリ使用量及びアルゴリズム的タイミング必要条件の点で非常に異なる側面を有する。例えば、VLIWプロセスは、リニアメモリ内の画像を処理し、画像内の値毎にテーブルの値をルックアップする。画像の大半をキャッシュする必要な殆ど無いが、実際のメモリアクセスが必要ではないように、ルックアップテーブル全体をキャッシュすることが望ましい。このように必要条件が相違しているため、データキャッシュ76は、キャッシングを知的に定義することが可能である。
Data cache 76
The ACP 31 includes a dedicated CPU instruction cache 77 and a general-purpose data cache 76. The data cache 76 handles all DRAM requests (data reads and writes) from the CPU, VLIW vector processor 74 and display controller 88. These requirements have very different aspects in terms of memory usage and algorithmic timing requirements. For example, the VLIW process processes an image in linear memory and looks up a table value for each value in the image. It is desirable to cache the entire look-up table so that there is little need to cache most of the image, but no actual memory access is required. Because the requirements are different in this way, the data cache 76 can intelligently define caching.

ラムバスDRAMインタフェース81は、非常に高速のメモリアクセス能力を備えているが(平均スループットは25nsで32バイト)、単一バイトの要求を処理するためには不十分である。実効的なメモリレイテンシーを低下させるため、ACP31は、128個のキャッシュラインを含む。各キャッシュラインは32バイト幅である。このようにして、データキャッシュ76の総容量は4096バイト(4KB)である。128個のキャッシュラインは、16個のプログラム可能なサイズのグループに構成される。16個のグループの各々は、連続したキャッシュラインのセットでなければならない。CPUは、各グループに割り付けるキャッシュラインの個数を決定する役割を担う。各グループ内で、キャッシュラインは、簡単なLRU(最低使用頻度)アルゴリズムに従って詰められる。CPUデータ要求に関して、データキャッシュ76は、アドレスビット24がクリアされたメモリアクセス要求を取り扱う。ビット24がクリアされている場合、アドレスは下位側16MBのレンジに収まるので、DRAM及びデータキャッシュ76から応じることができる。殆どの場合に、DRAMは、8MBしかないが、よりメモリ量の多いモデルのArtcamを考慮に入れて16MBが割り付けられる。ビット24がセットされている場合、アドレスはデータキャッシュ76によって無視される。 The Rambus DRAM interface 81 has very fast memory access capability (average throughput is 32 bytes at 25 ns), but is insufficient to handle single byte requests. To reduce the effective memory latency, ACP 31 includes 128 cache lines. Each cache line is 32 bytes wide. In this way, the total capacity of the data cache 76 is 4096 bytes (4 KB). The 128 cache lines are organized into groups of 16 programmable sizes. Each of the 16 groups must be a contiguous set of cache lines. The CPU plays a role of determining the number of cache lines to be allocated to each group. Within each group, the cache lines are packed according to a simple LRU (least recently used) algorithm. For CPU data requests, data cache 76 handles memory access requests with address bits 24 cleared. If bit 24 is cleared, the address falls within the lower 16 MB range and can be served from the DRAM and data cache 76. In most cases, the DRAM has only 8 MB, but 16 MB is allocated taking into account the Artcam of the model with more memory. If bit 24 is set, the address is ignored by data cache 76.

全てのCPUデータ要求はキャッシュグループ0から応じられる。優れたCPU性能のためには16個の最小のキャッシュラインが推奨されるが、CPUは、(0個以外の)任意の個数のキャッシュラインをキャッシュグループ0に割り当てることができる。残りのキャッシュグループ(1から15)は、現在の必要条件に従って割り付けられる。これは、VLIWベクトルプロセッサ74プログラム又はディスプレイコントローラ88への割付を意味することもある。例えば、常時利用可能であることが要求される256バイトのルックアップテーブルは、8個のキャッシュラインが必要であろう。順次画像を書き出すためには、(生成されたレコードのサイズと、書き込み要求が多数のサイクルに亘って書き込み遅延されているかどうかと、に応じて)2から4個のキャッシュラインだけが必要であろう。各キャッシュラインのバイトには、メモリをDRAMへ書き込む際に書き込みマスクを作成するため使用されるダーティビットが関連付けられる。各キャッシュラインには別のダーティビットが関連付けられ、このダーティビットは、キャッシュラインのバイトの何れかに書き込みがされたかどうか(したがって、DRAMを再使用する前に、キャッシュラインをDRAMへ書き戻さなければならないかどうか)を示す。二つの異なるキャッシュグループがメモリの同じアドレスをアクセスし、同期が外れる可能性があることに注意する必要がある。VLIWプログラムライターは、これが問題にならないことを保証する役割を担う。例えば、あるキャッシュグループには画像を読み出す役割を与え、別のキャッシュグループには変更された画像をメモリに書き戻す役割を与えることは完全に合理的である。画像が順番に読み出し又は書き込みされる場合、キャッシュラインをこのようにして割り付けることは有利である。全部で8本のバス182は、VLIWベクトルプロセッサ74をデータキャッシュ76へ接続する。各バスは、I/Oアドレス生成器に接続される。(1個の処理ユニット178当たりに2個のI/Oアドレス生成器189及び190が存在し、VLIWベクトルプロセッサ74には4個の処理ユニットが存在する。したがって、バスの総数は8本である。)
所与のサイクルにおいて、CPUのキャッシュグループ(グループ0)への単一の32ビット(4バイト)アクセスの他に、残りのキャッシュグループへの16ビット(2バイト)の四つ同時のアクセスが8本のVLIWプロセッサ74のバス上で許容される。データキャッシュ76は要求を公平に処理する役割がある。ある所与のサイクルで、特定のキャッシュグループへのたった一つの要求が処理される。VLIWベクトルプロセッサ74に8個のアドレス生成器189、190が存在する場合、アドレス生成器の各々は個別のキャッシュグループを参照する可能性がある。しかし、2個以上のアドレス生成器189、190が同じキャッシュグループにアクセスする可能性があり、場合によっては、その方が合理的である。CPUは、キャッシュグループに正確なキャッシュラインの個数が割り付けられることを保証し、VLIWベクトルプロセッサ74の様々なアドレス生成器189、190が特定のキャッシュグループを正確に参照することを保証する役割を担う。上述のようにデータキャッシュ76は、ディスプレイコントローラ88及びVLIWベクトルプロセッサ74が同時に動作状態になることを許容する。これらの二つのコンポーネントの動作が決して同時に出現しないと考えられるならば、全部で9個のキャッシュグループがあれば足りる。CPUはキャッシュグループ0を使用し、VLIWベクトルプロセッサ74及びディスプレイコントローラ88は残りの8個のキャッシュグループを共用し、(4ビットではなく)3ビットだけで特定の要求に応じるキャッシュグループを定めることができる。
All CPU data requests are served from cache group 0. Although 16 minimum cache lines are recommended for good CPU performance, the CPU can assign any number of cache lines (other than 0) to cache group 0. The remaining cache groups (1-15) are allocated according to current requirements. This may mean an assignment to the VLIW vector processor 74 program or display controller 88. For example, a 256 byte lookup table that is required to be available at all times would require 8 cache lines. To write out images sequentially, only 2 to 4 cache lines are required (depending on the size of the generated record and whether the write request has been delayed for multiple cycles). Let ’s go. Associated with each cache line byte is a dirty bit that is used to create a write mask when the memory is written to the DRAM. Each cache line has a separate dirty bit associated with it, and whether this dirty bit has been written to any of the cache line's bytes (so the cache line must be written back to the DRAM before the DRAM is reused). Or not). Note that two different cache groups may access the same address in memory and get out of sync. The VLIW program writer is responsible for ensuring that this is not a problem. For example, it is perfectly reasonable to give one cache group the role of reading an image and giving another cache group the role of writing the changed image back into memory. It is advantageous to allocate cache lines in this way when images are read or written sequentially. A total of eight buses 182 connect the VLIW vector processor 74 to the data cache 76. Each bus is connected to an I / O address generator. (There are two I / O address generators 189 and 190 per processing unit 178 and there are four processing units in the VLIW vector processor 74. Therefore, the total number of buses is eight. .)
In a given cycle, in addition to a single 32-bit (4-byte) access to the CPU's cache group (group 0), there are 8 simultaneous 16-bit (2-byte) accesses to the remaining cache group. Permitted on the VLIW processor 74 bus. The data cache 76 is responsible for processing requests fairly. In a given cycle, only one request for a particular cache group is processed. If there are eight address generators 189, 190 in the VLIW vector processor 74, each of the address generators may reference a separate cache group. However, two or more address generators 189, 190 may access the same cache group, and in some cases it is more reasonable. The CPU is responsible for ensuring that the correct number of cache lines are allocated to the cache group and for ensuring that the various address generators 189, 190 of the VLIW vector processor 74 accurately reference a particular cache group. . As described above, the data cache 76 allows the display controller 88 and the VLIW vector processor 74 to be active at the same time. If the actions of these two components are never expected to occur at the same time, a total of nine cache groups is sufficient. The CPU uses cache group 0, the VLIW vector processor 74 and the display controller 88 share the remaining 8 cache groups, and can define a cache group that responds to a specific request with only 3 bits (not 4 bits). it can.

JTAGインタフェース85
標準的なJTAG(ジョイントテスト部会)インタフェースはテスト目的用にACP31に収容される。チップの複雑さのため、BIST(ビルトインセルフテスト)及び機能的ブロック分離等を含む様々なテスト技術が必要である。チップ面積の10%のオーバーヘッドが全チップテスト回路のため想定される。テスト回路は本文書の範囲外の事項である。
JTAG interface 85
A standard JTAG (Joint Test Group) interface is housed in the ACP 31 for testing purposes. Due to chip complexity, various test techniques are required, including BIST (built-in self test) and functional block isolation. An overhead of 10% of the chip area is assumed for all chip test circuits. Test circuits are outside the scope of this document.

シリアルインタフェース
USBシリアルポートインタフェース52
これは標準的なUSBシリアルポートであり、内部チップの低速バスに接続されるので、CPUがそれを制御することができる。
Serial interface USB serial port interface 52
This is a standard USB serial port and is connected to the low speed bus of the internal chip so that the CPU can control it.

キーボードインタフェース65
これは標準的な低速シリアルポートであり、内部チップ低速バスに接続されるので、CPUがそれを制御することができる。キーボードインタフェースは、プリントをカスタマイズするための簡単なデータ入力を許容するためオプション的にキーボードへ接続できるように設計される。
Keyboard interface 65
This is a standard low speed serial port and is connected to the internal chip low speed bus so that the CPU can control it. The keyboard interface is designed to optionally connect to a keyboard to allow simple data entry to customize the print.

認証チップシリアルインタフェース64
これらは、二つの標準的な低速シリアルポートであり、内部チップ低速バスに接続されるので、CPUがこれらを制御できる。二つのポートを具備する理由は、別個のラインを使用して、オンカメラ認証チップとプリントロール認証チップの両方に接続するためである。1個のラインしか使用しない場合、模造プリントロールの製造者は、認証コードを生成するのではなく、カメラの認証チップによって生成されたコードを使用するようにカメラを誤動作させるチップを設計することができる。
Authentication chip serial interface 64
These are two standard low speed serial ports that are connected to the internal chip low speed bus so that the CPU can control them. The reason for having two ports is to use separate lines to connect to both the on-camera authentication chip and the print roll authentication chip. If only one line is used, the manufacturer of the imitation print roll may design a chip that causes the camera to malfunction so that it uses the code generated by the camera's authentication chip rather than generating an authentication code. it can.

パラレルインタフェース67
パラレルインタフェースはACP31を個別の静的な電気信号に接続する。CPUは、低速バスを介して、メモリマップドI/Oとしてこれらの配線の各々を制御することができる。以下の表は、パラレルインタフェースへの配線の一覧である。
Parallel interface 67
The parallel interface connects the ACP 31 to individual static electrical signals. The CPU can control each of these wirings as a memory mapped I / O via a low speed bus. The following table lists the wiring to the parallel interface.

Figure 0004309954
VLIW入力及び出力FIFO78、79
VLIW入出力FIFOは、プロセスとVLIWベクトルプロセッサ74との間を接続するため使用される8ビット幅のFIFOである。両方のFIFOはVLIWベクトルプロセッサ74によって制御されるが、CPUによってクリアしたり、(例えば、状態について)問い合わせをしたりすることができる。
Figure 0004309954
VLIW input and output FIFO 78, 79
The VLIW input / output FIFO is an 8-bit wide FIFO used to connect between the process and the VLIW vector processor 74. Both FIFOs are controlled by the VLIW vector processor 74, but can be cleared or queried (eg, for status) by the CPU.

VLIW入力FIFO78
クライアントは、VLIWベクトルプロセッサ74にデータを処理させるため、8ビットデータをVLIW入力FIFO78に書き込む。クライアントには、イメージセンサインタフェース、Artcardインタフェース、及びCPUが含まれる。これらのプロセスの各々は、単にデータをFIFOに書き込み、VLIWベクトルプロセッサ74に重い仕事の全ての実行を任せることによって、処理から解放される。クライアントによるVLIW入力FIFO78の使用を用いる一例は、イメージセンサインタフェース(ISI83)である。イメージセンサインタフェース83は、イメージセンサからデータを取得し、そのデータをFIFOに書き込む。VLIWプロセスは、FIFOからデータを取得し、データを正しい画像データフォーマットへ変換し、それをDRAMへ書き出す。イメージセンサインタフェース83は、その結果として、非常に簡単化される。
VLIW input FIFO78
The client writes 8-bit data to the VLIW input FIFO 78 to cause the VLIW vector processor 74 to process the data. The client includes an image sensor interface, an Artcard interface, and a CPU. Each of these processes is freed from processing by simply writing data to the FIFO and leaving the VLIW vector processor 74 to do all the heavy work. One example using the use of a VLIW input FIFO 78 by a client is the image sensor interface (ISI 83). The image sensor interface 83 acquires data from the image sensor and writes the data to the FIFO. The VLIW process gets data from the FIFO, converts the data to the correct image data format, and writes it to DRAM. As a result, the image sensor interface 83 is greatly simplified.

VLIW出力FIFO79
VLIWベクトルプロセッサ74は、8ビットデータをVLIW出力FIFO79に書き込み、クライアントはVLIW出力FIFOでデータを読み出すことができる。クライアントには、プリントヘッドインタフェース及びCPUが含まれる。これらのクライアントの両方は、単にFIFOから処理済みのデータを読み出し、VLIWベクトルプロセッサ74に重い仕事の全ての実行を任せることにより、処理から解放される。CPUは、データがVLIW出力FIFO79に収容されたときはいつでも中断させることができ、FIFOを絶えずポーリングするのではなく、データが利用可能になったときに限りそのデータを処理できるようになる。クライアントによるVLIW出力FIFO79の使用を用いる一例は、プリントヘッドインタフェース(PHI62)である。VLIWプロセスは、画像を取得し、画像を正しい向きへ回転し、色変換を行い、プリントヘッド必要条件に応じて得られた画像をディザリングする。プリントヘッドインタフェース62は、VLIW出力FIFO79からディザリングされたフォーマット後の8ビットデータを読み出し、その8ビットデータをACP31の外部にあるプリントヘッドに渡すだけでよい。プリントヘッドインタフェース62はその結果として非常に簡単化される。
VLIW output FIFO79
The VLIW vector processor 74 writes 8-bit data to the VLIW output FIFO 79, and the client can read the data with the VLIW output FIFO. The client includes a printhead interface and a CPU. Both of these clients are freed from processing by simply reading the processed data from the FIFO and leaving the VLIW vector processor 74 to do all the heavy work. The CPU can be interrupted whenever data is contained in the VLIW output FIFO 79, and can process the data only when the data is available, instead of constantly polling the FIFO. One example using the use of the VLIW output FIFO 79 by the client is the printhead interface (PHI 62). The VLIW process acquires an image, rotates the image in the correct orientation, performs color conversion, and dithers the resulting image according to printhead requirements. The print head interface 62 only needs to read the dithered 8-bit data after formatting from the VLIW output FIFO 79 and pass the 8-bit data to the print head outside the ACP 31. As a result, the printhead interface 62 is greatly simplified.

VLIWベクトルプロセッサ74
Artcamの高い処理要求を実現するため、ACP31は、VLIW(超長命令語)ベクトルプロセッサを含む。VLIWプロセッサは、クロスバースイッチ183によって接続され並列に動作する4個の同一処理ユニット(例えば、PU178)の組である。各処理ユニット、例えば、PU178は、各サイクルに、4回の8ビット乗算、8回の8ビット加算、3回の32ビット加算、I/O処理、及び様々な論理演算を実行することができる。処理ユニット、例えば、PU178はマイクロコード化され、各々は、2個のアドレス生成器189、190を具備し、データ処理のため利用可能なサイクルを完全に使用できる。4個の処理ユニット、例えば、PU178は、通常、密接に相互作用するVLIWプロセッサを実現するため同期させられる。200MHzのクロックにより、VLIWベクトルプロセッサ74は、12Gop(毎秒120億回の演算速度)で動作する。命令は、ワーピング、芸術的なブラッシング、複雑な合成照明、色変換、画像フィルタリング、及び合成のような画像処理機能のために調整される。これらは、デスクトップコンピュータよりも2桁加速されている。
VLIW vector processor 74
In order to realize high processing demands of Artcam, the ACP 31 includes a VLIW (very long instruction word) vector processor. The VLIW processor is a set of four identical processing units (for example, PU178) connected by a crossbar switch 183 and operating in parallel. Each processing unit, eg, PU 178, can perform four 8-bit multiplications, eight 8-bit additions, three 32-bit additions, I / O processing, and various logical operations in each cycle. . A processing unit, eg, PU 178, is microcoded and each comprises two address generators 189, 190, fully using the available cycles for data processing. Four processing units, eg, PU 178, are typically synchronized to implement a closely interacting VLIW processor. With a 200 MHz clock, the VLIW vector processor 74 operates at 12 Gop (12 billion operations per second). The instructions are tailored for image processing functions such as warping, artistic brushing, complex composite lighting, color conversion, image filtering, and compositing. These are two orders of magnitude faster than desktop computers.

図3(a)に詳細に示されるように、VLIWベクトルプロセッサ74は、クロスバースイッチ183によって接続された4個の処理ユニット、例えば、PU178であり、各処理ユニット、例えば、PU178は、クロスバースイッチ183へ2入力を供給し、クロスバースイッチ183からの2出力を取得する。2個の共通レジスタは、処理ユニット、例えば、PU178のための制御及び同期機構を形成する。8本のキャッシュバス182は、データキャッシュ76を介してDRAMへの接続を可能にさせ、2本のバスは各処理ユニット、例えば、PU178へ至る(I/Oアドレス生成器毎に1本のバス)。各処理ユニット、例えば、PU178は、(データを処理するための多数のレジスタ及びある種の算術論理を格納する)ALU(算術論理ユニット)188と、ある種のマイクロコードRAM196と、外界(他のALUを含む)への配線と、を具備する。ローカルPU状態機械は、マイクロコードで動き、この手段によって処理ユニット、例えば、PU178が制御される。各処理ユニット、例えば、PU178は、DRAM(データキャッシュ76経由)とALU188(入力FIFO及び出力FIFO経由)の間のデータフローを制御する二つのI/Oアドレス生成器189、190を含む。アドレス生成器は、データ(特に、様々なフォーマットの画像)、並びに、DRAM内のテーブル及びシミュレーティッドFIFOを読み書きすることが可能である。フォーマットはソフトウェア制御の下でカスタマイズ可能であるが、マイクロコード化されない。データキャッシュ76から取得されたデータは、16ビット幅の入力FIFOを介してALU188へ転送される。出力データは、16ビット幅の出力FIFOに書き込まれ、そこからデータキャッシュ76へ書き込まれる。最後に、全ての処理ユニット、例えば、PU178は、単一の8ビット幅VLIW入力FIFO78と、単一の8ビット幅VLIW出力FIFO79を共用する。低速データバス接続によって、CPUは、処理ユニット、例えば、PU178のレジスタを読み書きし、マイクロコードを更新し、VLIWベクトルプロセッサ74の全ての処理ユニット、例えば、PU178によって共用される共通レジスタを読み書きすることが可能になる。次に、図4を参照すると、単独の処理ユニット、例えば、PU178の内部のより詳細が示され、以下では、コンポーネント及び制御信号を詳述する。 As shown in detail in FIG. 3 (a), the VLIW vector processor 74 is four processing units, eg, PU178, connected by a crossbar switch 183, and each processing unit, eg, PU178, is a crossbar. Two inputs are supplied to the switch 183, and two outputs from the crossbar switch 183 are acquired. The two common registers form a control and synchronization mechanism for the processing unit, eg, PU 178. Eight cache buses 182 allow connection to DRAM via data cache 76, and the two buses lead to each processing unit, eg, PU 178 (one bus for each I / O address generator) ). Each processing unit, for example, PU 178, has an ALU (arithmetic logic unit) 188 (which stores a number of registers and some arithmetic logic for processing data), some microcode RAM 196, and the outside world (others). Wiring to ALU (including ALU). The local PU state machine runs in microcode and by this means the processing unit, eg PU 178, is controlled. Each processing unit, eg, PU 178, includes two I / O address generators 189, 190 that control the data flow between DRAM (via data cache 76) and ALU 188 (via input FIFO and output FIFO). The address generator can read and write data (especially images of various formats), as well as tables and simulated FIFOs in DRAM. The format is customizable under software control but is not microcoded. Data acquired from the data cache 76 is transferred to the ALU 188 via a 16-bit input FIFO. Output data is written to a 16-bit wide output FIFO and from there to the data cache 76. Finally, all processing units, eg, PU 178, share a single 8-bit wide VLIW input FIFO 78 and a single 8-bit wide VLIW output FIFO 79. With the low speed data bus connection, the CPU reads and writes the registers of the processing unit, eg, PU178, updates the microcode, and reads and writes the common registers shared by all the processing units of the VLIW vector processor 74, eg, PU178. Is possible. Referring now to FIG. 4, more details within a single processing unit, eg, PU 178, are shown, and the components and control signals are detailed below.

マイクロコード
各処理ユニット、例えば、PU178は、その特定の処理ユニット、例えば、PU178用のプログラムを保持するマイクロコードRAM196を含む。マイクロコードをROMに収容するのではなく、マイクロコードはRAMに収容され、CPUはマイクロコードをアップロードする役割を担う。チップ上の同じ空間であるため、このトレードオフは、ある一つの機能の最大サイズをRAM196のサイズまで縮小するが、マイクロコードに書き込まれる機能の数は無制限である。マイクロコードを用いて実現された機能は、Varkアクセラレーション、Artcard読み取り、及び印刷を含む。VLIWベクトルプロセッサ74の方式は、ACP31のケースでは、以下の幾つかの利点がある:
ハードウェア設計の複雑さが低減される;
ハードウェアのリスクは複雑さの低減によって低減する;
ハードウェア設計時間は、専用シリコンに組み込まれる全てのVark機能に依存しない;
チップ上の空間が全体的に縮小される(多数のプロセスをマイクロコードとして組み込むことができるため);
ハードウェア設計時間に影響を与えることなく、(マイクロコードによって)Varkに機能を加えることができる。
Each microcode processing unit, eg, PU 178, includes a microcode RAM 196 that holds a program for that particular processing unit, eg, PU 178. Rather than storing the microcode in the ROM, the microcode is stored in the RAM, and the CPU plays a role of uploading the microcode. Since this is the same space on the chip, this trade-off reduces the maximum size of one function to the size of RAM 196, but the number of functions written to microcode is unlimited. Functions implemented using microcode include Vark acceleration, Artcard reading, and printing. The VLIW vector processor 74 scheme has several advantages in the ACP31 case:
Hardware design complexity is reduced;
Hardware risk is reduced by reducing complexity;
Hardware design time does not depend on all Vark functions built into dedicated silicon;
The overall space on the chip is reduced (since many processes can be incorporated as microcode);
Functions can be added to Vark (by microcode) without affecting hardware design time.

サイズ及び内容
各処理ユニット、例えば、PU178を制御するCPUによってロードされたマイクロコードRAM196は128ワードであり、各ワードは96ビット幅である。処理ユニット、例えば、PU178の様々なユニットを制御するためのマイクロコードサイズの概要は以下の表に掲載されている。
Size and Content The microcode RAM 196 loaded by each processing unit, eg, the CPU controlling the PU 178, is 128 words and each word is 96 bits wide. A summary of the microcode sizes for controlling the various units of the processing unit, eg, PU 178, is listed in the table below.

Figure 0004309954
128個の命令ワードによって、処理ユニット、例えば、PU178毎の全マイクロコードRAM196は、12288ビット、即ち、正確に1.5KBである。VLIWベクトルプロセッサ74は、4個の同一の処理ユニット、例えば、PU178により構成されるので、これは、6144バイト、即ち、正確に6KBと一致する。マイクロコードワード内の一部のビットは、制御ビットとしてそのまま使用され、一方、他のビットはデコードされる。マイクロコードワードのビットの各々の解釈を詳細に記述する種々のユニット説明を参照せよ。
Figure 0004309954
With 128 instruction words, the total microcode RAM 196 per processing unit, eg, PU 178, is 12288 bits, or exactly 1.5 KB. Since the VLIW vector processor 74 is composed of four identical processing units, eg, PU 178, this corresponds to 6144 bytes, ie exactly 6 KB. Some bits in the microcode word are used as they are as control bits, while other bits are decoded. See the various unit descriptions that describe in detail the interpretation of each bit of the microcode word.

処理ユニット、例えば、PU178の間の同期
各処理ユニット、例えば、PU178は、4ビット同期レジスタ197を含む。それは、一体的に動作する処理ユニット、例えば、PU178を決定するため使用されるマスクであり、単一プロセスとして機能する対応した処理ユニット、例えば、PU178の各々に対して1ビットがセットされる。例えば、全ての処理ユニット、例えば、PU178が単一プロセスとして機能する場合、4個の同期レジスタ197の各々は、全て4ビットがセットされるであろう。2個の処理ユニット、例えば、PU178毎に二つの同期プロセスが存在するならば、2個の処理ユニット、例えば、PU178は、(そのPU自体に対応した)同期レジスタ内の2ビットがセットされ、他の2個の処理ユニットは、(そのPU自体に対応した)同期レジスタ内の別の2ビットがセットされる:
同期レジスタ197は、以下の二つの基本的な方式で使用される;
同期した所定のプロセスを停止及び開始する;
プロセス内で実行を一時停止する。
Synchronization between processing units, eg, PU 178 Each processing unit, eg, PU 178, includes a 4-bit synchronization register 197. It is a mask that is used to determine the processing units that work together, eg, PU 178, and a bit is set for each of the corresponding processing units, eg, PU 178, that function as a single process. For example, if all processing units, eg, PU 178, function as a single process, each of the four synchronization registers 197 will all have 4 bits set. If there are two synchronization processes per two processing units, eg, PU 178, two processing units, eg, PU 178, are set with 2 bits in the synchronization register (corresponding to the PU itself), The other two processing units are set with another two bits in the synchronization register (corresponding to the PU itself):
The synchronization register 197 is used in two basic ways:
Stop and start a given synchronized process;
Pause execution within a process.

停止及び開始プロセス
CPUは、マイクロコードRAM196にロードし、第1の命令の実行アドレス(通常は0)をロードする役割を担う。CPUがマイクロコードを実行し始めるとき、マイクロコードは指定されたアドレスから始まる。
The stop and start process CPU is responsible for loading into the microcode RAM 196 and loading the execution address (usually 0) of the first instruction. When the CPU starts executing microcode, the microcode begins at the specified address.

マイクロコードが実行されるのは、同期レジスタ197の全てのビットが共通同期レジスタ197にもセットされたときに限られる。したがって、CPUは、全ての処理ユニット、例えば、PU178をセットアップし、次に、共通同期レジスタ197への1回の書き込みでプロセスを開始又は停止する。 The microcode is executed only when all the bits of the synchronization register 197 are also set in the common synchronization register 197. Thus, the CPU sets up all processing units, eg, PU 178, and then starts or stops the process with a single write to the common synchronization register 197.

この同期方式は、複数のプロセスが処理ユニット、例えば、PU178上で非同期的に実行されることを可能にさせ、同時に1個の処理ユニット、例えば、PU178としてではなく、プロセスとして停止及び開始される、
プロセス内の実行の一時停止
所与のサイクルにおいて、処理ユニット、例えば、PU178は、(現在のマイクロコード命令のオペレーションコードに基づいて)FIFOからの読み出し、又はFIFOへの書き込みのために必要である。FIFOが読み出し要求時にエンプティであるか、又は書き込み要求時にフルである場合、FIFO要求は完了し得ない。処理ユニット、例えば、PU178は、したがって、プロセス一時停止制御信号198をアサートする。全ての処理ユニット、例えば、PU178からのプロセス一時停止信号は、全ての処理ユニット、例えば、PU178へフィードバックされる。同期レジスタ197は、4個のプロセス一時停止ビットと論理積演算され、結果が非零であるならば、処理ユニット、例えば、PU178のレジスタのライトイネーブル、又はFIFOストローブはセットされない。したがって、そのタスクを終了できなかった処理ユニット、例えば、PU178と同じプロセスグループを形成する処理ユニット、例えば、PU178の中に、自分のレジスタ又はFIFOがそのサイクル中に更新された処理ユニットは存在しない。この簡単な技術は、所定のプロセスグループを同期状態に保つ。後の各サイクルで、処理ユニット、例えば、PU178の状態機械は、同じアドレスのこのマイクロコード命令を再実行することを試み、成功するまでそのようにし続ける。勿論、共通同期レジスタ197は、必要に応じてプロセス全体を停止させるため、CPUによって書き込むことができる。この同期方式は、任意の処理ユニット、例えば、PU178の組み合わせが一体となって動作することを可能にさせ、各グループは、データを読み書きする準備ができていないことを原因とする一時停止に関しては、協働して動作する処理ユニットだけに影響を与える。
This synchronization scheme allows multiple processes to run asynchronously on a processing unit, eg, PU 178, and is stopped and started as a process at the same time rather than as a single processing unit, eg, PU 178. ,
Suspend execution in process In a given cycle, a processing unit, eg, PU 178, is required for reading from or writing to the FIFO (based on the operation code of the current microcode instruction). . If the FIFO is empty on a read request or full on a write request, the FIFO request cannot be completed. The processing unit, eg, PU 178, therefore asserts the process suspension control signal 198. Process suspension signals from all processing units, eg, PU 178, are fed back to all processing units, eg, PU 178. The synchronization register 197 is ANDed with the four process pause bits, and if the result is non-zero, the write enable of the processing unit, eg, the PU 178 register, or the FIFO strobe is not set. Therefore, there is no processing unit whose own register or FIFO was updated during the cycle in a processing unit that could not finish the task, for example, a processing unit that forms the same process group as PU 178, for example, PU 178. . This simple technique keeps a given process group in sync. In each subsequent cycle, the processing unit, eg, PU 178 state machine, will attempt to re-execute this microcode instruction at the same address and will continue to do so until successful. Of course, the common synchronization register 197 can be written by the CPU to stop the entire process if necessary. This synchronization scheme allows any processing unit, eg, a combination of PU 178, to work together, with each group regarding pauses due to not being ready to read and write data. Only affect the processing units working together.

制御及び分岐
各サイクル中、処理ユニット、例えば、PU178のALU188内の4個の基本入力及び計算ユニットの各々(読み出し、アダー/ロジック、乗算/補間、及びバレルシフタ)は、そのサイクル中の演算結果が0であるか又は負であるかを示す零フラグ及び負フラグの二つの状態ビットを生成する。各サイクルに、これらの4個の状態ビットのうちの一つが、処理ユニット、例えば、PU178から出力されるマイクロコード命令によって選択される。4個の状態ビット(一つの処理ユニット、例えば、PU178のALU188について1個)が4ビット共通状態レジスタ200に組み合わされる。次のサイクル中に、各処理ユニット、例えば、PU178のマイクロコードプログラムは、共通状態レジスタ200からのビットのうちの1ビットを選択し、状態ビットの値に依存して別のマイクロコードアドレスへ分岐することが可能である。
During each cycle of control and branching, each of the four basic input and calculation units (read, adder / logic, multiplication / interpolation, and barrel shifter) in the processing unit, eg, ALU 188 of PU178, It generates two status bits, a zero flag and a negative flag that indicate zero or negative. During each cycle, one of these four status bits is selected by a microcode instruction output from a processing unit, eg, PU178. Four status bits (one for a processing unit, eg, ALU 188 of PU 178) are combined into the 4-bit common status register 200. During the next cycle, the microcode program of each processing unit, eg, PU178, selects one of the bits from the common status register 200 and branches to another microcode address depending on the value of the status bit. Is possible.

状態ビット
各処理ユニット、例えば、PU178のALU188は、多数の入力及び計算ユニットを含む。各ユニットは、負フラグと零フラグの二つの状態ビットを生成する。これらの状態ビットのうちの一つは、特別なユニットが1ビット3状態の状態ビットバス上の値をアサートするときに、処理ユニット、例えば、PU178から出力される。一つの状態ビットが処理ユニット、例えば、PU178から出力され、次に、共通状態レジスタ200を更新するため、他の処理ユニット、例えば、PU178の状態ビットと組み合わされる。出力状態ビットを決定するマイクロコードは以下の形式をとる。
The status bit each processing unit, eg, ALU 188 of PU 178, includes a number of input and calculation units. Each unit generates two status bits, a negative flag and a zero flag. One of these status bits is output from the processing unit, eg, PU 178, when the special unit asserts a value on the 1-bit 3-state status bit bus. One status bit is output from the processing unit, eg, PU 178, and then combined with the status bit of another processing unit, eg, PU 178, to update the common status register 200. The microcode that determines the output status bits takes the following form:

Figure 0004309954
ALU188内で、2ビット選択プロセッサブロック値は、4個の1ビットイネーブルビットにデコードされ、異なるイネーブルビットが各プロセッサユニットブロックへ送信される。状態選択ビット(零又は負を選択する)は、状態ビットバスへ出力されるべきビットを決定するため全てのユニットへ渡される。
Figure 0004309954
Within ALU 188, the 2-bit selected processor block value is decoded into four 1-bit enable bits and different enable bits are sent to each processor unit block. The status selection bit (selecting zero or negative) is passed to all units to determine the bit to be output to the status bit bus.

マイクロコード内の分岐
各処理ユニット、例えば、PU178は、実行中の現在のマイクロコードアドレスを保持する7ビットプログラムカウンタ(PC)を含む。普通のプログラム実行はリニアであり、即ち、あるサイクルのアドレスNから次のサイクルのアドレスN+1へ進む。しかし、サイクル毎に、マイクロコードプログラムは、異なる場所へ分岐する能力、又は共通状態レジスタ200からの状態ビットをテストして分岐する能力を備えている。次の実行アドレスを決定するマイクロコードは以下の形式をとる。
Each branch processing unit in microcode, eg, PU 178, includes a 7-bit program counter (PC) that holds the current microcode address being executed. Normal program execution is linear, i.e., going from address N in one cycle to address N + 1 in the next cycle. However, from cycle to cycle, the microcode program has the ability to branch to a different location or to test and branch the status bits from the common status register 200. The microcode that determines the next execution address takes the following form:

Figure 0004309954
ALU188
図5はALU188を詳細に示す図である。ALU188内部には、多数の専用処理ブロックが存在し、マイクロコードプログラムによって制御される。専用処理ブロックには、
入力FIFOからのデータを受け取る読み出しブロック202と、
出力FIFOを介してデータを送り出す書き込みブロック203と、
加算及び減算と、比較及び論理演算のためのアダー/ロジックブロック204と、
乗算タイプの補間及び乗算/累算のための乗算/補間ブロック205と、
要求に応じてデータをシフトするバレルシフトブロック206と、
外部クロスバースイッチ183からのデータを受け取る入力ブロック207と、
外部クロスバースイッチ183へデータを送り出す出力ブロック208と、
一次記憶装置にデータを保持するレジスタブロック215と、
が含まれる。
Figure 0004309954
ALU188
FIG. 5 shows the ALU 188 in detail. A large number of dedicated processing blocks exist within the ALU 188 and are controlled by a microcode program. In the dedicated processing block,
A read block 202 for receiving data from the input FIFO;
A write block 203 for sending data through an output FIFO;
An adder / logic block 204 for addition and subtraction, comparison and logic operations;
A multiplication / interpolation block 205 for multiplication type interpolation and multiplication / accumulation;
A barrel shift block 206 for shifting data on demand;
An input block 207 for receiving data from the external crossbar switch 183;
An output block 208 for sending data to the external crossbar switch 183;
A register block 215 for holding data in a primary storage device;
Is included.

4個の専用32ビットレジスタは、4個の主要な処理ブロックの結果を保持する:
Mレジスタ209は、乗算/補間ブロックの結果を保持する;
Lレジスタ209は、アダー/ロジックブロックの結果を保持する;
Sレジスタ209は、バレルシフタブロックの結果を保持する;
Rレジスタ209は、読み出しブロック202の結果を保持する。
Four dedicated 32-bit registers hold the results of the four main processing blocks:
M register 209 holds the result of the multiply / interpolate block;
L register 209 holds the result of the adder / logic block;
S register 209 holds the result of the barrel shifter block;
The R register 209 holds the result of the read block 202.

更に、データ転送用の二つの内部クロスバースイッチ213及び214が存在する。多様な処理ブロックは、各ブロックに属するマイクロコード定義と共に後続のセクションで更に展開される。尚、マイクロコードは、内部の様々なユニットへ制御信号を供給するためブロック内でデコードされる。 In addition, there are two internal crossbar switches 213 and 214 for data transfer. The various processing blocks are further expanded in subsequent sections with the microcode definitions belonging to each block. The microcode is decoded in the block to supply control signals to various internal units.

処理ユニット、例えば、PU178間のデータ転送
各処理ユニット、例えば、PU178は、外部クロスバーを介してデータを交換することができる。処理ユニット、例えば、PU178は、二つの入力を取得し、2個の値を外部クロスバーへ出力する。このようにして、処理用の2個のオペランドが単一サイクルで獲得できるが、実際には、次のサイクルまで演算に使用されない。
Data Transfer Between Processing Units, eg, PU 178 Each processing unit, eg, PU 178, can exchange data via an external crossbar. A processing unit, eg, PU 178, takes two inputs and outputs two values to the external crossbar. In this way, two operands for processing can be obtained in a single cycle, but in practice they are not used in the operation until the next cycle.

入力207
このブロックは図6に示され、外部クロスバーからのデータを受け取る2個のレジスタIn1及びIn2を含む。レジスタはサイクル毎にロードすることが可能であり、又はそのままの状態を保つことが可能である。8入力から選択するための選択ビットは、外部クロスバースイッチ183へ出力される。マイクロコードは以下の形式をとる。
Input 207
This block is shown in FIG. 6 and includes two registers In1 and In2 that receive data from the external crossbar. The registers can be loaded every cycle or can remain intact. A selection bit for selecting from 8 inputs is output to the external crossbar switch 183. Microcode takes the form:

Figure 0004309954
出力208
入力は出力208によって補完される。出力ブロックは図7に詳細に示されている。出力は、Out1及びOut2の2個のレジスタを含み、両方のレジスタは、他の処理ユニット、例えば、PU178によって使用するためサイクル毎に外部クロスバーへ出力される。また、書き込みユニットは、Out1とOut2のうちの一方を、ALU188に取り付けられた出力FIFOの一つに書き込むことが可能である。最終的に、両方のレジスタは、第1クロスバー213への入力として利用可能であり、第1クロスバー213は、そのレジスタ値がALU188内の他のユニットへの入力として利用できるようにする。各サイクルで、2個のレジスタのうち何れか一方は、マイクロコード選択に応じて更新することができる。指定されたレジスタにロードされたデータは、(第1クロスバー213から選択された)D0−D3のうちの一つ、(第2クロスバー214から選択された)M、L、S及びRのうちの一つ、2個のプログラマブル定数のうちの一つ、又は固定値0若しくは1である。出力用のマイクロコードは以下の形式をとる。
Figure 0004309954
Output 208
Input is complemented by output 208. The output block is shown in detail in FIG. The output includes two registers, Out 1 and Out 2 , both of which are output to the external crossbar every cycle for use by other processing units, eg, PU 178. The writing unit can write one of Out 1 and Out 2 to one of the output FIFOs attached to the ALU 188. Eventually, both registers are available as inputs to the first crossbar 213, which makes the register values available as inputs to other units in the ALU 188. In each cycle, either one of the two registers can be updated in response to microcode selection. The data loaded into the designated register is one of D 0 -D 3 (selected from the first crossbar 213), M, L, S and (selected from the second crossbar 214). One of R, one of two programmable constants, or a fixed value of 0 or 1. The output microcode takes the following form:

Figure 0004309954
ALU188内のローカルレジスタ及びデータ転送
前述の通り、ALU188は、以下の4個のブロックの結果を保持するため、4個の専用32ビットレジスタを含む:
Mレジスタ209は乗算/補間ブロックの結果を保持する;
Lレジスタ209はアダー/ロジックブロックの結果を保持する;
Sレジスタ209はバレルシフタブロックの結果を保持する;
Rレジスタ209は読み出しブロック202の結果を保持する。
Figure 0004309954
Local Registers and Data Transfer in ALU 188 As described above, ALU 188 includes four dedicated 32-bit registers to hold the results of the following four blocks:
M register 209 holds the result of the multiply / interpolate block;
L register 209 holds the result of the adder / logic block;
S register 209 holds the result of the barrel shifter block;
The R register 209 holds the result of the read block 202.

CPUはこれらのレジスタに直接アクセスを行い、他のユニットは、第2クロスバー214経由の入力としてそれらを選択することができる。場合によっては、演算を1サイクル以上遅延させる必要がある。レジスタブロックは、4個の32ビットレジスタD0−D3を含み、処理中の一時変数を保持する。各サイクルに、レジスタのうちの一つを更新可能であり、一方、全てのレジスタは、他のユニットが(同様に、In、In2、Out1及びOut2を含む)第1クロスバー213を介して使用するために出力される。CPUはこれらのレジスタへ直接アクセスを行う。指定されたレジスタにロードされたデータは、(第1クロスバー213から選択された)D0−D3のうちの一つ、(第2クロスバー214から選択された)M、L、S及びRのうちの一つ、2個のプログラマブル定数のうちの一つ、又は固定値0若しくは1である。レジスタブロック215は図8に詳細に示されている。レジスタ用のマイクロコードは以下の形式をとる。 The CPU has direct access to these registers and other units can select them as inputs via the second crossbar 214. In some cases, the operation needs to be delayed by one cycle or more. The register block includes four 32-bit registers D 0 -D 3 and holds temporary variables being processed. Each cycle is updatable one of the registers, while all registers, other unit (likewise includes an In 1, an In 2, Out 1 and Out 2) the first cross bar 213 Is output for use through. The CPU directly accesses these registers. The data loaded into the designated register is one of D 0 -D 3 (selected from the first crossbar 213), M, L, S and (selected from the second crossbar 214). One of R, one of two programmable constants, or a fixed value of 0 or 1. Register block 215 is shown in detail in FIG. The microcode for registers takes the form:

Figure 0004309954
第1クロスバー213
第1クロスバー213は図9に詳細に示されている。第1クロスバー213は、入力In、In2、Out1、Out2、D0−D3から選択するため使用される。7個の出力が第1クロスバー213から発生され、3個が乗算/補間ユニットへ、2個がアダーユニットへ、1個がレジスタユニットへ、1個が出力ユニットへ向けられる。第1クロスバー213用の制御信号は、クロスバー入力を使用する様々なユニットから到来する。第1クロスバー213のため分離された特定のマイクロコードは存在しない。
Figure 0004309954
First crossbar 213
The first crossbar 213 is shown in detail in FIG. First cross bar 213 is used to select the input In 1, In 2, Out 1 , Out 2, D 0 -D 3. Seven outputs are generated from the first crossbar 213, three for the multiplication / interpolation unit, two for the adder unit, one for the register unit and one for the output unit. The control signal for the first crossbar 213 comes from various units that use the crossbar input. There is no specific microcode separated for the first crossbar 213.

第2クロスバー214
第2クロスバー214は図10に詳細に示されている。第2クロスバー214は、汎用ALU188レジスタM、L、S及びRから選択するため使用される。6個の出力が第1クロスバー213から発生され、2個が乗算/補間ユニットへ、2個がアダーユニットへ、1個がレジスタユニットへ、1個が出力ユニットへ向けられる。第2クロスバー214用の制御信号は、クロスバー入力を使用する様々なユニットから到来する。第2クロスバー214のため分離された特定のマイクロコードは存在しない。
Second crossbar 214
The second crossbar 214 is shown in detail in FIG. The second crossbar 214 is used to select from the general purpose ALU 188 registers M, L, S and R. Six outputs are generated from the first crossbar 213, two to the multiply / interpolate unit, two to the adder unit, one to the register unit and one to the output unit. The control signal for the second crossbar 214 comes from various units that use the crossbar input. There is no specific microcode separated for the second crossbar 214.

処理ユニット、例えば、PU178とDRAM又は外部プロセスとの間のデータ転送
図4を参照すると、処理ユニット、例えば、PU178は、外部クロスバーを介して、直接的に相互にデータを共有する。また、処理ユニットは、外部プロセス並びにDRAMとの間でデータを転送する。各処理ユニット、例えば、PU178は、2個のI/Oアドレス生成器189及び190を含み、DRAMとの間でデータを転送する。処理ユニット、例えば、PU178は、I/Oアドレス生成器の出力FIFO、例えば、186を介してDRAMへデータを送出し、又はI/Oアドレス生成器の入力FIFO187を介して、DRAMからデータを受け取る。これらのFIFOは、処理ユニット、例えば、PU178に局在する。また、外部プロセスとの間で、全てのALUによって共有される共通VLIW入力FIFO78及び共通VLIW出力FIFO79の形でデータを送受する機構が存在する。VLIW入力及び出力FIFOは、8ビット幅しかなく、印刷、Artcard読み出し、CPU等へのデータ転送に使用される。ローカル入力及び出力FIFOは16ビット幅である。
Data Transfer Between Processing Units such as PU 178 and DRAM or External Process Referring to FIG. 4, processing units such as PU 178 directly share data with each other via an external crossbar. The processing unit also transfers data to and from external processes and DRAMs. Each processing unit, eg, PU 178, includes two I / O address generators 189 and 190 to transfer data to and from the DRAM. The processing unit, eg, PU 178, sends data to the DRAM via an I / O address generator output FIFO, eg, 186, or receives data from the DRAM via the I / O address generator input FIFO 187. . These FIFOs are localized in the processing unit, eg, PU178. There is also a mechanism for sending and receiving data to and from external processes in the form of a common VLIW input FIFO 78 and a common VLIW output FIFO 79 shared by all ALUs. The VLIW input and output FIFOs are only 8 bits wide and are used for printing, Artcard reading, and data transfer to the CPU. The local input and output FIFO is 16 bits wide.

読み出し
図5の読み出しプロセスブロック202は、ALU188のRレジスタ209を更新する役割を担い、Rレジスタは、VLIWマイクロコード化プロセスへの外部入力データを表現する。サイクル毎に、読み出しユニットは、共通VLIW入力FIFO78(8ビット)、又は2個のローカル入力FIFO(16ビット)のうちの何れかから読み出すことが可能である。32ビット値が生成され、そのデータの全部又は一部がRレジスタ209へ転送される。プロセスは図11に示されている。読み出し用のマイクロコードは以下の表に掲載されている。一部のビットパターンの解釈はデコーディングを補助するため意図的に選択される。
Read The read process block 202 of FIG. 5 is responsible for updating the R register 209 of the ALU 188, which represents the external input data to the VLIW microcoding process. For each cycle, the read unit can read from either the common VLIW input FIFO 78 (8 bits) or two local input FIFOs (16 bits). A 32-bit value is generated and all or part of the data is transferred to the R register 209. The process is shown in FIG. Read microcodes are listed in the table below. The interpretation of some bit patterns is deliberately selected to aid in decoding.

Figure 0004309954
書き込み
書き込みプロセスブロックは、各サイクルに、共通VLIW出力FIFO79、又は2個のローカル出力FIFOの一方の何れかへの書き込みを行うことができる。所与のサイクル中に書き込まれるFIFOは1個しかないので、1個の16ビット値が全てのFIFOへ出力され、下位8ビットがVLIW出力FIFO79へ達することに注意する必要がある。マイクロコードは、どのFIFOがその値を受け付けるかを制御する。データ選択のプロセスは図12により詳細に示されている。ソース値Out1及びOut2は出力ブロックから到来する。それらは、単に2個のレジスタである。書き込み用のマイクロコードは以下の形式をとる。
Figure 0004309954
The write-write process block can write to either the common VLIW output FIFO 79 or one of the two local output FIFOs in each cycle. Note that since there is only one FIFO written during a given cycle, one 16-bit value is output to all FIFOs and the lower 8 bits reach the VLIW output FIFO 79. The microcode controls which FIFO accepts the value. The process of data selection is shown in more detail in FIG. Source values Out 1 and Out 2 come from the output block. They are simply two registers. The microcode for writing takes the following form:

Figure 0004309954
計算ブロック
各ALU188は、2個の計算プロセスブロック、即ち、アダー/ロジックプロセスブロック204と、乗算/補間プロセスブロック205と、を含む。更に、これらの計算ブロックを補助するためバレルシフタブロックが設けられる。レジスタブロック215からのレジスタは、パイプライン演算中に一時記憶装置として使用することも可能である。
Figure 0004309954
Calculation Block Each ALU 188 includes two calculation process blocks: an adder / logic process block 204 and a multiplication / interpolation process block 205. In addition, a barrel shifter block is provided to assist these calculation blocks. Registers from register block 215 can also be used as temporary storage during pipeline operations.

バレルシフタ
バレルシフタプロセスブロック206は図13に詳細に示され、その入力は、アダー/ロジック、若しくは、乗算/補間プロセスブロックの出力、又はそれらのブロック(ALUレジスタL及びM)の前のサイクルの結果から得られる。選択された32ビットは、(必要に応じて符号を拡張して)何れかの向きに任意のビット数だけバレルシフトされ、ALU188のSレジスタ209へ出力される。バレルシフトプロセスブロック用のマイクロコードは以下の表に記載されている。一部のビットパターンの解釈はデコーディングを助けるため意図的に選択されることに注意する必要がある。
The barrel shifter barrel shifter process block 206 is shown in detail in FIG. 13 and its input is derived from the output of the adder / logic, or the output of the multiply / interpolate process block, or the previous cycle of those blocks (ALU registers L and M). can get. The selected 32 bits are barrel-shifted by an arbitrary number of bits in any direction (with the sign extended as necessary) and output to the S register 209 of the ALU 188. The microcode for the barrel shift process block is listed in the table below. It should be noted that some bit pattern interpretations are intentionally chosen to aid in decoding.

Figure 0004309954
アダー/ロジック204
アダー/ロジックプロセスブロックは、図14により詳細に示され、簡単な32ビット加算/減算、比較、及び論理演算用に設計されている。単一サイクルで、1回の加算、比較、又は論理演算を実行することができ、その結果はALU188のLレジスタ209に保存される。二つの主オペランドA及びBが存在し、これらは、二つのクロスバーの何れか、又は4個の定数レジスタから選択される。一方のクロスバーの選択によって、前のサイクルの算術演算の結果を使用することが可能になり、もう一方は、このALU又は他のALU188によって前に計算されたオペランドへアクセスする。CPUは、4個の定数(K1−K4)にアクセスする唯一のユニットである。例えば、(A+B)×4のような演算が要求される場合、アダーからの直接出力は、バレルシフタへの入力として使用可能であり、先にLレジスタ209にラッチしなくても2個分だけ左シフトさせることができる。アダーからの出力は、乗算−累算演算のため乗算ユニットで利用することができる。アダー/ロジックプロセスブロック用のマイクロコードは以下の表に掲載されている。一部のビットパターンの解釈はデコーディングを補助するため意図的に選択される。
アダー/ロジックユニット用のマイクロコードビット解釈
Figure 0004309954
Adder / Logic 204
The adder / logic process block is shown in more detail in FIG. 14 and is designed for simple 32-bit addition / subtraction, comparison, and logic operations. A single addition, comparison, or logical operation can be performed in a single cycle, and the result is stored in the ALU 188 L register 209. There are two main operands A and B, which are selected from either of the two crossbars or from four constant registers. Selection of one crossbar makes it possible to use the result of the previous cycle's arithmetic operation, while the other accesses an operand previously calculated by this ALU or another ALU 188. The CPU is the only unit that accesses the four constants (K 1 -K 4 ). For example, when an operation such as (A + B) × 4 is required, the direct output from the adder can be used as an input to the barrel shifter, and left by two without latching in the L register 209 first. Can be shifted. The output from the adder can be used by the multiply unit for multiply-accumulate operations. The microcode for the adder / logic process block is listed in the table below. The interpretation of some bit patterns is deliberately selected to aid in decoding.
Microcode bit interpretation for adder / logic units

Figure 0004309954
乗算/補間205
乗算/補間プロセスブロックは、図15に詳細に示され、4個の8×8形補間ユニットのセットであり、4個の8×8形補間ユニットは、1サイクル毎に4回の別個の8×8形補間を実行する能力を備えているか、又は1回の16×16形乗算を実行するため組み合わせることができる。これは、単一サイクル中に最大で4回のリニア補間、1回のバイリニア補間、又はトライリニア補間の半分を実行可能であることを示す。補間又は乗算の結果はALU188のMレジスタ209に保存される。二つの主オペランドA及びBは、ALU188の汎用レジスタの何れかから選択されるか、又は乗算/補間プロセスブロックの内部にある4個のプログラマブル定数から選択される。各補間ブロックは、簡単な8ビット補間器[結果=A+(B−A)f]として機能するか、又は簡単な8×8形乗算[結果=A*B]として機能する。演算が補間である場合、A及びBは、4個の8ビット数値A0からA3(A0は下位バイトである)、及びB0からB3として取り扱われる。AGEN、BGEN及びFGENは、実行される演算に適合するように補間ユニットへの入力を並べる役目を果たす。例えば、バイリニア補間を実行するため、4個の値の各々は、異なる係数によって乗算され、その結果が加算され、一方、16×16形の乗算は、係数を0にする必要がある。アダー/ロジックプロセスブロック用のマイクロコードは、以下の表に掲載されている。尚、一部のビットパターンの解釈はデコーディングを補助するため意図的に選択される。
Figure 0004309954
Multiplication / interpolation 205
The multiply / interpolate process block is shown in detail in FIG. 15 and is a set of four 8 × 8 interpolating units, where four 8 × 8 interpolating units are four separate 8 per cycle. It has the ability to perform x8 interpolation or can be combined to perform a single 16x16 multiplication. This indicates that a maximum of four linear interpolations, one bilinear interpolation, or half of trilinear interpolation can be performed in a single cycle. The result of interpolation or multiplication is stored in the M register 209 of the ALU 188. The two main operands A and B are selected from any of the general purpose registers of ALU 188, or selected from four programmable constants internal to the multiply / interpolate process block. Each interpolation block functions as a simple 8-bit interpolator [Result = A + (B−A) f] or as a simple 8 × 8 multiplication [Result = A * B]. If the operation is interpolation, A and B are treated as four 8-bit numbers A 0 to A 3 (A 0 is the lower byte) and B 0 to B 3 . AGEN, BGEN and FGEN serve to line up the inputs to the interpolation unit to suit the operation being performed. For example, to perform bilinear interpolation, each of the four values is multiplied by a different coefficient and the results are added, while a 16 × 16 type multiplication requires the coefficient to be zero. The microcode for the adder / logic process block is listed in the table below. Note that the interpretation of some bit patterns is intentionally selected to assist in decoding.

Figure 0004309954
同じ4ビットがV及びfの選択のために使用されるが、Vの直前の4個の選択肢は、一般的にf値として意味をなさない。1又は0の係数を用いる補間は無意味であり、前の乗算若しくは現在の結果がfに対する有意な値である可能性は少ない。
Figure 0004309954
The same 4 bits are used for the selection of V and f, but the 4 choices immediately before V generally do not make sense as an f value. Interpolation using a coefficient of 1 or 0 is meaningless and the previous multiplication or current result is unlikely to be a significant value for f.

I/Oアドレス生成器189と190
I/Oアドレス生成器は図16に詳細に示されている。VLIWプロセスはDRAMに直接アクセスしない。アクセスは2個のI/Oアドレス生成器189、190を介して行われ、各々のI/Oアドレス生成器は固有の入力FIFO及び出力FIFOを含む。処理ユニット、例えば、PU178は、2個のローカル入力FIFOの一方からデータを読み出し、2個のローカル出力FIFOの一方にデータを書き込む。各I/Oアドレス生成器は、DRAMからデータを読み出し、そのデータを入力FIFOに入れる責任があり、その入力FIFOにおいて、データは処理ユニット、例えば、PU178によって読み出すことができる。各I/Oアドレス生成器は、その出力FIFOから(処理ユニット、たとえば、PU178によって入れられた)データを取り出し、それをDRAMに書き込む役割を担う。I/Oアドレス生成器は、データキャッシュ76を介してDRAMのデータを取得及び記憶するためのアドレスを生成し制御を行う状態機械である。それは、CPUソフトウェア制御の下でカスタマイズ可能であるが、マイクロコード化できない。アドレス生成器は、
多種多様な方式で画像の画素の最初から最後までを繰り返すため(読み、書き、もしくはその両方)使用される画像イタレータと、
画像の画素、テーブルのデータをランダムにアクセスし、DRAMのFIFOをシミュレートするため使用されるテーブルI/Oと、
の二つに大別されるアドレスを生成する。
I / O address generators 189 and 190
The I / O address generator is shown in detail in FIG. VLIW processes do not access DRAM directly. Access is through two I / O address generators 189, 190, each I / O address generator including a unique input FIFO and output FIFO. A processing unit, eg, PU 178, reads data from one of the two local input FIFOs and writes data to one of the two local output FIFOs. Each I / O address generator is responsible for reading data from the DRAM and placing the data in the input FIFO, where it can be read by a processing unit, eg, PU 178. Each I / O address generator is responsible for taking data (put in by a processing unit, eg, PU 178) from its output FIFO and writing it to DRAM. The I / O address generator is a state machine that generates and controls an address for acquiring and storing DRAM data via the data cache 76. It can be customized under CPU software control but cannot be microcoded. The address generator
An image iterator used to repeat (read, write, or both) from the beginning to the end of an image pixel in a wide variety of ways;
Table I / O used to randomly access image pixels, table data, and simulate a DRAM FIFO;
Addresses that are roughly divided into two.

I/Oアドレス生成器189と190の各々は、データキャッシュ76への固有のバス配線を具備し、1個の処理ユニット、例えば、PU178について2本のバス配線があり、VLIWベクトルプロセッサ74全体で合計8本のバスがある。データキャッシュ76は、サイクル毎に、4個の処理ユニット、例えば、PU178からの最大で8個の要求のうちの4個のために作用することが可能である。入力FIFO及び出力FIFOは、深さが8エントリーで、幅が16ビットのFIFOである。多種多様のアドレス生成(画像イタレータ及びテーブルI/O)が後のセクションで説明される。 Each of the I / O address generators 189 and 190 has its own bus wiring to the data cache 76, and there are two bus wirings for one processing unit, eg, PU 178, throughout the VLIW vector processor 74. There are a total of 8 buses. The data cache 76 can serve for 4 of a maximum of 8 requests from 4 processing units, eg, PU 178, per cycle. The input FIFO and the output FIFO are FIFOs having a depth of 8 entries and a width of 16 bits. A wide variety of address generation (image iterator and table I / O) is described in a later section.

レジスタ
I/Oアドレス生成器は、アドレス生成を制御するため使用されるレジスタの組を有する。また、アドレッシングモードは、データがどのようにフォーマットされ、ローカル入力FIFOへ送られるか、並びに、データが出力FIFOからどのように解釈されるかを決定する。CPUは、低速バスを介して、I/Oアドレス生成器のレジスタにアクセス可能である。第1のレジスタの組は、I/O生成器のためのハウスキーピングパラメータを定義する。
The register I / O address generator has a set of registers that are used to control address generation. The addressing mode also determines how data is formatted and sent to the local input FIFO and how the data is interpreted from the output FIFO. The CPU can access the registers of the I / O address generator via the low speed bus. The first set of registers defines housekeeping parameters for the I / O generator.

Figure 0004309954
状態レジスタは以下の値をとる。
Figure 0004309954
The status register takes the following values:

Figure 0004309954
キャッシュ処理
複数のレジスタがキャッシュ処理機構を制御するため使用され、入力、出力等に使用するキャッシュグループを指定する。キャッシュグループのより詳細な情報についてはデータキャッシュ76に関するセクションを参照のこと。
Figure 0004309954
Cache processing Multiple registers are used to control the cache processing mechanism, and specify the cache group to be used for input, output, etc. See the section on data cache 76 for more information on cache groups.

Figure 0004309954
画像イタレータ=順次自動画素アクセス
ソフトウェア及びハードウェアアルゴリズム用の主な画像絵素アクセス方法は画像イタレータによる。画像イタレータは、画像チャンネル内の画素のキャッシュのアドレッシング及びアクセスの全てを実行し、それらのクライアントのため画素を読み出し、書き込み、或いは、読み書きする。読み出しイタレータは、そのクライアントのための特定の順序で画素を読み出し、書き込みイタレータはそのクライアントのための特定の順序で画素を書き込む。イタレータのクライアントは、ローカル入力FIFOから画素を読み出し、又はローカル出力FIFOを介して画素を書き込む。
Figure 0004309954
Image Iterator = Sequential automatic pixel access software and main image pixel access method for hardware algorithm is image iterator. The image iterator performs all of the addressing and access of the pixels in the image channel and reads, writes, or reads and writes pixels for those clients. A read iterator reads pixels in a particular order for that client, and a write iterator writes pixels in a particular order for that client. The iterator client reads a pixel from the local input FIFO or writes a pixel through the local output FIFO.

読み出し画像イタレータは、特定の順序で画像の中を読み、画素データをローカル入力FIFOに入れる。クライアントが入力FIFOから画素を読み出す毎に、読み出しイタレータは(データキャッシュ76経由で)画像からの次の画素をFIFOに入れる。 The read image iterator reads through the image in a specific order and puts the pixel data into the local input FIFO. Each time the client reads a pixel from the input FIFO, the read iterator puts the next pixel from the image (via the data cache 76) into the FIFO.

書き込み画像イタレータは、画像全体を書き出すため、特定の順序で画素を書き込む。クライアントは画素を出力バッファに書き込み、この出力バッファが次に書き込み画像イタレータによって読み出され、データキャッシュ76を介してDRAMに書き込まれる。 The write image iterator writes the pixels in a specific order to write out the entire image. The client writes the pixel to the output buffer, which is then read by the write image iterator and written to the DRAM via the data cache 76.

典型的に、VLIWプロセッサは、読み出しイタレータに結合された入力と、対応した書き込みイタレータに結合された出力と、を有する。処理ユニット、例えば、PU178のマイクロプログラムの観点では、FIFOは、DRAMへの効率的なインタフェースである。記憶を(データの論理的な順序ではなく)実際に実行する方法は無関係である。FIFOは、長さが実質的に制限されていると考えられるが、実際上、FIFOは長さが有限であり、特に、複数のメモリアクセスが競合する場合、データをソートし、取り出す遅延が生じる。画像処理アルゴリズムの最も一般的なアドレッシング必要条件に対処する様々な画像イタレータが存在する。殆どの場合に、各読み出しイタレータには、対応した書き込みイタレータが存在する。種々のイタレータが以下の表に掲載されている。 Typically, a VLIW processor has an input coupled to a read iterator and an output coupled to a corresponding write iterator. From the perspective of a processing unit, eg, a microprogram of the PU 178, the FIFO is an efficient interface to the DRAM. The way in which the storage is actually performed (rather than the logical order of the data) is irrelevant. FIFOs are considered to be substantially limited in length, but in practice, FIFOs are finite in length, especially when multiple memory accesses compete, there is a delay in sorting and retrieving data . There are various image iterators that address the most common addressing requirements of image processing algorithms. In most cases, each read iterator has a corresponding write iterator. Various iterators are listed in the table below.

Figure 0004309954
4ビットアドレスモードレジスタがイタレータタイプを決定するため使用される。
Figure 0004309954
A 4-bit address mode register is used to determine the iterator type.

Figure 0004309954
アクセス専用レジスタは以下のように使用される。
Figure 0004309954
The access-only register is used as follows.

Figure 0004309954
フラグレジスタ(アクセス専用1)は、データの読み出し及び書き込みに影響を与える要因を決定する多数のフラグを含む。フラグレジスタは以下のように構成される。
Figure 0004309954
The flag register (access only 1) includes a number of flags that determine factors that affect the reading and writing of data. The flag register is configured as follows.

Figure 0004309954
読み出しイネーブル及び書き込みイネーブルに関する注意:
読み出しイネーブルがセットされたとき、I/Oアドレス生成器は読み出しイタレータとして動作するので、特定の順序で画像を読み出し、画素を入力FIFOに収容する。
Figure 0004309954
Notes on read enable and write enable:
When read enable is set, the I / O address generator operates as a read iterator so that images are read in a specific order and the pixels are accommodated in the input FIFO.

書き込みイネーブルがセットされたとき、I/Oアドレス生成器は書き込みイタレータとして動作するので、特定の順序で画像を書き込み、出力FIFOから画素を取り出す。 When write enable is set, the I / O address generator operates as a write iterator so that images are written in a specific order and pixels are extracted from the output FIFO.

読み出しイネーブルと書き込みイネーブルの両方がセットされたとき、I/Oアドレス生成器は、読み出しイタレータ及び書き込みイタレータとして動作し、入力FIFO内の画素を読み出し、出力FIFOからの画素を書き込む。画素は読み出された後に限り書き込まれる。即ち、書き込みイタレータは読み出しイタレータよりも先に進むことはない。このモードが使用されるときには、VLIWマイクロコードによる入力処理と出力処理の間のバランスを確保するように注意すべきである。尚、CasheGroup1とキャッシュグループ2に異なる値をロードすることによって、別々のキャッシュグループを読み出しと書き込みに関して指定することも可能である。 When both read enable and write enable are set, the I / O address generator operates as a read and write iterator, reads pixels in the input FIFO, and writes pixels from the output FIFO. Pixels are written only after they are read out. That is, the write iterator does not advance beyond the read iterator. Care should be taken to ensure a balance between input processing and output processing by the VLIW microcode when this mode is used. It is also possible to specify different cache groups for reading and writing by loading different values into CashGroup1 and CacheGroup2.

PassX及びPassYに関する注意:
PassXとPassYの両方がセットされた場合、Y縦座標はX縦座標よりも前に入力FIFOに収容される。
Notes on PassX and PassY:
If both PassX and PassY are set, the Y ordinate is accommodated in the input FIFO before the X ordinate.

PassX及びPassYは、読み出しイネーブルビットがクリアされたときに限りセットされる。縦座標をアドレス生成器に渡すのではなく、縦座標は入力FIFOに直接収容される。縦座標はFIFOから取り出されるときに前進する。 PassX and PassY are set only when the read enable bit is cleared. Rather than passing the ordinate to the address generator, the ordinate is received directly in the input FIFO. The ordinate advances when it is removed from the FIFO.

書き込みイネーブルビットがセットされた場合、VLIWプログラムは、入力FIFOからの縦座標の読み出しを、出力FIFOへの書き込みと確実にバランスさせる必要がある。なぜならば、書き込みは、縦座標までしか発生しないからである(読み出しイネーブル及び書き込みイネーブルに関する上記の注意を参照せよ。)
ループに関する注意:
ループビットがセットされた場合、読み出しは、一旦[最終画素、最終行]に達すると、[開始画素、開始行]で再開する。これは、データを繰り返し読み出す必要があるコンボリューションカーネルやディザセルマトリックスのような構造体を処理する場合に理想的である。
If the write enable bit is set, the VLIW program must reliably balance ordinate reading from the input FIFO with writing to the output FIFO. This is because writing occurs only up to the ordinate (see note above regarding read enable and write enable).
A note about loops:
When the loop bit is set, reading resumes at [Start Pixel, Start Row] once [Last Pixel, Last Row] is reached. This is ideal when processing structures such as convolution kernels or dither cell matrices that require repeated reading of data.

読み出しイネーブル及び書き込みイネーブルがセットされた状態のループ処理は、単一ラインの履歴を維持する環境で役に立ち得るが、書き込みの前に読み出しが行われる場合に限り有効である。(長さに制約のある形式で書き込みが読み出しの前に行われる)FIFOの効果がある場合、画像イタレータではなく、適切なテーブルI/Oアドレッシングモードが使用される。 Looping with read enable and write enable set can be useful in an environment that maintains a single line history, but is effective only when the read is done before the write. If there is a FIFO effect (writing is done in length-constrained form before reading), an appropriate table I / O addressing mode is used rather than an image iterator.

書き込みイネーブルだけがセットされたループ処理は、直前のN画素の書き込み窓を作成する。これは、窓からデータを読み出す非同期的プロセスを用いて使用される。Artcard読み出しアルゴリズムは、このモードを利用する。 The loop process in which only the write enable is set creates a write window for the previous N pixels. This is used with an asynchronous process that reads data from the window. The Artcard read algorithm uses this mode.

順次読み出し及び書き込みイタレータ
図17は、画素データフォーマットの説明図である。最も簡単な画像イタレータは、順次読み出しイタレータ、及び対応した順次書き込みイタレータである。順次読み出しイタレータは、チャンネルからの画素を、同時に1行ずつ、上から下に示し、同じ行内では、画素は左から右へ示される。パディングバイトはクライアントに示されない。これは、画像からの各画素にある種のプロセスを実行する必要があるが、処理される画素の順序を問題にしないか、又はデータが特にこの順序であることを要求するアルゴリズムにとって最も有益な点である。順次読み出しイタレータを補完するのは、順次書き込みイタレータである。クライアントは出力FIFOに画素を書き込む。順次書き込みイタレータは、適切なキャッシュ処理及び適切なパディングバイトを使用して、有効画像を書き出す。各順次イタレータは、2本のキャッシュラインへのアクセスを必要とする。読み出し時に、32画素が1本のキャッシュラインから示されるが、他のキャッシュラインはメモリからロードされ得る。書き込み時、32画素は1本のキャッシュラインに書き込まれるが、他の画素はメモリに書き込まれる。画像の各画素に独立に演算を実行するプロセスは、典型的に、画素を得るために順次読み出しイタレータを使用し、新しい画素値を目的画像内の対応した場所に書き込むため順次書き込みイタレータを使用するであろう。このような処理は図18に示されている。
Sequential Read and Write Iterator FIG. 17 is an explanatory diagram of a pixel data format. The simplest image iterator is a sequential read iterator and a corresponding sequential write iterator. The sequential read iterator shows the pixels from the channel, one row at a time, from top to bottom, and within the same row, the pixels are shown from left to right. The padding byte is not shown to the client. This is most useful for algorithms that need to perform some sort of process on each pixel from the image, but don't care about the order of the processed pixels, or that require the data to be in this particular order. Is a point. Complementing the sequential read iterator is the sequential write iterator. The client writes the pixel to the output FIFO. The sequential write iterator writes out a valid image using appropriate cache processing and appropriate padding bytes. Each sequential iterator requires access to two cache lines. When reading, 32 pixels are shown from one cache line, but other cache lines can be loaded from memory. At the time of writing, 32 pixels are written to one cache line, while the other pixels are written to the memory. The process of performing the operation independently on each pixel of the image typically uses a sequential read iterator to obtain the pixel and a sequential write iterator to write the new pixel value to the corresponding location in the destination image. Will. Such a process is shown in FIG.

殆どの場合に、原画像及び目的画像は異なり、2個のI/Oアドレス生成器189と190によって表現される。しかし、原画像と目的画像を一致させることも有効である。なぜならば、ある種の入力画像は1回しか読み出されないからである。その場合、同じイタレータを入力と出力の両方に使用することが可能であり、読み出しイネーブルレジスタ及び書き込みイネーブルレジスタの両方が適切にセットされる。最大効率の場合、読み出し用と書き込み用の2個の異なるキャッシュグループを使用することが必要である。データがVLIWプロセスによって作成され、順次書き込みイタレータによって書き込まれるべき場合、PassXフラグ及びPassYフラグは座標を生成するため使用され、その座標は、次に、入力FIFOへ伝えられる。VLIWプロセスは、これらの座標を使用し、出力データを適切に作成することができる。 In most cases, the original and target images are different and are represented by two I / O address generators 189 and 190. However, it is also effective to match the original image with the target image. This is because a certain type of input image is read only once. In that case, the same iterator can be used for both input and output, and both the read enable register and the write enable register are set appropriately. For maximum efficiency, it is necessary to use two different cache groups for reading and writing. If the data is created by a VLIW process and is to be written by a sequential write iterator, the PassX and PassY flags are used to generate coordinates, which are then communicated to the input FIFO. The VLIW process can use these coordinates to properly generate output data.

ボックス読み出しイタレータ
ボックス読み出しイタレータは、汎用フィルタ及びコンボルブのような演算を実行するため最も便利な順序で画素を提示するため使用される。このイタレータは、順次に読み出された画素の周りの正方形のボックス内の画素値を提示する。このボックスは、X及びYの方向の幅が1、3、5又は7画素になるように制限される(Xボックスサイズ及びYボックスサイズは同じ値であるか、一方の次元の値が1であり、他方の次元の値が3、5又は7である)。この処理は図19に示されている。
Box Read Iterator The box read iterator is used to present the pixels in the most convenient order for performing operations such as general purpose filters and convolutions. This iterator presents the pixel values in a square box around the sequentially read out pixels. This box is limited so that the width in the X and Y directions is 1, 3, 5 or 7 pixels (the X box size and the Y box size are the same value, or the value of one dimension is 1. Yes, the other dimension value is 3, 5 or 7.) This process is shown in FIG.

ボックスオフセット:この専用レジスタは、どの入力画素がボックスの中心として使用されるかに関してサブサンプリングを決定するため使用される。通常値は1であり、これは、各画素がボックスの中心として使用されることを意味する。”2”という値は、画像ピラミッドを構築する場合のように画像を4:1に縮小する際に便利である。上記の図からの画素アドレスを使用すると、ボックスは、画素0、2、8及び10の順に中心が置かれる。ボックス読み出しイタレータは、最大で14(2×7)本のキャッシュラインにアクセスする必要がある。画素が7本のラインの中の1組から提示される間に、他のキャッシュラインはメモリからロードすることが可能である。 Box offset: This dedicated register is used to determine subsampling with respect to which input pixel is used as the center of the box. The normal value is 1, which means that each pixel is used as the center of the box. A value of “2” is useful when reducing an image to 4: 1, such as when building an image pyramid. Using the pixel address from the above figure, the box is centered in the order of pixels 0, 2, 8, and 10. The box read iterator needs to access up to 14 (2 × 7) cache lines. While the pixels are presented from one of the seven lines, other cache lines can be loaded from memory.

ボックス書き込みイタレータ
対応するボックス書き込みイタレータは存在しない。なぜならば、画素の複製は入力時だけに要求されるからである。入力用のボックス読み出しイタレータを使用するプロセスは、殆ど確実に、同期しているので出力用の順次書き込みイタレータを使用するであろう。その良い例はコンボルバである。コンボルバでは、N個の入力画素が1個の出力画素を計算するため読み出される。そのプロセスフローは、図20に示されているようなフローである。ボックス読み出しイタレータを使用するとき、原画像及び目的画像は同じメモリを使ってはならない。なぜならば、後続の画像のラインが(新たに計算されたものではなく)元の値を必要とするからである。
Box write iterator There is no corresponding box write iterator. This is because pixel replication is required only at the time of input. The process of using a box read iterator for input will almost certainly be synchronized and will use a sequential write iterator for output. A good example is the convolver. In the convolver, N input pixels are read out to calculate one output pixel. The process flow is as shown in FIG. When using a box read iterator, the original and target images must not use the same memory. This is because subsequent image lines require the original values (not newly calculated).

垂直ストリップ読み出し及び書き込みイタレータ
ある種の例では、画像を出力画素の順序で書き込む必要があるが、出力画素に対する入力画素のコヒーレンスの方向がわからない。その一例は回転である。画像が90度回転され、出力画像を水平方向に処理する場合、キャッシュコヒーレンスの完全に失われる。これに対して、出力画像を処理する同時に1本のキャッシュラインの幅の画素に基づいて出力画像を処理し、(同じライン上の次のキャッシュラインに相当する画素へ進むのではなく)次のラインへ進む場合、入力画像の画素に対するキャッシュコヒーレンスが得られる。入力画素に(色コヒーレンスのような)既知の「ブロック」コヒーレンスが存在する場合も同様であり、この場合、読み出しが処理順序を支配し、同期させられるべき書き込みは、同じ画素順序に従わなければならない。入力として提示された画素の順序(垂直ストリップ読み出し)、又は出力に予想される順序(垂直ストリップ書き込み)は同一である。順序は、ライン0の画素0から画素31、次に、ライン1の画素9から画素31、以下、画像の全てのラインに対して同様であり、次に、ライン0の画素32から63というように続く。最後の垂直ストリップでは、正確に32画素が存在しないかもしれない。この場合、画像の実際の画素だけが入力として、提示されるか、又は予定される。この処理は図21に示されている。
Vertical Strip Read and Write Iterators Some examples require images to be written in the order of output pixels, but do not know the direction of input pixel coherence with respect to the output pixels. One example is rotation. If the image is rotated 90 degrees and the output image is processed horizontally, there is a complete loss of cache coherence. In contrast, processing the output image simultaneously processes the output image based on one cache line wide pixel (rather than proceeding to the pixel corresponding to the next cache line on the same line) When going to the line, cache coherence for the pixels of the input image is obtained. The same is true if there is a known “block” coherence (such as color coherence) in the input pixel, where the readout dominates the processing order and the writing to be synchronized must follow the same pixel order. Don't be. The order of pixels presented as input (vertical strip readout) or the expected order for output (vertical strip writing) is the same. The order is the same for pixels 0 to 31 on line 0, then pixels 9 to 31 on line 1, and so on for all lines of the image, then pixels 32 to 63 on line 0 followed by. In the last vertical strip, there may not be exactly 32 pixels. In this case, only the actual pixels of the image are presented or scheduled as input. This process is shown in FIG.

垂直ストリップ書き込みイタレータだけを必要とするプロセスは、典型的に、出力画素座標が与えられた場合に入力画素座標をマッピングする方法を備えている。そのプロセスは、このマッピングに従って入力画像の画素にアクセスし、コヒーレンスは、入力画像用の「ランダムアクセス」リーダー上に十分なキャッシュラインを設けることによって決定される。図22のプロセス概要に示されるように、座標は、典型的に、垂直ストリップ書き込みイタレータのPassXフラグ及びPassYフラグをセットすることによって生成される。 Processes that require only a vertical strip writing iterator typically comprise a method of mapping input pixel coordinates given output pixel coordinates. The process accesses the pixels of the input image according to this mapping, and the coherence is determined by providing sufficient cache lines on the “random access” reader for the input image. As shown in the process overview of FIG. 22, the coordinates are typically generated by setting the PassX and PassY flags of the vertical strip write iterator.

書き込みイタレータを順次読み出しイタレータ又はボックス読み出しイタレータとペアにすることは重要ではないが、垂直ストリップ書き込みイタレータは、入力座標と出力座標の間に重要なマッピングが存在するとき、性能に著しい改良を加える。 Although it is not important to pair the write iterator with the sequential read iterator or the box read iterator, the vertical strip write iterator makes a significant improvement in performance when there is an important mapping between the input and output coordinates.

垂直ストリップ読み取りイタレータと垂直ストリップ書き込みイタレータをペアにすることは重要である。この場合、入力画像と出力画像が同じであるならば、垂直ストリップ読み取りイタレータと垂直ストリップ書き込みイタレータを一つのALU188に割り当てることが可能である。座標が必要であるならば、更なるイタレータをセットされたPassXフラグ及びPassYフラグと共に使用しなければならない。垂直ストリップ読み取り/書き込みイタレータは、入力FIFOに画素を提示し、出力FIFOからの出力画素を受け取る。適切なパディングバイトが書き込み時に挿入される。入力及び出力の各々は、優れた性能のために少なくとも2本のキャッシュラインを必要とする。 It is important to pair the vertical strip read iterator with the vertical strip write iterator. In this case, if the input image and the output image are the same, the vertical strip read iterator and the vertical strip write iterator can be assigned to one ALU 188. If coordinates are required, additional iterators must be used with the PassX and PassY flags set. A vertical strip read / write iterator presents pixels to the input FIFO and receives output pixels from the output FIFO. Appropriate padding bytes are inserted when writing. Each input and output requires at least two cache lines for superior performance.

テーブルI/Oアドレッシングモード
(画像のような)テーブル内の値を調べることはしばしば必要になる。テーブルI/Oアドレッシングモードは、この機能を提供し、クライアントがインデックスを出力FIFOに入れることを要求する。I/Oアドレス生成器は、インデックスを保有し、適切にデータを調べ、VLIWクライアントによる後の処理のため、調べた値を入力FIFOに返す。
Table I / O addressing mode It is often necessary to look up values in a table (such as an image). The table I / O addressing mode provides this functionality and requires the client to put an index into the output FIFO. The I / O address generator holds the index, examines the data appropriately, and returns the examined value to the input FIFO for later processing by the VLIW client.

1次元、2次元及び3次元のテーブルがサポートされ、特定のモードは補間を対象としている。VLIWのクライアント側の複雑さを軽減するため、インデックス値は、固定小数点の数値として取り扱われ、アクセス専用レジスタは、固定小数点を定め、インデックスの整数部として取り扱われるべきビットを定める。データフォーマットは、画素オフセットレジスタが無視される点で、汎用画像特徴の制限された形式であり、データは行内で連続していると仮定され、データ要素毎に、8ビット又は16ビット(1バイト又は2バイト)だけが許容される。4ビットのアドレスモードレジスタはI/Oタイプを決定するため使用される。 One-dimensional, two-dimensional and three-dimensional tables are supported, and certain modes are targeted for interpolation. In order to reduce the complexity of the VLIW on the client side, the index value is handled as a fixed-point number, and the access-only register defines the fixed point and determines the bit to be handled as the integer part of the index. The data format is a limited form of general-purpose image feature in that the pixel offset register is ignored, and the data is assumed to be contiguous in the row, 8 bits or 16 bits (1 byte) per data element. Or 2 bytes) is allowed. A 4-bit address mode register is used to determine the I / O type.

Figure 0004309954
アクセス専用レジスタは次の通りである。
Figure 0004309954
The access-only registers are as follows.

Figure 0004309954
FractX、FractY及びFractZは、インデックスに基づいてアドレスを生成し、有意ビット及び整数/小数コンポーネントに関するインデックスのフォーマットを解釈するため使用される。種々のパラメータは、索引付けされたテーブルの次元数によって必要に応じて定められる。1次元テーブルは、FractXだけが必要であり、2次元テーブルは、FractX及びFractYを必要とする。各Fract値は、対応したインデックスの小数ビットの個数により構成される。例えば、Xインデックスは、5:3のフォーマットである。これは、整数が5ビットで、小数が3ビットであることを示す。したがって、FractXは3にセットされる。簡単な1次元ルックアップは、8:0のフォーマットであり、即ち、小数コンポーネントが全く無い。FractXは0になる。零オフセットは、3次元ルックアップの場合に限り必要になり、2種類の解釈を採用する。これは3次元テーブルルックアップのセクションに詳述されている。フラグレジスタ(アクセス専用1)は、データの読み取り(あるケースでは、書き込み)に影響を与える要因を決定するため使用される多数のフラグを含む。フラグレジスタは以下のように構成される。
Figure 0004309954
FractX, FractY and FractZ are used to generate addresses based on the index and interpret the format of the index with respect to significant bits and integer / decimal components. Various parameters are defined as needed by the number of dimensions of the indexed table. A one-dimensional table requires only FractX, and a two-dimensional table requires FractX and FractY. Each Fract value is composed of the number of decimal bits of the corresponding index. For example, the X index has a 5: 3 format. This indicates that the integer is 5 bits and the decimal is 3 bits. Therefore, FractX is set to 3. A simple one-dimensional lookup is an 8: 0 format, i.e. there are no decimal components. FractX becomes 0. Zero offset is only required for 3D lookups and employs two types of interpretation. This is detailed in the 3D table lookup section. The flag register (access only 1) contains a number of flags that are used to determine factors that affect data reading (in some cases, writing). The flag register is configured as follows.

Figure 0004309954
1次元直接ルックアップとDRAMのFIFOを除くと、全てのテーブルI/Oモードは、読み出しだけをサポートし、書き込みをサポートしていない。したがって、上記の二つのモードを除く全てのI/Oモードでは、読み出しイネーブルビットはセットされ、書き込みイネーブルビットはクリアされる。1次元直接ルックアップは、
読み出しイネーブルビットがセットされ、書き込みイネーブルビットがクリアされている読み出し専用と、
読み出しイネーブルビットがクリアされ、書き込みイネーブルビットがクリアされている書き込み専用と、
読み出しイネーブルビットと書き込みイネーブルビットの両方がセットされているリード・モディファイ・ライトと、
の3モードをサポートする。
Figure 0004309954
Except for one-dimensional direct lookup and DRAM FIFO, all table I / O modes support only read and not write. Therefore, in all I / O modes except the above two modes, the read enable bit is set and the write enable bit is cleared. One-dimensional direct lookup is
Read only with read enable bit set and write enable bit cleared,
Read only with the read enable bit cleared and the write enable bit cleared
A read-modify-write with both the read enable bit and the write enable bit set;
3 modes are supported.

異なるモードは、以下の1次元ルックアップのセクションに記載されている。DRAM
FIFOモードは、
読み出しイネーブルビットと書き込みイネーブルビットの両方がセットされているライト・リード・モード
という一つのモードだけをサポートする。
The different modes are described in the one-dimensional lookup section below. DRAM
FIFO mode is
Only one mode is supported, the write / read mode, in which both the read enable bit and the write enable bit are set.

このモードは、以下のDRAM FIFOのセクションに記載されている。DataSizeフラグは、テーブルの各データ要素のサイズが8ビットであるか、16ビットであるかを決定する。2種類のデータサイズだけがサポートされる。32ビットの要素は、プロセスの必要条件に依存して、以下の2種類の方法の何れかで作成することができる:
二つの16ビットテーブルから同時に読み出し、その結果を合成する。これは、タイミングが問題となるときに都合が良いが、二つのI/Oアドレス生成器189と190を無駄に使用する点で欠点があり、各32ビット要素はCPUによって32ビットのエンティティとして読むことができない;
16ビットテーブから2回に亘って読み出し、その結果を合成する。これは、一つのルックアップだけが使用されるので都合が良いが、異なるインデックスを生成し、ルックアップへ伝えなければならない。
This mode is described in the DRAM FIFO section below. The DataSize flag determines whether the size of each data element in the table is 8 bits or 16 bits. Only two data sizes are supported. 32-bit elements can be created in one of two ways, depending on process requirements:
Read from two 16-bit tables simultaneously and synthesize the results. This is convenient when timing is an issue, but has the disadvantage of wasting two I / O address generators 189 and 190, each 32-bit element being read by the CPU as a 32-bit entity. Can't;
Read from the 16-bit table twice and combine the results. This is convenient because only one lookup is used, but a different index must be generated and communicated to the lookup.

1次元構造
直接ルックアップ
直接ルックアップは、1次元ルックアップテーブルへの簡単なインデキシングである。クライアントは、フラグレジスタに適切なビットをセットすることにより、三つのアクセスモード、即ち、
読み出し専用
書き込み専用
リード・モディファイ・ライト
の間で選択可能である。
One-dimensional structure direct lookup Direct lookup is a simple indexing into a one-dimensional lookup table. The client sets the appropriate bit in the flag register, thereby allowing three access modes:
It is possible to select between read-only write-only read-modify-write.

読み出し専用
クライアントは、固定小数点インデックスXを出力FIFOに送り、テーブル[Int(X)]の8又は16ビット値が入力FIFOに返される。インデックスXの小数コンポーネントは完全に無視される。インデックスが範囲外である場合、エッジ繰り返しフラグは、エッジ画素が返されるか、一定画素が返されるかを決定する。アドレス生成は、次のように簡単である:
データサイズが8ビットを示す場合、Xは右へバレルシフトされたFractXのビットであり、結果はテーブルのベースアドレスImageStartに加算される;
データサイズが16ビットを示す場合、Xは右へバレルシフトされたFractXのビットであり、左へ1ビットシフトされた(ビット0が0になる)結果は、テーブルのベースアドレスImageStartに加算される。
The read-only client sends the fixed point index X to the output FIFO and the 8 or 16 bit value of the table [Int (X)] is returned to the input FIFO. The fractional component of index X is completely ignored. If the index is out of range, the edge repeat flag determines whether an edge pixel is returned or a constant pixel is returned. Address generation is as simple as:
If the data size indicates 8 bits, X is the FractX bit barrel shifted right and the result is added to the base address ImageStart of the table;
When the data size indicates 16 bits, X is a bit of FractX barrel-shifted to the right, and the result of 1-bit shift to the left (bit 0 becomes 0) is added to the base address ImageStart of the table .

結果として得られたアドレスにおける8又は16ビットデータ値は入力FIFOに入れられる。アドレス生成には1サイクルを要し、要求されたデータをキャッシュから出力FIFOへ転送するためにも(キャッシュヒットを仮定したとき)1サイクルを要する。例えば、各エントリーが16ビットであり、インデックスが12ビットの8:4の固定小数点フォーマットである256エントリーのテーブルの値を引く場合を想定すると、FractXは4であり、データサイズは1である。インデックスがルックアップへ渡されたとき、4ビットだけ右へシフトし、その結果を1ビットだけ左へシフトし、ImageStartに加算する。 The resulting 8 or 16 bit data value at the address is placed in the input FIFO. One cycle is required for address generation, and one cycle is also required for transferring the requested data from the cache to the output FIFO (assuming a cache hit). For example, assuming that each entry is 16 bits and the index of a 256-entry table having an 8-: 4 fixed-point format with an index of 12 bits is subtracted, FractX is 4 and the data size is 1. When the index is passed to the lookup, it shifts right by 4 bits, shifts the result left by 1 bit, and adds it to ImageStart.

書き込み専用
クライアントは、固定小数点インデックスXを出力FIFOへ渡し、その後、テーブルの指定された場所へ書き込まれるべき8又は16ビット値を渡す。完全な転送には最低でも2サイクル、即ち、アドレス生成のための1サイクルと、FIFOからDRAMへのデータ転送のための1サイクルを要する。VLIWプロセスがインデックスをFIFOに収容してから書き込まれるべき値をFIFOに収容するまでの間に任意の数のサイクル数を設けることができる。アドレス生成は、読み出し専用モードと同様に行われるが、データがそのアドレスから読み出されるのではなく、出力FIFOからのデータがそのアドレスに書き込まれる。アドレスがテーブルの範囲外である場合、そのデータはFIFOから削除され、DRAMには書き込まれない。
The write-only client passes the fixed point index X to the output FIFO and then passes the 8 or 16 bit value to be written to the specified location in the table. A complete transfer requires at least two cycles, that is, one cycle for address generation and one cycle for data transfer from the FIFO to the DRAM. Any number of cycles can be provided between the time when the VLIW process accommodates the index in the FIFO and the time when the value to be written is accommodated in the FIFO. Address generation is performed in the same manner as in the read-only mode, but data is not read from that address, but data from the output FIFO is written to that address. If the address is outside the table range, the data is deleted from the FIFO and not written to the DRAM.

リード・モディファイ・ライト
クライアントは、固定小数点インデックスXを出力FIFOに送り、テーブル[Int(X)]の8又は16ビット値が入力FIFOへ返される。出力FIFOに収容された次の値は、テーブル[Int(X)]に書き込まれ、前に返された値を置き換える。汎用処理ループは、ある場所から値を読み出し、値を変更し、その値を書き戻すプロセスである。全体的な時間は、
インデックスからアドレスを生成するサイクルと、
テーブルからの値を返却するサイクルと、
ある種の方法で値を変更するサイクルと、
変更した値をテーブルへ書き戻すサイクルと、
の4サイクルである。
The read-modify-write client sends the fixed point index X to the output FIFO and the 8- or 16-bit value of the table [Int (X)] is returned to the input FIFO. The next value contained in the output FIFO is written to the table [Int (X)] and replaces the previously returned value. The general-purpose processing loop is a process of reading a value from a certain place, changing the value, and writing back the value. The overall time is
A cycle to generate an address from the index;
A cycle to return values from the table,
A cycle to change the value in some way,
A cycle to write changed values back to the table;
4 cycles.

クライアントが「Xからの読み出し」又は「Xへの書き込み」を表すフラグを提示する特定の読み出し/書き込みモードは存在しない。クライアントは、元の値を書き込むことにより「Xからの読み出し」のシミュレーションを行い、返された値をただ無視することによって「Xへの書き込み」のシミュレーションを行うことができる。しかし、このようなモードの使用が促進されることはない。なぜならば、各動作は、最低でも3サイクル(モディファイは必要ではない)を使用し、特定の読み出し及び書き込みモードによって行われるような1回のアクセスではなく2回のデータアクセスを使用するからである。 There is no specific read / write mode in which the client presents a flag representing “read from X” or “write to X”. The client can simulate “Read from X” by writing the original value and “Write to X” by simply ignoring the returned value. However, the use of such a mode is not facilitated. This is because each operation uses at least three cycles (modification is not required) and uses two data accesses instead of one access as performed by a particular read and write mode. .

補間テーブル
これは、所定の固定小数点インデックスXに対して、1個の値ではなく2個の値が返される点を除くと、読み出しモードにおける直接ルックアップと同じである。返される値は、テーブル[Int(X)]とテーブル[Int(X)+1]である。いずれかのインデックスが範囲外である場合、エッジ繰り返しフラグは、エッジ画素が返されるか、一定画素が返されるかを決定する。アドレス生成は、8ビットデータであるか16ビットデータであるかに応じて、2番目のアドレスが単に(1番目のアドレス+1)又は(1番目のアドレス+2)である点を除くと、直接ルックアップと同じである。要求されたデータを出力FIFOへ転送するためには2サイクルを要するが(キャッシュヒットを想定)、1回の16ビットフェッチによって2個の8ビット値がキャッシュからアドレス生成器へ実際に返される。
Interpolation table This is the same as a direct lookup in read mode, except that for a given fixed point index X, two values are returned instead of one. The returned values are table [Int (X)] and table [Int (X) +1]. If any index is out of range, the edge repeat flag determines whether an edge pixel is returned or a constant pixel is returned. Address generation depends on whether it is 8-bit data or 16-bit data, except that the second address is simply (first address + 1) or (first address + 2). Same as up. Although it takes two cycles to transfer the requested data to the output FIFO (assuming a cache hit), a single 16-bit fetch actually returns two 8-bit values from the cache to the address generator.

DRAM FIFO
読み出し/書き込み1次元テーブルの特殊なケースは、DRAM FIFOである。DRAM及び付随したキャッシュを使用して所定の長さのFIFOをシミュレーションすることがしばしば必要である。DRAMのFIFOによって、クライアントは、テーブルに明示的に索引付けをせずに、あたかもFIFOの一方の端であるかのようにして出力FIFOへ書き込み、同じ論理的FIFOのもう一方の端であるかのようにして入力FIFOから読み出す。2個のカウンタがシミュレーティッドFIFOの入力位置と出力位置を追跡し、必要に応じてDRAMへキャッシュする。クライアントは、フラグレジスタの読み出しイネーブルビットと書き込みイネーブルビットの両方を見る必要がある。
DRAM FIFO
A special case of a read / write one-dimensional table is a DRAM FIFO. It is often necessary to simulate a fixed length FIFO using DRAM and associated cache. The DRAM FIFO allows the client to write to the output FIFO as if it were one end of the FIFO without explicitly indexing the table, and whether it is the other end of the same logical FIFO Read from the input FIFO as follows. Two counters track the input and output positions of the simulated FIFO and cache it in DRAM as needed. The client needs to see both the read enable bit and the write enable bit in the flag register.

DRAM FIFOの用法の一例は、ある値のシングルライン履歴を保持することである。初期履歴は処理が始まる前に書き込まれる。一般的なプロセスがラインを完了するとき、前のラインの値がFIFOから獲得され、このラインの値はFIFOに入れられる(このラインは、次のラインを処理するときには前のラインになる)。入力と出力が平均的に相互に一致する限り、出力FIFOは常に一杯である。その結果として、この種のFIFOの場合、アクセス遅延が無く効率的である(但し、FIFO全長が非常に短い場合、例えば、3又は4バイトの場合を除くが、その場合にはFIFOの目的を損なうであろう)。 An example of the usage of a DRAM FIFO is to keep a single line history of a certain value. The initial history is written before processing begins. When the general process completes a line, the value of the previous line is obtained from the FIFO, and the value of this line is entered into the FIFO (this line becomes the previous line when processing the next line). As long as the input and output coincide on average with each other, the output FIFO is always full. As a result, this type of FIFO is efficient with no access delay (however, when the total length of the FIFO is very short, for example, 3 or 4 bytes is excluded, in which case the purpose of the FIFO is Will lose.)

2次元テーブル
直接ルックアップ
2次元直接ルックアップはサポートされていない。2次元ルックアップの全てのケースはバイリニア補間のためアクセスされることが予定されているので、特別なバイリニアルックアップが実現された。
Two-dimensional table direct lookup Two-dimensional direct lookup is not supported. Since all cases of two-dimensional lookups are scheduled to be accessed for bilinear interpolation, special bilinear lookups have been realized.

バイリニアルックアップ
この種のルックアップは、2次元テーブルからのデータのバイリニア補間のために必要である。固定小数点X座標及びY座標が与えられた場合(Y、Xの順に出力FIFOに入れられた場合)、4個の値がルックアップ後に返される。それらの値は(順番に):
Table[Int(X), Int(Y)]
Table[Int(X)+1, Int(Y)]
Table[Int(X), Int(Y)+1]
Table[Int(X)+1, Int(Y)+1]
である。
Bilinear Lookup This type of lookup is necessary for bilinear interpolation of data from a two-dimensional table. Given fixed-point X and Y coordinates (when placed in the output FIFO in the order of Y, X), four values are returned after lookup. Their values are (in order):
Table [Int (X), Int (Y)]
Table [Int (X) +1, Int (Y)]
Table [Int (X), Int (Y) +1]
Table [Int (X) +1, Int (Y) +1]
It is.

返される値の順序は、最良のキャッシュコヒーレンスを与える。データが8ビットである場合、2個の値が2サイクルの間のサイクル毎に返され、下位バイトは第1のデータ要素である。データが16ビットである場合、1サイクル毎に1エントリーずつで、4個の値が4サイクルに返される。アドレス生成には2サイクルを要する。第1サイクルでは、FractYビットだけ右へバレルシフトされたインデックス(Y)がRowOffsetによって乗算され、その結果がImageStartに加えられる。第2サイクルは、XインデックスをFractXビットだけ右へシフトし、(8ビットデータの場合)その結果、又は(16ビットデータの場合)その結果を1ビットだけ左へシフトしたものの何れかが第1サイクルからの結果に加算される。これにより、アドレスAdrは、Table[Int(X),
Int(Y)]のアドレスである:
Adr = ImageStart
+ ShiftRight(Y, FractY)*RowOffset
+ ShiftRight(X, FractX)
Adrのコピーは後続のエントリーをフェッチするためAdrOldに保持される:
データが8ビットであるならば、タイミングは、アドレス生成の2サイクルであり、その後、データが返却される2サイクルが続く(1サイクル毎に2個のテーブルエントリー);
データが16ビットであるならば、タイミングはアドレス生成の2サイクルであり、その後、データが返却される4サイクルが続く(1サイクル毎に1エントリー)。
The order of the values returned gives the best cache coherence. If the data is 8 bits, two values are returned every cycle between two cycles and the lower byte is the first data element. If the data is 16 bits, one entry per cycle and four values are returned in four cycles. Address generation takes two cycles. In the first cycle, the index (Y) barrel shifted right by FractY bits is multiplied by RowOffset and the result is added to ImageStart. The second cycle shifts the X index to the right by FractX bits and either the result (for 8-bit data) or the result (for 16-bit data) shifted left by 1 bit is the first It is added to the result from the cycle. As a result, the address Adr becomes Table [Int (X),
Int (Y)] is the address:
Adr = ImageStart
+ ShiftRight (Y, FractY) * RowOffset
+ ShiftRight (X, FractX)
A copy of Adr is kept in AdrOld to fetch subsequent entries:
If the data is 8 bits, the timing is 2 cycles of address generation, followed by 2 cycles where data is returned (2 table entries per cycle);
If the data is 16 bits, the timing is 2 cycles of address generation, followed by 4 cycles where data is returned (1 entry per cycle).

以下の二つの表は、8ビットデータサイズ及び16ビットデータサイズ用のアドレス計算方法を示している。 The following two tables show address calculation methods for 8-bit data size and 16-bit data size.

Figure 0004309954
Figure 0004309954

Figure 0004309954
両方のケースにおいて、アドレス生成の第1サイクルは、XインデックスのFIFOへの挿入と重なってもよく、実効タイミングは、アドレス生成のための1サイクル、及び返却データの4サイクルと同程度に低い。インデックスの生成がその結果よりも2ステップ進んでいる場合、実効アドレス生成時間は無く、データは単に適切なレート(1セット毎に2サイクル又は4サイクル)で生成される。
Figure 0004309954
In both cases, the first cycle of address generation may overlap with the insertion of the X index into the FIFO, and the effective timing is as low as one cycle for address generation and four cycles of return data. If the index generation is two steps ahead of the result, there is no effective address generation time and data is simply generated at the appropriate rate (2 or 4 cycles per set).

3次元ルックアップ
直接ルックアップ
2次元ルックアップの全てのケースはトライリニア補間のためアクセスされることが予想されるので、二つの特別なトライリニアルックアップが実現される。1番目は単純なルックアップテーブルであり、2番目は画像ピラミッドからのトライリニア補間用である。
3D Lookup Direct Lookup Since all cases of 2D lookup are expected to be accessed for trilinear interpolation, two special trilinear lookups are implemented. The first is a simple lookup table and the second is for trilinear interpolation from the image pyramid.

トライリニアルックアップ
このタイプのルックアップは、色変換テーブルのような3次元データテーブルに有効である。標準的な画像パラメータは、データの単一のXY平面を定義し、即ち、各平面は、ImageHight個の行により構成され、各行は、RowOffset個のバイトを含む。殆どの環境において、連続した平面を想定すると、一つのXY平面は、ImageHight×RowOffsetバイトの連なりである。このオフセットを仮定又は計算するのではなく、CPUによるソフトウェアは、そのオフセットを12ビットZOffsetレジスタの形で提供しなければならない。この形式のルックアップの場合、Z、Y、Xの順の3個の固定小数点インデックスが与えらると、ルックアップテーブルから8個の値:
Table[Int(X), Int(Y), Int(Z)]
Table[Int(X)+1, Int(Y), Int(Z)]
Table[Int(X), Int(Y)+1, Int(Z)]
Table[Int(X)+1, Int(Y)+1, Int(Z)]
Table[Int(X), Int(Y), Int(Z)+1]
Table[Int(X)+1, Int(Y), Int(Z)+1]
Table[Int(X), Int(Y)+1, Int(Z)+1]
Table[Int(X)+1, Int(Y)+1, Int(Z)+1]
が順番に返される。
Trilinear Lookup This type of lookup is useful for 3D data tables such as color conversion tables. Standard image parameters define a single XY plane of data, ie, each plane is composed of ImageHight rows, each row containing RowOffset bytes. In most environments, assuming a continuous plane, one XY plane is a sequence of ImageHight × RowOffset bytes. Rather than assume or calculate this offset, the software by the CPU must provide the offset in the form of a 12-bit ZOffset register. For this type of lookup, given three fixed-point indices in the order of Z, Y, X, eight values from the lookup table:
Table [Int (X), Int (Y), Int (Z)]
Table [Int (X) +1, Int (Y), Int (Z)]
Table [Int (X), Int (Y) +1, Int (Z)]
Table [Int (X) +1, Int (Y) +1, Int (Z)]
Table [Int (X), Int (Y), Int (Z) +1]
Table [Int (X) +1, Int (Y), Int (Z) +1]
Table [Int (X), Int (Y) +1, Int (Z) +1]
Table [Int (X) +1, Int (Y) +1, Int (Z) +1]
Are returned in order.

返される値の順序は、最良のキャッシュコヒーレンスを与える。データが8ビットである場合、2個の値が4サイクルの間のサイクル毎に返され、下位バイトは第1のデータ要素である。データが16ビットである場合、1サイクル毎に1エントリーずつで、4個の値が8サイクルに返される。アドレス生成には3サイクルを要する。第1サイクルでは、FractZビットだけ右へバレルシフトされたインデックス(Z)が12ビットのZOffsetによって乗算され、ImageStartに加えられる。第2サイクルでは、FractYビットだけ右へバレルシフトされたインデックス(Y)がRowOffsetによって乗算され、その結果が前のサイクルの結果に加算される。第2サイクルは、XインデックスをFractXビットだけ右へシフトし、(8ビットデータの場合)その結果、又は(16ビットデータの場合)その結果を1ビットだけ左へシフトしたものの何れかが第2サイクルからの結果に加算される。これにより、アドレスAdrは、Table[Int(X),
Int(Y), Int(Z)]のアドレスである:
Adr = ImageStart
+ (ShiftRight(Z, FractZ)*ZOffset)
+ (ShiftRight(Y, FractY)*RowOffset)
+ ShiftRight(X, FractX)
Adrのコピーは後続のエントリーをフェッチするためAdrOldに保持される:
データが8ビットであるならば、タイミングは、アドレス生成の2サイクルであり、その後、データが返却される2サイクルが続く(1サイクル毎に2個のテーブルエントリー);
データが16ビットであるならば、タイミングはアドレス生成の2サイクルであり、その後、データが返却される4サイクルが続く(1サイクル毎に1エントリー)。
The order of the values returned gives the best cache coherence. If the data is 8 bits, two values are returned every cycle for 4 cycles, and the lower byte is the first data element. If the data is 16 bits, 4 values are returned in 8 cycles with one entry per cycle. Address generation takes 3 cycles. In the first cycle, the index (Z) barrel shifted right by FractZ bits is multiplied by 12 bits ZOffset and added to ImageStart. In the second cycle, the index (Y) barrel shifted right by FractY bits is multiplied by RowOffset and the result is added to the result of the previous cycle. The second cycle shifts the X index to the right by FractX bits and either the result (for 8-bit data) or the result (for 16-bit data) shifted left by 1 bit is the second. It is added to the result from the cycle. As a result, the address Adr becomes Table [Int (X),
Int (Y), Int (Z)] is the address:
Adr = ImageStart
+ (ShiftRight (Z, FractZ) * ZOffset)
+ (ShiftRight (Y, FractY) * RowOffset)
+ ShiftRight (X, FractX)
A copy of Adr is kept in AdrOld to fetch subsequent entries:
If the data is 8 bits, the timing is 2 cycles of address generation, followed by 2 cycles where data is returned (2 table entries per cycle);
If the data is 16 bits, the timing is 2 cycles of address generation, followed by 4 cycles where data is returned (1 entry per cycle).

以下の二つの表は8ビットデータサイズ及び16ビットデータサイズ用のアドレス計算方法を示している。 The following two tables show address calculation methods for 8-bit data size and 16-bit data size.

Figure 0004309954
Figure 0004309954

Figure 0004309954
両方のケースにおいて、アドレス生成のサイクルは、XインデックスのFIFOへの挿入と重なってもよく、単一の1回限りのルックアップの実効タイミングは、アドレス生成のための1サイクル、及び返却データの4サイクルと同程度に低い。インデックスの生成がその結果よりも2ステップ進んでいる場合、実効アドレス生成時間は無く、データは単に適切なレート(1セット毎に4サイクル又は8サイクル)で生成される。
Figure 0004309954
In both cases, the address generation cycle may overlap with the insertion of the X index into the FIFO, and the effective timing of a single one-time lookup is one cycle for address generation and the return data As low as 4 cycles. If index generation is two steps ahead of the result, there is no effective address generation time and data is simply generated at the appropriate rate (4 or 8 cycles per set).

画像ピラミッドルックアップ
ブラッシング、タイリング及びワーピングの間に、画像の特定エリアの平均カラーを計
算することが必要である。所与のエリア毎に値を計算するのではなく、これらの機能は画像ピラミッドを利用する。画像ピラミッドの説明及び構造は、この文書のDRAMインタフェース81の章の内部画像フォーマットに関するセクションに詳述される。このセクションは、順序付きの3個の固定小数点インデックス:レベル(Z)、Y、及びXに関して、ピラミッド内の所与の画素をアドレッシングする方法に関連する。画像ピラミッドルックアップは8ビットのデータエントリーを想定するので、DataSizeフラグは完全に無視される。Z、Y、及びXの指定後、以下の8画素:
[Int(X), Int(Y)]のレベルInt(Z)の画素
[Int(X)+1, Int(Y)]のレベルInt(Z)の画素
[Int(X), Int(Y)+1]のレベルInt(Z)の画素
[Int(X)+1, Int(Y)+1]のレベルInt(Z)の画素
[Int(X), Int(Y)]のレベルInt(Z)+1の画素
[Int(X)+1, Int(Y)]のレベルInt(Z)+1の画素
[Int(X), Int(Y)+1]のレベルInt(Z)+1の画素
[Int(X)+1, Int(Y)+1]のレベルInt(Z)+1の画素
が入力FIFOを介して返される。
During image pyramid lookup brushing, tiling and warping, it is necessary to calculate the average color of a specific area of the image. Rather than calculating values for a given area, these functions make use of an image pyramid. The description and structure of the image pyramid is detailed in the section on internal image formats in the DRAM interface 81 chapter of this document. This section relates to how to address a given pixel in a pyramid with respect to three ordered fixed-point indices: levels (Z), Y, and X. Since the image pyramid lookup assumes an 8-bit data entry, the DataSize flag is completely ignored. After specifying Z, Y and X, the following 8 pixels:
[Int (X), Int (Y)] level Int (Z) pixels
[Int (X) +1, Int (Y)] level Int (Z) pixels
[Int (X), Int (Y) +1] level Int (Z) pixels
[Int (X) +1, Int (Y) +1] level Int (Z) pixels
[Int (X), Int (Y)] level Int (Z) +1 pixel
[Int (X) +1, Int (Y)] level Int (Z) +1 pixels
[Int (X), Int (Y) +1] level Int (Z) +1 pixels
Pixels of level Int (Z) +1 at [Int (X) +1, Int (Y) +1] are returned via the input FIFO.

8個の画素は4×16ビットのエントリーとして返却され、XエントリーとX+1エントリーはハイ/ローに合成される。例えば、拡大縮小された(X,Y)座標が(10.4,12.7)であるならば、最初に返される4個の画素は、(10,12)、(11,12)、(10,13)及び(11,13)であろう。座標が有効レンジ外であるとき、クライアントは、エッジ画素繰り返し及び定数画素レジスタ(下位8ビットだけが使用される)によって、エッジ画素繰り返し、又は定数カラー値の返却を選択することができる。画像ビラミッドが構築されたとき、レベル0の座標からレベルZの座標までの簡単なマッピングが存在する。この方法は、単に、X又はY座標をZビットだけ右へシフトさせる。これは、座標の整数部を獲得するため既にシフトされたビット数(即ち、X座標に対するFractXビットの右シフト及びY座標に対するFractYの右シフト)に加えて行う必要がある。画像ピラミッドの所与のレベルに対するImageStart及びRowOffsetを見つけるため、24ビットのZOffsetレジスタがレベル情報テーブルへのポインタとして使用される。このテーブルは、レコードの配列であり、各レコードは、レベル数によって順序付けられた所与のピラミッドのレベルを表現する。各レコードは、ImageStartからそのピラミッドのレベルまでの16ビットのオフセットZOffset(オフセットの下位6ビットのような64バイトの整列したアドレスは存在しない)と、そのレベルのための12ビットのZRowOffsetと、により構成される。テーブルの要素0は、ZOffsetが0であり、単にフルサイズ画像を指示するとき、ZRowOffsetが汎用レジスタRowOffsetと一致する。テーブルの要素NにおけるZoffset値は、画像ピラミッドのレベルNの実効ImageStartを得るため、ImageStartに加算されるであろう。テーブルの要素NのRowOffset値は、レベルNに対するRowOffset値を格納する。CPU上で動かされるソフトウェアは、このアドレッシングモードを使用する前にテーブルを適切にセットアップしなければならない。実際のアドレス生成の概要は、以下で1サイクル毎に説明される。 Eight pixels are returned as 4 × 16 bit entries, and X and X + 1 entries are combined high / low. For example, if the scaled (X, Y) coordinates are (10.4, 12.7), the first four pixels returned are (10, 12), (11, 12), ( 10, 13) and (11, 13). When the coordinates are outside the valid range, the client can choose to repeat the edge pixel or return a constant color value by the edge pixel repeat and constant pixel register (only the lower 8 bits are used). When the image pyramid is built, there is a simple mapping from level 0 coordinates to level Z coordinates. This method simply shifts the X or Y coordinate to the right by Z bits. This needs to be done in addition to the number of bits already shifted to obtain the integer part of the coordinates (ie, FractX bit right shift for the X coordinate and FractY right shift for the Y coordinate). To find the ImageStart and RowOffset for a given level of the image pyramid, the 24-bit ZOffset register is used as a pointer to the level information table. This table is an array of records, where each record represents a given pyramid level ordered by number of levels. Each record has a 16-bit offset ZOffset from ImageStart to its pyramid level (no 64-byte aligned address like the lower 6 bits of the offset) and a 12-bit ZRowOffset for that level Composed. The element 0 of the table has ZOffset of 0, and ZRowOffset matches the general-purpose register RowOffset when simply indicating a full-size image. The Zoffset value at element N of the table will be added to ImageStart to obtain an effective ImageStart of level N of the image pyramid. The RowOffset value of the element N of the table stores the RowOffset value for the level N. Software running on the CPU must properly set up the table before using this addressing mode. The outline of the actual address generation will be described for each cycle below.

Figure 0004309954
上述のアドレス生成は、単一のバレルシフタ、2個のアダー、及び24ビットを生じる単一の16×16乗算/加算ユニットを使用して実現できる。一部のサイクルには2回のシフトが含まれるが、それらは、シフト値が同じであるか(即ち、バレルシフタの出力が2回使用されるか)、又はシフトが1ビットであるかのどちらかであり、ハードワイヤード可能である。次の内部レジスタ:ZAdr, Adr, ZInt, YInt, XInt, ZRowOffset, ZImageStartが必要である。_Int形のレジスタは最大で8ビットだけが必要であるが、他のレジスタは最大24ビットになり得る。このアクセス方法は、画像ピラミッドから読み出すだけであり、画像ピラミッドへ書き込まないので、キャッシュグループ2(CacheGroup2)が(Zadrを用いて)画像ピラミッドアドレステーブルをルックアップするため使用される。CacheGroup1は、(Adrを用いて)画像ピラミッド自体をルックアップするため使用される。アドレステーブルは、(原画像サイズに応じて)約22エントリーがあり、各エントリーは4バイトである。したがって、3又は4本のキャッシュラインをキャッシュグループ2に割り付けるべきであり、できるだけ多数のキャッシュラインをCasheGroup1に割り付けるべきである。データのセットを返すためのタイミングは8サイクルであり、サイクル8とサイクル0は動作が重なり合うと考えられ、即ち、次の要求のサイクル0はサイクル8の間に生じる。これが許される理由は、サイクル0がメモリにアクセスせず、サイクル8が特定の演算を含まないからである。
Figure 0004309954
The address generation described above can be accomplished using a single barrel shifter, two adders, and a single 16 × 16 multiply / add unit that yields 24 bits. Some cycles include two shifts, which are either the same shift value (ie, the barrel shifter output is used twice) or the shift is one bit. It can be hard-wired. The following internal registers are required: ZAdr, Adr, ZInt, YInt, XInt, ZRowOffset, and ZImageStart. The _Int type register only requires a maximum of 8 bits, but other registers can have a maximum of 24 bits. Since this access method only reads from the image pyramid and does not write to the image pyramid, Cache Group 2 (CacheGroup2) is used to look up the image pyramid address table (using Zadr). CacheGroup1 is used to look up the image pyramid itself (using Adr). The address table has about 22 entries (depending on the original image size), and each entry is 4 bytes. Therefore, 3 or 4 cache lines should be assigned to cache group 2 and as many cache lines as possible should be assigned to CashGroup1. The timing for returning a set of data is 8 cycles, and cycle 8 and cycle 0 are considered to overlap in operation, ie cycle 0 of the next request occurs during cycle 8. This is allowed because cycle 0 does not access the memory and cycle 8 does not contain a specific operation.

VLIWベクトルプロセッサ74を用いる座標の生成
書き込みイタレータにリンクされた一部の関数は、処理パイプラインの一部で処理されている現在画素のX及び/又はY座標を必要とする。特定の処理は、処理されている各行又は列の最後に行われる必要がある。殆どの場合に、PassX及びPassYフラグは全ての座標を完全に生成するために十分である。しかし、特別な必要条件が存在する場合、以下の関数を使用することができる。この計算は、単一サイクル生成のため多数のALUに展開することが可能であり、或いは、多数サイクル生成のため単一のALU188内で行ってもよい。
Coordinate Generation Using VLIW Vector Processor 74 Some functions linked to the write iterator require the X and / or Y coordinates of the current pixel being processed in a portion of the processing pipeline. Certain processing needs to be done at the end of each row or column being processed. In most cases, the PassX and PassY flags are sufficient to completely generate all coordinates. However, if there are special requirements, the following function can be used. This calculation can be expanded to multiple ALUs for single cycle generation, or may be performed within a single ALU 188 for multiple cycle generation.

シーケンシャル[X,Y]生成
プロセスが順次読み出しイタレータに従って順次に画素を処理するとき(又は、画素を生成し、順次書き込みイタレータへその画素を書き出すとき)、以下のプロセスは、図23に示されるように、PassXフラグ/PassYフラグの代わりに、X、Y座標を生成するため使用可能である。
When the sequential [X, Y] generation process sequentially processes a pixel according to a sequential read iterator (or when generating a pixel and writing the pixel to a sequential write iterator), the following process is as shown in FIG. In addition, it can be used to generate X and Y coordinates instead of the PassX flag / PassY flag.

座標生成器は、X座標に関して画像幅ImageWidthまでカウントアップし、ImageWidth個の画素毎に1回ずつY座標をインクリメントする。実際のプロセスは図24に示され、以下の定数がソフトウェアによってセットされる。 The coordinate generator counts up to the image width ImageWidth with respect to the X coordinate, and increments the Y coordinate once for every ImageWidth pixels. The actual process is shown in FIG. 24, and the following constants are set by software.

Figure 0004309954
以下のレジスタは一時変数を保持するため使用される。
Figure 0004309954
The following registers are used to hold temporary variables.

Figure 0004309954
必要条件は以下のように要約される。
Figure 0004309954
The requirements are summarized as follows:

Figure 0004309954
垂直ストリップ[X,Y]生成
プロセスが、画素を垂直ストリップ書き込みイタレータへ書くために画素を処理し、ある種の理由からPassXフラグ/PassYフラグを使用できないとき、図25に示されるようなプロセスがX、Y座標を生成するため使用できる。この座標生成器は、X座標に関して画像幅ImageWidthまでカウントアップし、ImageWidth個の画素毎に1回ずつY座標をインクリメントするだけである。実際のプロセスは図26に示され、以下の定数がソフトウェアによってセットされる。
Figure 0004309954
When the vertical strip [X, Y] generation process processes a pixel to write the pixel to a vertical strip write iterator and the PassX flag / PassY flag cannot be used for some reason, the process as shown in FIG. Can be used to generate X, Y coordinates. This coordinate generator only counts up to the image width ImageWidth with respect to the X coordinate and only increments the Y coordinate once for every ImageWidth pixels. The actual process is shown in FIG. 26, and the following constants are set by software.

Figure 0004309954
以下のレジスタは一時変数を保持するため使用される。
Figure 0004309954
The following registers are used to hold temporary variables.

Figure 0004309954
必要条件は以下のように要約される。
Figure 0004309954
The requirements are summarized as follows:

Figure 0004309954
垂直ストリップ毎に1回ずつ出現する計算(2回の加算、そのうち一つはMIN演算と関連付けられている)は、一般的なタイミング統計量に含まれない。なぜならば、それらは、画素タイミング毎の実際の一部ではないからである。しかし、それらは、特定の関数用のマイクロコードのプログラミングに考慮しなければならない。
Figure 0004309954
Calculations that occur once per vertical strip (two additions, one of which is associated with the MIN operation) are not included in the general timing statistics. This is because they are not an actual part of every pixel timing. However, they must be considered in programming microcode for specific functions.

イメージセンサインタフェース(ISI83)
イメージセンサインタフェース(ISI83)は、CMOSイメージセンサからデータを取得し、データをDRAMに蓄積するため利用できるようにする。イメージセンサは、3:2のアスペクト比をもち、典型的な解像度は750×500サンプルであり、375K(1画素当たり8ビット)を生ずる。2×2画素ブロックの各々は、図27に示されるような構造を有する。ISI83は、画像を読み出すため、フレーム同期パルス及びPixelClockパルスを含む制御情報をイメージセンサへ送信する状態機械である。画素は、イメージセンサから読み出され、VLIW入力FIFO78に入れられる。VLIWは、次に、画素を処理及び/又は蓄積することが可能である。これは図28に示されている。ISI83は、検出された写真画像をDRAMに蓄積するVLIWプログラムと組み合わせて使用される。処理は次の2ステップで行われる:
小規模VLIWプログラムはFIFOから画素を読み出し、順次書き込みイタレータを介して画素をDRAMへ書き込む;
DRAM内の写真画像は、写真が撮影されたときのカメラの向きに応じて90、180又は270度回転させられる。
Image sensor interface (ISI83)
The image sensor interface (ISI 83) acquires data from the CMOS image sensor and makes it available for storing data in the DRAM. The image sensor has an aspect ratio of 3: 2 and a typical resolution is 750 × 500 samples, yielding 375K (8 bits per pixel). Each 2 × 2 pixel block has a structure as shown in FIG. The ISI 83 is a state machine that transmits control information including a frame synchronization pulse and a PixelClock pulse to the image sensor in order to read an image. Pixels are read from the image sensor and placed in the VLIW input FIFO 78. The VLIW can then process and / or store the pixels. This is illustrated in FIG. The ISI 83 is used in combination with a VLIW program that accumulates detected photographic images in DRAM. Processing takes place in two steps:
A small VLIW program reads pixels from the FIFO and writes the pixels to the DRAM via a sequential write iterator;
The photographic image in the DRAM is rotated 90, 180 or 270 degrees depending on the orientation of the camera when the photograph is taken.

回転が0度である場合、ステップ1は、写真画像を最終的な写真画像格納場所へ書き出すだけであり、ステップ2は実行されない。回転が0度以外である場合、画像は一時エリア(例えば、プリント画像記憶エリア)に書き込まれ、次に、ステップ2の間に、回転させられ最終的な写真画像格納場所へ入れられる。ステップ1は、非常に簡単なマイクロコードであり、VLIW入力FIFO78からデータを取り出し、そのデータを順次書き込みイタレータに書き込む。ステップ2の回転は、加速Varkアフィン変換関数を用いて実行される。処理は、設計の複雑さを軽減し、画像のために既に必要とされたVarkアフィン変換回転ロジックを再使用するため、2ステップで行われる。これが許容できる理由は、両方のステップが、Artcamのオペレータにとってごくわずかな時間である約0.03秒内に終了するからである。たとえそうであったとしても、読み出しプロセスは、センサ速度による制限を受け、フレーム全体を読み出すために0.02秒を要し、画像を回転するため約0.01秒を要する。 If the rotation is 0 degrees, Step 1 only writes the photographic image to the final photographic image storage location, and Step 2 is not performed. If the rotation is other than 0 degrees, the image is written to a temporary area (eg, a print image storage area) and then rotated during step 2 and put into the final photographic image storage location. Step 1 is a very simple microcode that takes data from the VLIW input FIFO 78 and writes the data sequentially into a write iterator. The rotation in step 2 is performed using an accelerated Vark affine transformation function. Processing is done in two steps to reduce design complexity and reuse the Vark affine transformation rotation logic already needed for the image. This is acceptable because both steps are completed in about 0.03 seconds, which is very little time for the Artcam operator. Even so, the readout process is limited by sensor speed and takes 0.02 seconds to read the entire frame and about 0.01 seconds to rotate the image.

検出された写真画像と内部フォーマット画像との間で変換を行うために向きは重要である。なぜならば、R画素、G画素及びB画素の相対位置は向きと共に変化するからである。処理された画像は、印刷のため正しい向きにするために、印刷プロセス中に回転させる必要がある。Artcamの3次元モデルは、2個のイメージセンサを具備し、それらの入力は単一のISI83(マイクロコードは異なるが、ACP31は同一)に多重化される。各センサはフレーム蓄積型であるため、両方の画像を同時に取得し、同時にメモリへ転送することができる。 The orientation is important for converting between the detected photographic image and the internal format image. This is because the relative positions of the R pixel, the G pixel, and the B pixel change with the direction. The processed image needs to be rotated during the printing process to be oriented correctly for printing. Artcam's three-dimensional model comprises two image sensors, and their inputs are multiplexed into a single ISI 83 (different microcode, but ACP31 is the same). Since each sensor is a frame storage type, both images can be acquired simultaneously and transferred to the memory at the same time.

ディスプレイコントローラ88
Artcam上の「撮影」ボタンが半押しされたとき、TFTはイメージセンサからの(簡単なVLIWプロセスによって変換された)現在の像を表示する。撮影ボタンが完全に押下されたとき、撮影像が表示される。ユーザが印刷ボタンを押下し、画像処理が始まると、TFTはターンオフされる。画像が印刷されると、TFTは再度ターンオンされる。ディスプレイコントローラ88は、フラットパネルディスプレイを内蔵するArtcamモデルで使用される。例示的なディスプレイは、240×160画素の解像度を有するTFT型LCDである。ディスプレイコントローラ88の構成は図29に示されている。ディスプレイコントローラ88の状態機械はレジスタを含み、レジスタは同期生成のタイミングを制御し、表示画像はそこから(特定のキャッシュグループによるデータキャッシュ76を介してDRAMに)取得され、レジスタは、TFTをその時点で(TFTイネーブルを用いて)動作可能状態にすべきであるかどうかを制御する。CPUは、低速バスを介してこれらのレジスタへ書き込むことが可能である。240×160画素の画像をRGB方式TFTに表示するためには、1画素当たりに3個のコンポーネントが必要になる。DRAMから取得された画像は3個のDACを介して表示され、DACは、R、G及びBの出力信号の各々に対して1個ずつ設けられる。毎秒30フレーム(毎秒60フィールド)の画像リフレッシュレートで、ディスプレイコントローラ88は、
240×160×3×30=3.5MB/秒
のデータ転送速度を必要とする。
Display controller 88
When the “shoot” button on Artcam is pressed halfway, the TFT displays the current image from the image sensor (converted by a simple VLIW process). When the shooting button is fully pressed, a shot image is displayed. When the user presses the print button and image processing starts, the TFT is turned off. When the image is printed, the TFT is turned on again. The display controller 88 is used in the Artcam model that incorporates a flat panel display. An exemplary display is a TFT LCD with a resolution of 240 × 160 pixels. The configuration of the display controller 88 is shown in FIG. The state machine of the display controller 88 includes a register, which controls the timing of synchronization generation, from which the display image is obtained (to the DRAM via the data cache 76 by a particular cache group), and the register stores the TFT in its register Controls whether it should be enabled at the moment (using TFT enable). The CPU can write to these registers via the low speed bus. In order to display an image of 240 × 160 pixels on the RGB TFT, three components are required per pixel. An image acquired from the DRAM is displayed via three DACs, and one DAC is provided for each of the R, G, and B output signals. With an image refresh rate of 30 frames per second (60 fields per second), the display controller 88
It requires a data transfer rate of 240 × 160 × 3 × 30 = 3.5 MB / sec.

このデータ速度は、システムの他の部分よりも低速である。しかし、集約的な画像処理中にVLIWプログラムを減速させるためには十分に高い。TFT動作の一般的な原理はこれを反映している。 This data rate is slower than the rest of the system. However, it is high enough to slow down the VLIW program during intensive image processing. The general principle of TFT operation reflects this.

画像データフォーマット
上述の通り、DRAMインタフェース81は、ACPチップの他のクライアント部と、RAMBUS
DRAMとの間を接続する。事実上、DRAMインタフェース内の各モジュールはアドレス生成器である:
ACPによって操作される画像には3種類の論理的タイプがある。それらは、
−CCDから捕捉された入力像であるCCD像
−Artcam装置によって内部的に利用される内部画像フォーマット
−Artcamによって印刷される出力画像フォーマットである印刷画像
である。
Image Data Format As described above, the DRAM interface 81 is connected to the other client part of the ACP chip and the RAMBUS.
Connects to DRAM. In effect, each module in the DRAM interface is an address generator:
There are three logical types of images manipulated by ACP. They are,
A CCD image which is an input image captured from the CCD, an internal image format used internally by the Artcam device, and a print image which is an output image format printed by the Artcam.

これらの画像は、典型的に、色空間、解像度、並びに、カメラ間で変動し得る出力及び入力色空間が相違する。例えば、低価格カメラのCCD像は、高価格カメラで使用されるCCDとは、解像度やカラー特性が異なる。しかし、全ての内部画像フォーマットは、あらゆるカメラの中で色空間に関して同一フォーマットである。 These images typically differ in color space, resolution, and output and input color spaces that can vary between cameras. For example, the CCD image of a low-price camera differs from the CCD used in a high-price camera in resolution and color characteristics. However, all internal image formats are the same format with respect to color space in every camera.

その上、3種類の画像タイプは、どちらの方向が「上向き」であるかに関して異なる可能性がある。カメラの物理的な向きは、人物像であるか、又は風景像であるかについての観念を生じさせ、この観念は処理全体を通じて維持されるべきである。このため、内部画像は常に正しく向きを決められ、印刷動作中にCCDから獲得された画像に対して回転が実行される。 In addition, the three image types can differ as to which direction is “upward”. The physical orientation of the camera gives rise to the idea of whether it is a person image or a landscape image, and this idea should be maintained throughout the process. For this reason, the internal image is always oriented correctly and rotation is performed on the image acquired from the CCD during the printing operation.

CCD像編成
多種多様なCCDイメージセンサを利用可能であるが、CCD自体は750×500形イメージセンサであり、375000バイト(1画素当たり8ビット)を生成する場合を想定する。2×2画素ブロックの各々は図30に示されるような構造を有する。
CCD image organization A wide variety of CCD image sensors can be used, but the CCD itself is a 750 × 500 type image sensor, and it is assumed that 375,000 bytes (8 bits per pixel) are generated. Each 2 × 2 pixel block has a structure as shown in FIG.

DRAMに蓄積されたときのCCD像は、メモリ内で隣接している所定のラインと連続した画素を有する。各ラインは、次々に蓄積される。イメージセンサインタフェース83は、CCDからデータを取得し、そのデータを正しい向きでDRAMに格納する役割を担う。このようにして、回転0度のCCD像は、G、R、G、R、G、R...のような第1ラインを含み、B、G、B、G、B、G...のような第2ラインを含む。CCD像が人物像であり、90度回転されているならば、第1ラインはR、G、R、G、R、Gであり、第2ラインはG、B、G、B、G、B、...(以下同様に続く)となるであろう。 The CCD image when stored in the DRAM has pixels continuous with a predetermined line adjacent in the memory. Each line is accumulated one after another. The image sensor interface 83 is responsible for acquiring data from the CCD and storing the data in the DRAM in the correct orientation. In this way, the CCD image at 0 degree rotation is obtained by G, R, G, R, G, R.P. . . , B, G, B, G, B, G. . . Including the second line. If the CCD image is a human image and rotated 90 degrees, the first line is R, G, R, G, R, G and the second line is G, B, G, B, G, B ,. . . (And so on).

画素は、インターリーブ形式で蓄積される。なぜならば、全てのカラーコンポーネントが内部画像フォーマットを変換するために必要になるからである。 Pixels are stored in an interleaved format. This is because all color components are required to convert the internal image format.

ACP31はCCD画素フォーマットに関して仮説を立てないことに注意する必要がある。なぜならば、イメージング用の実際のCCDは、Artcamの間で経時的に変化し得るからである。ハードウェアによって行われる全ての処理は、ACP31の有用性を拡大するために主要なマイクロコードによって制御される。 Note that ACP 31 makes no assumptions about the CCD pixel format. This is because the actual CCD for imaging can change over time between Artcams. All processing performed by the hardware is controlled by the main microcode to extend the usefulness of ACP31.

内部画像編成
内部画像は、典型的に、多数のチャンネルにより構成される。Vark画像には、
Lab
Labα
LabΔ
αΔ

が含まれるが、これらに限定されるものではない。
Internal Image Organization An internal image is typically composed of a number of channels. In the Vark image,
Lab
Labα
LabΔ
αΔ
L
However, it is not limited to these.

L、a及びbは、Lab色空間のコンポーネントに対応し、αは(コンポジットのため使用される)マットチャンネルであり、Δは(ブラッシング、タイリング、及びイルミネーティングの間に使用される)バンプマップチャンネルである。 L, a and b correspond to components in the Lab color space, α is a matte channel (used for compositing), and Δ is a bump (used during brushing, tiling and illuminating) Map channel.

VLIWプロセッサ74は、画像が平面的な構造で編成されることを要求する。そのため、Lab画像は、三つの別個のメモリブロック、即ち、
Lチャンネル用の1ブロック
aチャンネル用の1ブロック
bチャンネル用の1ブロック
として記憶される。
The VLIW processor 74 requires that the image be organized in a planar structure. Therefore, a Lab image has three separate memory blocks:
1 block for L channel 1 block for a channel 1 block for 1 channel b channel

各チャンネルのブロック内において、画素は(幾つかのオプションのパディングバイトと共に)所定の行に対し隣接して記憶され、行は次々に記憶される。 Within each channel block, the pixels are stored adjacent to a given row (along with some optional padding bytes), and the rows are stored one after the other.

図31には、論理的画像100の記憶形式の一例が示されている。論理的画像100は、逐次記憶されたカラーコンポーネントL101、a102及びb103を有する平面形式で記憶される。或いは、論理的画像100は、非圧縮Lコンポーネント101と、圧縮Aコンポーネント105及び圧縮Bコンポーネント106を有する圧縮フォーマットで記憶してもよい。 FIG. 31 shows an example of the storage format of the logical image 100. The logical image 100 is stored in a planar format having color components L101, a102 and b103 stored sequentially. Alternatively, the logical image 100 may be stored in a compressed format having an uncompressed L component 101 and a compressed A component 105 and a compressed B component 106.

図32を参照すると、ラインn(110)の画素は、ラインn+1(111)の画素の前に一緒に格納されている。画像は単一チャンネル内の隣接したメモリに記憶されている。 Referring to FIG. 32, the pixel of line n (110) is stored together before the pixel of line n + 1 (111). Images are stored in adjacent memory within a single channel.

8MBメモリモデルの場合、全処理の終了後の最終的な印刷画像は、クロミナンスチャンネルにおいて圧縮する必要がある。クロミナンスチャンネルの圧縮は、4:1にすることができ、全体的な圧縮は12:6又は2:1になる。 In the case of the 8MB memory model, the final printed image after completion of all processing needs to be compressed in the chrominance channel. The compression of the chrominance channel can be 4: 1 and the overall compression can be 12: 6 or 2: 1.

最終的な印刷画像を除くと、Artcamの画像は典型的に圧縮されない。メモリ制約のため、ソフトウェアは、クロミナンスチャンネルの最終的な印刷画像を、これらのチャンネルの各々を2:1でスケーリングすることによって圧縮することを選択してもよい。これが行われた後、画像を印刷するために利用されるプリントVark関数は、圧縮されたものとして指定されたクロミナンスチャンネルを取り扱うように指示されるべきである。プリント関数は、圧縮されたクロミナンスを取り扱う方法を知っている唯一の関数であるが、たとえそうであるとしても、プリント関数は、固定の2:1圧縮比で処理するだけである。 Except for the final printed image, the Artcam image is typically not compressed. Due to memory constraints, the software may choose to compress the final printed image of the chrominance channels by scaling each of these channels by 2: 1. After this is done, the Print Vark function used to print the image should be instructed to handle the chrominance channel designated as compressed. The print function is the only function that knows how to handle compressed chrominance, but if so, it only processes at a fixed 2: 1 compression ratio.

画像を圧縮し、次に、最終印刷画像を作成するため圧縮画像に基づいて動作することは可能であるが、これは、解像度の損失を生ずるので推奨できない。その上、画像は、プリントアウト前の最終段階として一回だけ圧縮されるべきである。1回の圧縮は実質的には気付かれないのに対し、多数回の圧縮はかなりの画像劣化を生じさせる。 It is possible to compress the image and then operate on the compressed image to create the final printed image, but this is not recommended because it results in a loss of resolution. Moreover, the image should be compressed only once as a final step before printout. A single compression is virtually unnoticeable, while multiple compressions cause significant image degradation.

クリップ画像編成
Artcardに記憶されたクリップ画像はACP31によって明示的にはサポートされない。ソフトウェアは、現在のArtcardから画像を取り出し、ACPで認識できる形式にデータを編成する役割を担う。画像がArtcard上に圧縮形式で記憶されているならば、ソフトウェアは、それらを伸長する役割を担う。なぜならば、Artcard画像の伸長をサポートする特定のハードウェアは存在しないからである。
Clip images stored in the clip image organization Artcard are not explicitly supported by the ACP 31. The software is responsible for taking images from the current Artcard and organizing the data into a format that can be recognized by the ACP. If the images are stored in compressed form on Artcard, the software is responsible for decompressing them. This is because there is no specific hardware that supports the decompression of Artcard images.

画像ピラミッド編成
画像を操作するため利用されるブラッシング、タイリング、及びワーピングプロセス中に、しばしば、画像の特定のエリアの平均カラーを計算することが必要である。所与の各エリアの値を計算するのではなく、これらの関数は、画像ピラミッドを利用する。図33に示されるように、画像ピラミッドは、事実上の多重解像度画素マップである。原画像115は1:1表現である。各次元におけるローパスフィルタリング及び2:1のサブサンプリングによって、元のサイズの1/4の画像116が得られる。このプロセスは、画像全体が単一画素によって表現されるまで続けられる。画像ピラミッドは、原始的な内部フォーマット画像から構築され、原画像が占めていたサイズの1/3(1/4+1/16+1/64+...)を使用する。1500×1000の原画像の場合、対応した画像ピラミッドは約1/2MBである。画像ピラミッドは特定のVark関数によって構築され、他のVark関数のパラメータとして使用される。
During the brushing, tiling and warping processes utilized to manipulate image pyramid organized images, it is often necessary to calculate the average color of a particular area of the image. Rather than calculating the value for each given area, these functions make use of an image pyramid. As shown in FIG. 33, the image pyramid is a virtual multi-resolution pixel map. The original image 115 is a 1: 1 representation. By low-pass filtering in each dimension and 2: 1 subsampling, a quarter of the original size image 116 is obtained. This process continues until the entire image is represented by a single pixel. The image pyramid is constructed from a primitive internal format image and uses 1/3 the size occupied by the original image (1/4 + 1/16 + 1/64 + ...). For a 1500 × 1000 original image, the corresponding image pyramid is about ½ MB. The image pyramid is constructed by a specific Vark function and used as a parameter for other Vark functions.

印刷画像編成
処理画像全体は、それを印刷するため同時に必要になる。しかし、印刷画像出力は、CMYディザ画像を含み、唯一の一時的な画像フォーマットであり、印刷画像機能内で使用される。しかし、内部色空間から印刷色空間への色変換が必要であることに注意しなければならない。その上、色変換は、インク特性の異なるカメラのプリントロールの種類毎に別々に調整することができる。例えば、セピア出力は特定のセピア調色Artcardを使用して実行され、又はセピア色調プリントロールを使用して実行される(したがって、全てのArtcardはセピア色調で機能する)。
The entire print image organization process image is needed at the same time to print it. However, the print image output is the only temporary image format that includes CMY dither images and is used within the print image function. However, it should be noted that color conversion from the internal color space to the print color space is necessary. Moreover, the color conversion can be adjusted separately for each type of camera print roll with different ink characteristics. For example, sepia output is performed using a particular sepia tone Artcard, or using a sepia tone print roll (thus all Artcards function in sepia tone).

色空間
上述の通り、Artcamでは、画像タイプの種類に対応して三つの色空間が使用される。
Color Space As described above, in Artcam, three color spaces are used corresponding to the types of image types.

ACPは、特定の色空間についての直接的な知識を持たない。その代わりに、ACPは、CCD色空間、内部色空間、及びプリンタ色空間、即ち、
CCD色空間:RGBと、
内部色空間:Labと、
プリンタ色空間:CMYと、
の間の変換のためクライアントの色空間変換テーブルに依存する;
ACP31から色空間変換を取り除くことによって、
−様々なカメラで様々なCCDを使用すること
−同じカメラで(長期間に異なるプリントロールの)異なるインクを使用すること
−ACP設計パスからCCD選定を分離すること
−正確なカラー処理のため内部色空間を巧く定義すること
が可能になる。
ACP has no direct knowledge of a particular color space. Instead, the ACP is a CCD color space, an internal color space, and a printer color space, i.e.
CCD color space: RGB,
Internal color space: Lab
Printer color space: CMY
Depends on the client color space conversion table for conversion between
By removing the color space conversion from ACP31,
-Use different CCDs in different cameras-Use different inks (with different print rolls in the long term)-Separate CCD selection from ACP design pass-Internal for accurate color processing It is possible to define a color space skillfully.

Artcardインタフェース87
Artcardインタフェース(AI)は、Artcardがリニアイメージセンサの下を通過するときに、リニアイメージセンサからデータを取得し、どのデータをDRAMに記憶するため利用する。イメージセンサは、1走査線当たりに11000個の8ビットサンプルを生成し、Artcardを4800dpiでサンプリングする。AIは、画像を読み出すため、LineSyncパルス及びPixelClockパルスを含む制御情報をリニアセンサへ送る状態機械である。画素は、リニアセンサから読み出され、VLIW入力FIFO78に収容される。VLIWは、次に、画素を処理する、及び/又は、画素を蓄積することが可能である。AIは以下の数個のレジスタを含む。
Artcard interface 87
The Artcard interface (AI) obtains data from the linear image sensor when the Artcard passes under the linear image sensor and uses which data is stored in the DRAM. The image sensor generates 11000 8-bit samples per scan line and samples Artcard at 4800 dpi. AI is a state machine that sends control information including a LineSync pulse and a PixelClock pulse to a linear sensor in order to read an image. Pixels are read from the linear sensor and accommodated in the VLIW input FIFO 78. The VLIW can then process the pixels and / or accumulate the pixels. The AI includes several registers:

Figure 0004309954
尚、CPUは、走査を始動する前にVLIW入力FIFO78をクリアしなければならない。状態レジスタは以下のように解釈されるビットを有する。
Figure 0004309954
Note that the CPU must clear the VLIW input FIFO 78 before starting the scan. The status register has bits that are interpreted as follows.

Figure 0004309954
Artcardインタフェース(AI)87
Artcardインタフェース(AI)87は、Ardcardリーダー34からArtcard画像を取得し、それをオリジナルデータ(通常は、Varkスクリプト)に復号化する役割を担う。特に、AI87は、ArtcardスキャナリニアCCD34から信号を受け取り、カードに印刷されたビットパターンを検出し、ビットパターンをオリジナルデータに変換し、読み出しエラーを訂正する。
Figure 0004309954
Artcard interface (AI) 87
The Artcard interface (AI) 87 is responsible for obtaining an Artcard image from the Ardcard reader 34 and decoding it into original data (usually a Vark script). In particular, the AI 87 receives a signal from the Artcard scanner linear CCD 34, detects a bit pattern printed on the card, converts the bit pattern into original data, and corrects a read error.

Artcard9が挿入されていない場合、Artcamから印刷された画像は、任意の標準的な画像処理ルーチンによって整理された検出写真画像に過ぎない。Artcard9は、ユーザがプリントアウトする前に写真を修正するための手段である。特定のArtcard9をArtcamに挿入するという簡単なタスクによって、ユーザは、写真画像に対して実行される複雑な画像処理を定義することができる。 If Artcard 9 is not inserted, the image printed from Artcam is only a detected photographic image organized by any standard image processing routine. Artcard 9 is a means for correcting a photo before the user prints it out. The simple task of inserting a specific Artcard 9 into Artcam allows the user to define complex image processing to be performed on the photographic image.

Artcardが挿入されていない場合、写真画像は、印刷画像を作成するため通常の方法で処理される。1枚のArtcard9がArtcamに挿入されているとき、そのArtcardの効果は、印刷画像を生成するため写真画像に適用される。Artcard9が取り外されたとき(取り出されたとき)、印刷された画像は標準的な方法で処理された写真画像に戻る。ユーザがArtcardを取り出すためボタンを押下したとき、Artcam中央プロセッサ31で実行されるオペレーティングシステムによって維持されるイベントキューにイベントが収容される。イベントが処理されるとき(例えば、現在のプリントが行われた後)、以下の状況が発生する。 If Artcard is not inserted, the photographic image is processed in the usual way to create a printed image. When a single Artcard 9 is inserted into an Artcam, the Artcard effect is applied to the photographic image to generate a printed image. When Artcard 9 is removed (removed), the printed image reverts to a photographic image processed in a standard manner. When the user presses a button to retrieve Artcard, the event is placed in an event queue maintained by the operating system running on the Artcam central processor 31. When an event is processed (eg, after the current print is performed), the following situation occurs:

現在のArtcardが有効であるならば、印刷画像は無効としてマークされ、「プロセス標準」イベントがイベントキューに入れられる。イベントが最終的に処理されたとき、印刷画像を生成するため、写真画像に標準的な画像処理演算が加えられる。 If the current Artcard is valid, the printed image is marked invalid and a “process standard” event is placed in the event queue. When the event is finally processed, standard image processing operations are added to the photographic image to produce a printed image.

モーターはArtcardを取り出すため始動され、時間的に規定された「モーター停止」イベントがイベントキューに追加される。 The motor is started to retrieve the Artcard, and a time-defined “motor stop” event is added to the event queue.

アートカードの挿入
ユーザがArtcard9を挿入したとき、Artcardセンサ49はそれを検知し、ACP72へ報せる。これにより、ソフトウェアは、「Artcard挿入済み」イベントをイベントキューに挿入する。このイベントが処理されると、以下の数個の状況が発生する:
現在のArtcardは無効としてマークされる(「無し」ではない);
印刷画像は無効としてマークされる;
Artcardモーター37はArtcardを取り込むため始動される;
Artcardインタフェース87はArtcardを読み取るように命令される;
Artcardインタフェース87は、ArtcardスキャナリニアCCD34から信号を受け取り、カードに印刷されたビットパターンを検出し、検出されたビットパターンの誤りを訂正し、有効ArtcardデータブロックをDRAMに生成する。
When the art card insertion user inserts Artcard 9, Artcard sensor 49 detects this and reports it to ACP72. As a result, the software inserts the “Artcard inserted” event into the event queue. When this event is processed, several situations occur:
The current Artcard is marked invalid (not "none");
Print images are marked as invalid;
Artcard motor 37 is started to capture Artcard;
Artcard interface 87 is instructed to read Artcard;
The Artcard interface 87 receives a signal from the Artcard scanner linear CCD 34, detects a bit pattern printed on the card, corrects an error in the detected bit pattern, and generates a valid Artcard data block in the DRAM.

ArtcardCCDからのデータ読み出し−一般的考察
図34に示されるように、データカード読み出しプロセスは、画素データがカードから読み出される間に4フェーズを有する。フェーズは以下の通りである:
フェーズ1 Artcard上のデータエリア検出
フェーズ2 CCD画素に基づくArtcardからのビットパターン検出と、バイトとしての書き込み
フェーズ3 バイトパターンのスクランブル解除及びXOR演算
フェーズ4 データ復号化(リード・ソロモン復号)。
Data Reading from Artcard CCD—General Considerations As shown in FIG. 34, the data card reading process has four phases while pixel data is read from the card. The phases are as follows:
Phase 1 Data area detection on Artcard Phase 2 Bit pattern detection from Artcard based on CCD pixels, writing as bytes Phase 3 Descramble byte pattern and XOR operation Phase 4 Data decoding (Reed-Solomon decoding).

図35に示されるように、Artcard9は、ナイキストの定理を充足するため、少なくとも印刷された解像度の2倍でサンプリングされなければならない。実際には、これよりも高いレートでサンプリングする方がよい。好ましくは、画素は、各次元で印刷されたドットの解像度の3倍でサンプリングされ(237)、1個のドットを定義するために9個の画素が必要になる。したがって、Artcard9の解像度が1600dpiであり、センサ34の解像度が4800dpiである場合、50mmのCCDイメージセンサを使用することにより、1列毎に9450画素が得られる。即ち、2MBのドットデータ(1ドット当たり9画素の場合)が必要であるならば、2MB*8*9/9450=15978列=約16000列が必要になる。勿論、ドットがサンプリングCCDと厳密に揃えられていないならば、考えられる最悪のケースでは、ドットは16(4×4)画素エリア(231)で検出されるであろう。 As shown in FIG. 35, Artcard 9 must be sampled at least twice the printed resolution to satisfy the Nyquist theorem. In practice, it is better to sample at a higher rate. Preferably, the pixels are sampled at three times the resolution of the dots printed in each dimension (237), and nine pixels are required to define one dot. Therefore, when the resolution of Artcard 9 is 1600 dpi and the resolution of sensor 34 is 4800 dpi, 9450 pixels can be obtained for each column by using a 50 mm CCD image sensor. That is, if 2 MB dot data (9 pixels per dot) is required, 2 MB * 8 * 9/9450 = 15978 columns = about 16000 columns are required. Of course, if the dots are not strictly aligned with the sampling CCD, in the worst case possible, the dots will be detected in the 16 (4 × 4) pixel area (231).

Artcard9は、熱損傷のため多少歪みが生じ、Artcardリーダーへの挿入のばらつきによって僅かに(最大で、例えば、1度)回転し、リーダーモーター37の速度の変動を原因として真のデータレートに僅かな偏差が現れる可能性がある。これらの変化のために、カードからのデータの列は、対応した画素データの列として読み出せなくなる。図36に示されるように、Artcard9の1度の回転によって、カード上のある列からの画素は、166列に亘る画素として読み出されることになる。 The Artcard 9 is somewhat distorted due to thermal damage, rotates slightly (up to, for example, 1 degree) due to variations in insertion into the Artcard reader, and slightly changes to the true data rate due to the speed variation of the reader motor 37 Deviations may appear. Due to these changes, the column of data from the card cannot be read as the corresponding column of pixel data. As shown in FIG. 36, one rotation of Artcard 9 causes pixels from one column on the card to be read out as pixels over 166 columns.

最後に、Artcard9は、人間のオペレータにとって合理的な時間内に読み取られなければならない。Artcard上のデータはArtcard表面の大部分を覆っているので、タイミングの問題はArtcardデータ自体に制限され得る。1.5秒の読み出し時間は、Artcard読み出しとして適切である。 Finally, Artcard 9 must be read in a time that is reasonable for a human operator. Since the data on Artcard covers most of the Artcard surface, timing issues can be limited to the Artcard data itself. A readout time of 1.5 seconds is appropriate for Artcard readout.

Artcardは1.5秒内に取り込まれなければならない。したがって、16000列の全ての画素データがCCD34から1.5秒以内に、即ち、1秒当たり10667列で読み出される必要がある。したがって、1列を読み取るために利用できる時間は1/10667秒、即ち、93747ナノ秒である。画素データは画素データを読み出すプロセスとは完全に独立に、同時に1列ずつDRAMへ書き込むことが可能である。 Artcard must be captured within 1.5 seconds. Therefore, all pixel data of 16000 columns need to be read from the CCD 34 within 1.5 seconds, that is, 10667 columns per second. Thus, the time available to read a row is 1/10667 seconds, or 93747 nanoseconds. The pixel data can be written to the DRAM one column at a time, completely independently of the process of reading the pixel data.

1列のデータ(1画素当たり4ビット、したがって、1バイト当たりに2×4ビット画素の読み出しが可能であるので、9450/2バイト)をDRAMへ書き込むための時間は、8個のキャッシュラインを使用することによって短縮される。4ラインが同時に書き込まれるならば、4バンクを独立にかきこむことが可能であり、オーバーラップレイテンシーが短縮される。この場合、4725バイトは11840ns(4725/128*320ns)で書き込み可能である。このようにして、所定の列データをDRAMへ書き込むために要する時間は、利用可能な帯域幅の13%未満しか使用しない。 The time to write one column of data (4 bits per pixel, and therefore 9450/2 bytes because 2 × 4 bit pixels can be read per byte) to the DRAM is 8 cache lines. It is shortened by using. If 4 lines are written simultaneously, 4 banks can be written independently, and the overlap latency is shortened. In this case, 4725 bytes can be written in 11840 ns (4725/128 * 320 ns). In this way, the time required to write predetermined column data to the DRAM uses less than 13% of the available bandwidth.

Artcardの復号化
単純にデータサイズを見ると、リニアCCD34によって読み取られるようなArtcard画素データ全体(各ビットが3×3配列として読まれるならば140MB)が維持される場合、プロセスを8MBのメモリ33に適合させることは不可能に思われる。このため、リニアCCDの読み取り、ビットマップの復号化、及びアンビットマッププロセスは、(Artcard9がリニアCCD34の傍を通過する間に)リアルタイムで行われるべきであり、これらのプロセスは、全ての画像データ蓄積が利用可能にされなくても効率的に作用しなければならない。
Artcard Decoding Simply looking at the data size, if the entire Artcard pixel data (140 MB if each bit is read as a 3 × 3 array) as read by the linear CCD 34 is maintained, then the process is stored in an 8 MB memory 33. It seems impossible to adapt to. For this reason, the linear CCD reading, bitmap decoding, and unbitmap processes should be performed in real time (while Artcard 9 passes by the linear CCD 34), and these processes are performed for all images. Even if data storage is not made available, it must work efficiently.

Artcard9が挿入されたとき、古い蓄積された印刷画像と拡大された写真画像は無効になる。新しいArtcard9は、現在の撮影写真画像に基づいて新しい画像を作成する命令を含み得る。古い印刷画像は無効であり、拡大された写真画像及び画像ピラミッドを保持するエリアは無効であり、読み出しプロセス中にスクラッチメモリとして使用できる5MBよりも多くの量が残される。厳密に説明すると、Artcardの新しい生データが書き込まれるべき1MBのエリアは、最終的なリード・ソロモン復号化が行われるときまで、Artcard読み出しプロセス中にスクラッチデータとして使用可能であり、その1MBエリアが再度開放される。ここで説明している読み出しプロセスは、(データの最終的な宛先としての利用を除いて)余分な1MBエリアを利用しない。 When Artcard 9 is inserted, the old stored print image and enlarged photographic image are invalidated. The new Artcard 9 may include instructions for creating a new image based on the current captured photographic image. The old print image is invalid and the area holding the enlarged photographic image and image pyramid is invalid, leaving more than 5 MB available for scratch memory during the read process. Strictly speaking, the 1 MB area in which the new Artcard raw data is to be written is available as scratch data during the Artcard read process until the final Reed-Solomon decoding is performed, It is opened again. The read process described here does not use the extra 1 MB area (except for use as the final destination of the data).

また、スクランブル解除プロセスは、スクランブル解除を所定の場所で行うことができないので、2組の2MBのメモリエリアを必要とすることに注意すべきである。幸運にも、5MBのスクラッチエリアはこの目的のために十分なスペースを含む。 It should also be noted that the descrambling process requires two sets of 2 MB memory areas because descrambling cannot be performed in place. Fortunately, the 5 MB scratch area contains enough space for this purpose.

図37を参照すると、Artcardデータを復号化するために必要なステップのフローチャート220が示されている。これらのステップには、Artcard221を読み込むステップと、対応した符号化され、XOR演算され、スクランブル処理されたビットマップデータ223を生成するため、読まれたデータを復号化するステップと、を含む。次に、符号化され、スクランブル処理されたデータ224を生成するため、チェッカーボードXOR演算がそのデータに適用される。このデータは、次に、データ225を生成するためにスクランブル解除227され、その後、このデータは、元の生データ226を生成するため、リード・ソロモン復号化を受ける。或いは、スクランブル解除及びXOR演算プロセスは、一緒に行ってもよく、別々のデータのパスを必要としない。上記のステップの各々は、以下で詳述される。図37を参照して説明したように、Artcardインタフェースは、4フェーズを有し、そのうちの最初の二つは、時間的に重大であり、画素データがCCDから読み出される間に行われなければならない:
フェーズ1 Artcard上のデータエリア検出
フェーズ2 CCD画素に基づくArtcardからのビットパターン検出と、バイトとしての書き込み
フェーズ3 バイトパターンのスクランブル解除及びXOR演算
フェーズ4 データ復号化(リード・ソロモン復号)。
Referring to FIG. 37, there is shown a flowchart 220 of the steps necessary to decode Artcard data. These steps include reading the Artcard 221 and decoding the read data to generate the corresponding encoded, XORed, and scrambled bitmap data 223. A checkerboard XOR operation is then applied to the data to generate encoded and scrambled data 224. This data is then descrambled 227 to produce data 225, which is then subjected to Reed-Solomon decoding to produce the original raw data 226. Alternatively, the descrambling and XOR operation processes may be performed together and do not require separate data paths. Each of the above steps is described in detail below. As described with reference to FIG. 37, the Artcard interface has four phases, the first two of which are time critical and must be performed while pixel data is being read from the CCD. :
Phase 1 Data area detection on Artcard Phase 2 Bit pattern detection from Artcard based on CCD pixels, writing as bytes Phase 3 Descramble byte pattern and XOR operation Phase 4 Data decoding (Reed-Solomon decoding).

これらの4フェーズを次に詳細に説明する。 These four phases will now be described in detail.

フェーズ1:Artcard9がCCD34を通過するとき、AIは、データエリアの左側でArrcard上の特別ターゲットを確実に検出することにより、データエリアのスタートを検出しなければならない。特別ターゲットが検出され得なかった場合、カードは無効としてマークされる。この検出は、Artcard9がCCD34を通過する間に、リアルタイムで行われる必要がある。 Phase 1: When Artcard 9 passes the CCD 34, the AI must detect the start of the data area by reliably detecting the special target on Arrcard on the left side of the data area. If no special target can be detected, the card is marked invalid. This detection needs to be performed in real time while Artcard 9 passes through the CCD 34.

必要に応じて、回転不変性が与えられる。この場合、ターゲットは、Artcardの右側で繰り返されるが、上隅ではなく、下右隅に関連している。このようにして、もし、カードが「間違った」やり方で挿入された場合、ターゲットは、結局、正しい向きにされる。後述のフェーズ3は、データの向きを検出し、回転の可能性を考慮するように変更してもよい。 If necessary, rotation invariance is provided. In this case, the target is repeated on the right side of Artcard, but is associated with the lower right corner, not the upper corner. In this way, if the card is inserted in a “wrong” manner, the target will eventually be oriented correctly. Phase 3 to be described later may be changed to detect the direction of data and consider the possibility of rotation.

フェーズ2:データが一旦決定されると、主たる読み出しプロセスが始まり、CCDからの画素データを「Artcardデータ窓」に入れ、この窓からのビットを検出し、検出されたビットをバイトに組み立て、DRAMにバイトイメージを構築する。これは、ArtcardがCCDを通過する間に全て行われる必要がある。 Phase 2: Once the data is determined, the main readout process begins, the pixel data from the CCD is put into an “Artcard data window”, the bits from this window are detected, the detected bits are assembled into bytes, and the DRAM Build a byte image on This all needs to be done while Artcard passes the CCD.

フェーズ3:全ての画素がArtcardデータエリアから読み出されると、Artcardモーター37は停止させられ、バイトイメージはスクランブル解除され、XOR演算される。リアルタイム性能は要求されないが、このプロセスは、人間のオペレータを煩わせない程度に高速でなければならない。このプロセスは、2MBのスクランブル化されたビットイメージを取得し、スクランブル加除され/XOR演算されたビットイメージを別々の2MBイメージに書き込む。 Phase 3: When all pixels are read from the Artcard data area, the Artcard motor 37 is stopped and the byte image is descrambled and XORed. Although real-time performance is not required, this process must be fast enough not to bother human operators. This process takes a 2MB scrambled bit image and writes the scrambled / XORed bit image to a separate 2MB image.

フェーズ4:Artcard読み出しプロセスの最終フェーズは、リード・ソロモン復号化プロセスであり、2MBビットイメージが1MBの有効Artcardデータエリアに復号化される。再び、リアルタイム性能は要求されないが、人間のオペレータからみて素早く復号化を行うことが必要である。復号プロセスが有効であるならば、カードは有効としてマークされる。復号に失敗した場合、ビットイメージ内のデータの複製の復号化が試みられ、プロセスは、成功するか、又はビットイメージ内にデータの複製イメージが存在しなくなるまで繰り返される。 Phase 4: The final phase of the Artcard read process is a Reed-Solomon decoding process, where a 2 MB bit image is decoded into a 1 MB valid Artcard data area. Again, real-time performance is not required, but it is necessary to decode quickly from the point of view of a human operator. If the decryption process is valid, the card is marked as valid. If the decoding fails, an attempt is made to decode a copy of the data in the bit image and the process is repeated until there is no duplicate image of data in the bit image.

上記の4フェーズプロセスは、4.5MBのDRAMを必要とする。2MBはフェーズ2の出力のために確保され、0.5MBはフェーズ1及び2の間のスクラッチデータ用に確保される。残りの2MBのスペースは、1列当たりに4725バイトとして440列以上を保持することができる。実際上、読み出されている画素データはフェーズ1のアルゴリズムよりも数列分だけ先行しており、最悪のケースでは、約180列だけフェーズ2よりも遅れるが、440列の限界の範囲内に十分に収まる。 The above four-phase process requires 4.5 MB of DRAM. 2 MB is reserved for phase 2 output and 0.5 MB is reserved for scratch data between phases 1 and 2. The remaining 2 MB space can hold more than 440 columns with 4725 bytes per column. In practice, the pixel data being read out is ahead of the Phase 1 algorithm by several columns, and in the worst case it is delayed by about 180 columns from Phase 2, but is well within the limit of 440 columns. Fits in.

次に、各フェーズの実際の動作を詳細に説明する。 Next, the actual operation of each phase will be described in detail.

フェーズ1−Artcard上のデータエリア検出
このフェーズは、Artcard9上のデータエリアの左側を確実に検出することと関係がある。データエリアの正確な検出は、カードの左側に印刷された特殊ターゲットの正確な検出によって実現される。これらのターゲットは、特に、最大1度までの回転がある場合でも簡単に検出できるように設計されている。
Phase 1-Data Area Detection on Artcard This phase is related to reliably detecting the left side of the data area on Artcard9. Accurate detection of the data area is realized by accurate detection of a special target printed on the left side of the card. These targets are especially designed to be easily detected even when there is a rotation of up to 1 degree.

図38を参照すると、Artcard9の左側の拡大図が示されている。このカードの左側は16個のバンド239に分割され、ターゲット、例えば、241は各バンドの中心に設けられる。バンドは、バンドを分離するための線が引かれていないという点で論理的である。図39には、1個のターゲットが示されている。ターゲット241は、単一の白色ドットを含む印刷された黒色正方形である。この考え方は、最初にできるだけ多数のターゲット241を検出し、次に、少なくとも8個の検出された白色ドットの場所を単一の論理的な直線に繋ぎ合わせるというものである。この考え方が実行できれば、データエリア243のスタートは、この論理的な直線から一定距離になる。実行できない場合、カードは無効であるとして拒否される。 Referring to FIG. 38, an enlarged view of the left side of Artcard 9 is shown. The left side of the card is divided into 16 bands 239, and a target, for example, 241 is provided at the center of each band. Bands are logical in that no line is drawn to separate the bands. FIG. 39 shows one target. The target 241 is a printed black square containing a single white dot. The idea is to first detect as many targets 241 as possible, and then join at least eight detected white dot locations into a single logical line. If this concept can be implemented, the start of the data area 243 will be a fixed distance from this logical line. If not, the card is rejected as invalid.

図38に示されるように、カード9の高さは3150ドットである。ターゲット(Target0)241は、データエリアの左上隅244から24ドットの一定距離だけ離れた場所に置かれるので、ターゲットは、192ドット(576画素)の等しいサイズの16個の領域のうちの最初の領域239の範囲に巧く収まり、カードの最後の画素領域にターゲットは存在しない。ターゲット241は、簡単に検出できるように十分に大きくしなければならないが、カードが1度回転したときに領域の外側へ出る程に大きくしてはならない。ターゲットの適当なサイズは、白色ドット242を含む31×31ドット(93×93個の検出画素)の黒色正方形241である。 As shown in FIG. 38, the height of the card 9 is 3150 dots. Since the target (Target0) 241 is placed at a certain distance of 24 dots from the upper left corner 244 of the data area, the target is the first of 16 areas of equal size of 192 dots (576 pixels). It fits well in the area 239 and there is no target in the last pixel area of the card. The target 241 must be large enough to be easily detected, but not large enough to go outside the area when the card is rotated once. A suitable target size is a black square 241 of 31 × 31 dots (93 × 93 detection pixels) including white dots 242.

最悪の1度の回転がある場合、1列分のシフトは57画素毎に起こる。したがって、590画素のサイズのバンドの場合、カードが最悪の回転状態であるならば、このシンボルの何れかの部分を、上部若しくは下部の12画素、又はバンドのその場所に配置することは不可能であり、或いは、シンボルはCCD読み出し時に間違ったバンドで検出されるであろう。 If there is a worst one degree rotation, one column shift occurs every 57 pixels. Thus, for a band of 590 pixels in size, if the card is in the worst rotation state, it is impossible to place any part of this symbol at the top or bottom 12 pixels, or at that location in the band Alternatively, the symbols will be detected in the wrong band when reading the CCD.

したがって、矩形の黒色部分が57画素の高さ(19ドット)である場合、少なくとも9.5個の黒色画素は、CCDによって同一列で確実に読み出すことができる(画素の半分が1列に収まり、あとの半分が次の列に収まる最悪ケース)。同一列で少なくとも10個の黒色ドットが確実に読み出されるようにするため、高さを20ドットにする必要がある。黒色ドットのスタートのエッジでの誤検出に備えて、ドットの個数を31まで増加させ、ターゲットのローカル座標(15,15)に置かれた白色ドットの両側に15ドットずつを置く。31ドットは91画素であり、列内のシフトは最大でも3画素であり、576画素のバンドの範囲内に容易に収まる。 Therefore, when the rectangular black portion is 57 pixels high (19 dots), at least 9.5 black pixels can be reliably read out in the same column by the CCD (half of the pixels fit in one column). , The worst case where the other half fits into the next column). In order to ensure that at least 10 black dots are read out in the same row, the height needs to be 20 dots. In preparation for erroneous detection at the start edge of black dots, the number of dots is increased to 31, and 15 dots are placed on both sides of the white dot placed at the local coordinates (15, 15) of the target. The 31 dots are 91 pixels, and the shift within the column is 3 pixels at the maximum, and easily fits within the band of 576 pixels.

このように、各ターゲットは、31×31ドット(93×93画素)のブロックであり、各ターゲットは、
各列に31個の黒色ドットを含む15列(93画素のうちの45画素幅の列)と、
15個の黒色ドット(45画素)、1個の白色ドット(3画素)、及び更なる15個の黒色ドット(45画素)を含む1列と、
各列が31個の黒色ドットを含む15列(93画素のうちの45画素幅の列)と、
により構成される。
Thus, each target is a block of 31 × 31 dots (93 × 93 pixels), and each target is
15 columns containing 31 black dots in each column (a column of 45 pixels out of 93 pixels),
A row including 15 black dots (45 pixels), 1 white dot (3 pixels), and 15 additional black dots (45 pixels);
15 columns each containing 31 black dots (a column of 45 pixels out of 93 pixels),
Consists of.

ターゲット検出
ターゲットは、ドットを検出するのではなく、同時に1列ずつ画素の列を読み出すことにより検出される。所定のバンド内で、ターゲットの左側を構築する多数の隣接した黒色画素により構成された多数の列を探索することが必要である。次に、更なる黒色列の中心で白色領域を見つけることが期待され、最後に、ターゲットの中心の左側で黒色列が見つけられる。
The target detection target is detected not by detecting dots but by reading out the pixel rows one by one at the same time. Within a given band, it is necessary to search a number of columns composed of a number of adjacent black pixels that make up the left side of the target. Next, it is expected to find a white area at the center of the further black column, and finally a black column is found on the left side of the center of the target.

画素の読み出しの際に優れたキャッシュ性能を得るためには8個のキャッシュラインが必要である。論理的な読み出し毎に、4回のサブ読み出しによって4個のキャッシュラインが満たされ、一方、その他の4個のキャッシュラインは使用される。これは、利用可能なDRAM帯域幅の13%までを効率的に使用する。 In order to obtain excellent cache performance when reading out pixels, eight cache lines are required. For each logical read, four cache lines are filled with four sub-reads, while the other four cache lines are used. This effectively uses up to 13% of the available DRAM bandwidth.

図40に示されるように、ターゲットを検出する検出機構FIFOは、フィルタ245、ランレングスエンコーダ246、及びランダムアクセスのため最上部3要素(S1、S2及びS3)の特別な配線を必要とするFIFO247を含む。 As shown in FIG. 40, the detection mechanism FIFO for detecting the target requires a filter 245, a run length encoder 246, and a FIFO 247 that requires special wiring of the top three elements (S1, S2, and S3) for random access. including.

入力画素の列は、全てのターゲットが検出されるか、又は指定された数の列が処理されるまで、同時に1列ずつ処理される。列を処理するため、画素はDRAMから読み出され、0又は1を検出するためフィルタ245の中を通され、次に、ランレングス符号化246される。ビット値、及び同じ値の隣接したビットの個数は、FIFO247に入れられる。FIFO249の個々のエントリーは8ビットに収まり、7ビット250はランレングスを保持し、1ビット249は検出されたビットの値を保持する。 The input pixel columns are processed one column at a time until all targets have been detected or a specified number of columns have been processed. To process the columns, the pixels are read from the DRAM, passed through a filter 245 to detect 0 or 1, and then run length encoded 246. The bit value and the number of adjacent bits of the same value are entered in the FIFO 247. Each entry in FIFO 249 fits in 8 bits, 7 bits 250 hold the run length, and 1 bit 249 holds the value of the detected bit.

ランレングスエンコーダ246は、576画素(192ドット)領域内の隣接した画素だけを符号化する。 The run length encoder 246 encodes only adjacent pixels in a 576 pixel (192 dots) region.

FIFO247の最上部3要素は、ランダムな順序でアクセス252され得る。これらのエントリーの(画素の)ランレングスは、以下の表に従って、ショート、ミディアム、及びロングの3個の値にフィルタ処理される。 The top three elements of FIFO 247 may be accessed 252 in random order. The run length (of pixels) of these entries is filtered into three values: short, medium, and long according to the following table.

Figure 0004309954
FIFO247の最上部の3個のエントリーに着目すると、3種類の興味深い特殊ケースが存在する。
Figure 0004309954
Focusing on the top three entries of FIFO 247, there are three interesting special cases.

Figure 0004309954
好ましくは、領域バンド毎に以下の情報が保持される。
Figure 0004309954
Preferably, the following information is held for each region band.

Figure 0004309954
全部で7バイトが与えられる。合計が8バイトであるならば、アドレス生成が簡単化される。そこで、16個のエントリーは、16*8=128バイトが必要であり、これは、4個のキャッシュラインとぴったり合う。アドレスレンジは、0.5MBのDRAMエリアのスクラッチの内側に入るべきである。なぜならば、他のフェーズが残りの4MBデータエリアを利用するからである。
Figure 0004309954
A total of 7 bytes are given. If the total is 8 bytes, address generation is simplified. So 16 entries require 16 * 8 = 128 bytes, which fits exactly 4 cache lines. The address range should be inside the 0.5 MB DRAM area scratch. This is because other phases use the remaining 4 MB data area.

所定の画素列を処理し始めるとき、レジスタ値S2StartPixel254は0にリセットされる。FIFO内のエントリーがS2からS1へ進むとき、それらは、既存のS2StartPixel値に加算され(255)、現在S2で定義されているランの正確な位置を与える。FIFO内の3個の興味深いケースの各々を調べると、S2StartPixelはターゲットの黒色エリアのスタートを判定するため使用可能であり(ケース1及び2)、ターゲットの中心にある白色ドットのスタートを判定するため使用可能である(ケース3)。列を処理するアルゴリズムは以下のように表される。 When starting to process a given pixel column, the register value S2StartPixel 254 is reset to zero. As entries in the FIFO advance from S2 to S1, they are added to the existing S2StartPixel value (255), giving the exact location of the run currently defined in S2. Examining each of the three interesting cases in the FIFO, S2StartPixel can be used to determine the start of the black area of the target (cases 1 and 2) and to determine the start of the white dot in the center of the target. Can be used (Case 3). The algorithm for processing the sequence is expressed as follows:

Figure 0004309954
列の処理に関与するステップ(プロセスColumn)は以下の通りである。
Figure 0004309954
The steps involved in column processing (Process Column) are as follows.

Figure 0004309954
3種類のケース(処理ケース)の各々に対する処理は以下の通りである。
Figure 0004309954
Processing for each of the three types of cases (processing cases) is as follows.

ケース1: Case 1:

Figure 0004309954
ケース2:
ケース3を識別するためPrevCaseWasCase2フラグ(前のケースはケース2であった)をセットする以外に特別な処理は記録されない(上記の列を処理するステップ3を参照)。
Figure 0004309954
Case 2:
No special processing is recorded other than setting the PrevCaseWasCase2 flag (previous case was case 2) to identify case 3 (see step 3 above processing column).

ケース3: Case 3:

Figure 0004309954
所与の列を処理する最後に、現在の列がターゲット検出のための列の最大番号と比較される。許容された列の番号を超えたとき、検出されたターゲットの個数をチェックする必要がある。検出されたものが8個未満であるならば、カードは無効であると見なされる。
Figure 0004309954
At the end of processing a given column, the current column is compared with the maximum number of columns for target detection. When the number of allowed columns is exceeded, it is necessary to check the number of targets detected. If less than 8 are detected, the card is considered invalid.

プロセス ターゲット
ターゲットが検出された後、ターゲットを処理する必要がある。全部のターゲットが利用可能であるか、又は一部のターゲットだけが利用可能である。一部のターゲットは誤って検出された可能性もある。
After the process target target is discovered, the target needs to be processed. Either all targets are available, or only some targets are available. Some targets may have been detected in error.

この処理のフェーズは、できるだけ多数のターゲットの中心を通る数学的な直線を決定する。その直線が通過するターゲットの個数が多いほど、より高い信頼度でターゲット位置が検出される。限界は8ターゲットに設定される。直線が少なくとも8個のターゲットを通過する場合、正しい直線である見なされる。 This phase of the process determines a mathematical line through the center of as many targets as possible. As the number of targets through which the straight line passes increases, the target position is detected with higher reliability. The limit is set to 8 targets. A straight line is considered correct if it passes through at least 8 targets.

力ずくではあるが、簡単なアプローチを採用することは差し支えない。なぜならば、そのように行うための時間があり(以下を参照)、複雑さを低減することによりテストが簡単化されるからである。Target0とTarget1(両方のターゲットが有効であると見なされる場合)の間で直線を決定し、この直線上にあるターゲットの個数を決定する必要がある。次に、Target0とターゲット2の間の直線を決定し、このプロセスを繰り返す。最終的に、Target1と2の間の直線、1と3の間の直線等に同じプロセスを実行し、以下同様に続き、最終的に、Target14とTarget15の間の直線に同じプロセスを実行する。全てのターゲットが検出された場合を想定すると、15+14+13+...=90回の計算(各計算の組は16回のテストを必要とするので、実際には、1440回の計算)を実行し、その直線に沿って最大個数のターゲットが検出された直線を選択する必要がある。ターゲット位置を見つけるためのアルゴリズムは、例えば、以下のようになる:

Figure 0004309954
図34に示されるように、上記アルゴリズムにおて、TargetA261及びTargetBからCurrentLine260を決定するため、ターゲット261、262と、ターゲットAの位置との間でΔrow(264)及びΔcolumn(263)を計算することが必要である。Δrow及びΔcolumnを加算することにより、Target0からTarget1、以下同様、へ移動することが可能になる。検出された(実際に検出されたならば)TargetNの位置は、直線上のTargetNの計算された予測位置と比較することができ、許容範囲内に収まるならば、TargetNは直線上にあることが判定される。 Although it is brute force, a simple approach can be adopted. This is because there is time to do so (see below) and the test is simplified by reducing complexity. It is necessary to determine a straight line between Target0 and Target1 (when both targets are considered valid) and to determine the number of targets on this line. Next, a straight line between Target 0 and Target 2 is determined and this process is repeated. Finally, the same process is performed on the straight line between Target 1 and 2, the straight line between 1 and 3, etc., and so on. Finally, the same process is performed on the straight line between Target 14 and Target 15. Assuming that all targets are detected, 15 + 14 + 13 +. . . = Perform 90 calculations (each calculation set requires 16 tests, so in practice 1440 calculations) and select the line with the maximum number of targets detected along that line There is a need to. An algorithm for finding a target location is, for example:
Figure 0004309954
As shown in FIG. 34, Δrow (264) and Δcolumn (263) are calculated between targets 261 and 262 and the position of target A in order to determine CurrentLine 260 from Target A 261 and Target B in the above algorithm. It is necessary. By adding Δrow and Δcolumn, it is possible to move from Target0 to Target1, and so on. The detected TargetN position (if actually detected) can be compared with the calculated predicted position of TargetN on a straight line, and if it falls within an acceptable range, TargetN can be on a straight line Determined.

Δrow及びΔcolumnは、
Δrow = (rowTargetA
- rowTargetB)/(B - A)
Δcolumn =
(columnTargetA- columnTargetB)/(B-A)
により計算される。次に、Target0の位置を、
row = rowTargetA - (A * Δrow)
column = columnTargetA - (A * Δcolumn)
により計算する。
Δrow and Δcolumn are
Δrow = (row TargetA
-row TargetB ) / (B-A)
Δcolumn =
(column TargetA -column TargetB ) / (BA)
Is calculated by Next, the position of Target0
row = rowTargetA-(A * Δrow)
column = columnTargetA-(A * Δcolumn)
Calculate according to

また、(row,
column)を実際のrowTarget0及びcolumnTarget0と比較する。ある予測ターゲットから次のターゲット(例えば、Target0からTarget1)へ移動するためには、Δrow及びΔcolumnをそれぞれrow及びcolumnに加算すればよい。各ターゲットが直線上にあるかどうかをチェックするため、Target0の予測位置を計算し、次に、各ターゲットの座標に対して1回の加算及び1回の比較を実行することが必要である。
Also, (row,
column) is compared with the actual row Target0 and column Target0 . In order to move from a certain prediction target to the next target (for example, Target 0 to Target 1), Δrow and Δcolumn may be added to row and column, respectively. To check whether each target is on a straight line, it is necessary to calculate the predicted position of Target0 and then perform one addition and one comparison on the coordinates of each target.

16個全てのターゲットと最大で90本の直線との比較の終了後、得られる結果は有効ターゲットを通る最良直線である。その直線が少なくとも8個のターゲットを通過するならば(即ち、MaxFound >= 8)、直線を形成するために十分なターゲットが検出されたことが認められるので、カードを処理することができる。最良直線の通過するターゲットが8個未満であるならば、カードは無効であると見なされる。 After completing the comparison of all 16 targets with a maximum of 90 straight lines, the result obtained is the best straight line through the effective target. If the straight line passes through at least 8 targets (ie, MaxFound> = 8), the card can be processed because it is found that sufficient targets have been detected to form the straight line. A card is considered invalid if the best straight line passes through fewer than eight targets.

結果として生じるアルゴリズムは、Δrow及びΔcolumnを計算するための180回の除算と、Target0の位置を計算するための180回の乗算/加算と、2880回の加算/比較と、を要する。この処理を実行するための時間は、36列の画素データを読み出すために要する時間、即ち、3374892nsである。加算は除算よりも所要時間が短いという事実までを考慮しない場合、3240回の数学的演算を3374892ns内に実行しなければならない。これは、1演算当たりに約1040ns、即ち、104サイクルに相当する。したがって、CPUは、ターゲットの全ての処理を無事に実行することが可能であり、設計の複雑さは低減される。 The resulting algorithm requires 180 divisions to calculate Δrow and Δcolumn, 180 multiplications / additions to calculate Target0 position, and 2880 additions / comparisons. The time for executing this processing is the time required for reading out the 36 columns of pixel data, that is, 337482 ns. If the addition does not take into account the fact that the required time is shorter than the division, 3240 mathematical operations must be performed within 337482 ns. This corresponds to about 1040 ns per operation, or 104 cycles. Therefore, the CPU can safely execute all the processes of the target, and the design complexity is reduced.

データエッジ境界及びクロックマークに基づく重心の更新
ステップ0:データエリアの位置検出
Target0(図38の241)からデータエリアの左上境界244までの行及び列に関する距離は所定の固定距離であり、更に、垂直クロックマーク276までには1ドットの列がある。したがって、前の段階で見つかったTargetA、Δrow及びΔcolumn(Δrow及びΔcolumnはターゲット間の距離を表す)は、上述のようにTarget0の重心又は予測位置を計算するため使用される。
Center of gravity update based on data edge boundary and clock mark Step 0: Data area position detection
The distances related to the rows and columns from Target0 (241 in FIG. 38) to the upper left boundary 244 of the data area are predetermined fixed distances. Therefore, TargetA, Δrow and Δcolumn found in the previous stage (Δrow and Δcolumn represent the distance between the targets) are used to calculate the center of gravity or predicted position of Target0 as described above.

Target0からデータエリアまでの固定画素オフセットはターゲット間の距離(ターゲット間は192ドット、Target0とデータエリア243の間は24ドット)と関連付けられるので、単に、Δrow/8をTarget0の重心の列座標に加算すればよい(ドットのアスペクト比は1:1)。最上部座標は、
(columnDotColumnTop= columnTarget0
+ (Δrow/8)
(rowDorColumnTop= rowTarget0
+ (Δcolumn/8)
として定義される。
Since the fixed pixel offset from Target0 to the data area is related to the distance between targets (192 dots between targets and 24 dots between Target0 and data area 243), simply set Δrow / 8 to the column coordinate of the center of gravity of Target0. What is necessary is just to add (the aspect ratio of a dot is 1: 1). The top coordinate is
(column DotColumnTop = column Target0
+ (Δrow / 8)
(row DorColumnTop = row Target0
+ (Δcolumn / 8)
Is defined as

次のΔrow及びΔcolumnは、ターゲット間のドット数によってそれらを除算することにより、(ターゲット間ではなく)単一列内のドット間の画素数を与えるために更新される:
Δrow = Δrow/192
Δcolumn = Δcolumn/192
更に、currentColumnレジスタ(フェーズ2を参照)には−1をセットすることにより、ステップ2の後、フェーズ2が開始したとき、currentColumnレジスタは−1から0へインクリメントする。
The next Δrow and Δcolumn are updated to give the number of pixels between dots in a single row (not between targets) by dividing them by the number of dots between targets:
Δrow = Δrow / 192
Δcolumn = Δcolumn / 192
In addition, by setting -1 in the currentColumn register (see Phase 2), after Step 2, the currentColumn register increments from -1 to 0 when Phase 2 starts.

ステップ1:初期重心デルタ(Δ)及びビット履歴の書き出し
これは、フェーズ2のために必要なセットアップ情報を書き込むだけである。
Step 1: Write initial centroid delta (Δ) and bit history This only writes the setup information needed for Phase 2.

これは、各行のすべてのΔrow及びΔcolumnのエントリーと、ビット履歴に0を書き込むことによって実現できる。ビット履歴は実際には予測ビット履歴である。なぜならば、クロックマーク列276の左側には境界列277があり、その前には、白色エリアが存在することがわかっているからである。したがって、ビット履歴は、011、010、011、010等である。 This can be achieved by writing all the Δrow and Δcolumn entries in each row and 0 in the bit history. The bit history is actually a predicted bit history. This is because it is known that there is a boundary row 277 on the left side of the clock mark row 276 and a white area is present in front of it. Therefore, the bit history is 011, 010, 011, 010, or the like.

ステップ2:読み出された実際の画素に基づく重心の更新
ビット履歴は、予測クロックマーク及びデータ境界に従ってステップ1でセットアップされる。各ドット行の実際の重心は、予測データを実際の画素値と比較することによって、より正確にセットされる(初期的には0である)。重心更新機構は、フェーズ2のステップ3を実行するだけで実現される。
Step 2: The update bit history of the centroid based on the read actual pixels is set up in Step 1 according to the predicted clock mark and the data boundary. The actual centroid of each dot row is set more accurately (initially 0) by comparing the prediction data with the actual pixel values. The center-of-gravity update mechanism is realized simply by executing Step 3 of Phase 2.

フェーズ2−読み出された画素に基づくArtcardからのビットパターン検出及びバイトとしての書き込み
Artcard9からのドットは、3列に亘って検出された少なくとも9個の画素が提示されることを要求するので、検出された画素列毎にドット検出計算を実行するポイントは殆ど無い。処理に要する時間は、平均ドット出現に亘って平均化し、利用可能な処理時間を最大化した方がよい。これにより、Artcard9からのドットの列の処理を、Artcardから3列のデータを読み出すために要する時間内に収めることが可能になる。最も可能性の高いケースでは、ドットを提示するために4列を要するが、4番目の列は、あるドットの最後の列であり、且つ次のドットの最初の列である。したがって、処理は3列だけに制限されるべきである。
Phase 2-Bit pattern detection from Artcard based on read out pixels and writing as bytes from Artcard 9 requires that at least 9 pixels detected over 3 columns be presented. There are few points at which dot detection calculation is performed for each detected pixel row. The time required for processing should be averaged over the appearance of average dots to maximize the available processing time. As a result, it is possible to keep the dot row processing from Artcard 9 within the time required to read out three rows of data from Artcard. In the most likely case, it takes four columns to present a dot, but the fourth column is the last row of one dot and the first row of the next dot. Therefore, processing should be limited to only 3 columns.

CCDからの画素は、利用可能な時間の13%内でDRAMに書き込まれるので、83%の時間、即ち、93747*3の83%=281241nsの83%=233430nsは、ドットの1列を処理するために利用可能である。 Pixels from the CCD are written to the DRAM within 13% of the available time, so 83% of the time, ie 83747 * 3 83% = 281241 ns 83% = 2233430 ns, process one row of dots. Is available for

利用可能な時間内に、3150ドットを検出し、それらのビット値をメモリの生データエリアに書き込むことが必要である。したがって、この処理は以下のステップを必要とする:
Artcard上のドットの列毎に、
ステップ0:次のドット列へ進む;
ステップ1:Artcardドット列の上端及び下端を検出する(クロックマークをチェックする);
ステップ2:ドット列を処理し、ビットを検出し、ビットを適切に記憶する;
ステップ3:重心を更新する。
It is necessary to detect 3150 dots within the available time and write their bit values to the raw data area of the memory. This process therefore requires the following steps:
For each row of dots on Artcard,
Step 0: Go to the next dot row;
Step 1: Detect the upper and lower ends of the Artcard dot row (check the clock mark);
Step 2: Process the dot sequence, detect the bits, and store the bits appropriately;
Step 3: Update the center of gravity.

Artcardの論理的なドット列を処理し、論理的なドット列は165画素に亘ってシフトする可能性があるので、最悪のケースでは、少なくとも165列がDRAMに読み込まれるまで、最初の列を処理できない。したがって、フェーズ2は、読み出しプロセスが終了した後、同じ時間で終了する。最悪ケースの時間は、165*93747ns=15468255ns、即ち、0.015秒である。 In the worst case, the first column is processed until at least 165 columns are read into the DRAM, since Artcard's logical dot sequence is processed and the logical dot sequence may shift over 165 pixels. Can not. Thus, phase 2 ends at the same time after the read process ends. The worst case time is 165 * 93747 ns = 15468255 ns, ie 0.015 seconds.

ステップ0:次のドットへ前進
次のドットの列へ進むため、Δrow及びΔcolumnをdotColumnTopに加算し、列の上端のドットの重心を得る。最初にこれを行うとき、ビットイメージ画像データエリアの左側のクロックマーク列276の所にいるので、第1のデータ列へ進む。Δrow及びΔcolumnは、1列内のドット間の距離を表すので、ドット列の間を移動するために、ΔrowをcolumndotColumnTopに加算し、ΔcolumnをrowdotColumnTopに加算することが必要である。
Step 0: Advance to the next dot In order to advance to the next dot row, Δrow and Δcolumn are added to dotColumnTop to obtain the center of gravity of the dot at the top of the row. When this is done for the first time, since it is at the clock mark string 276 on the left side of the bit image image data area, it proceeds to the first data string. Since Δrow and Δcolumn represent the distance between dots in one row, it is necessary to add Δrow to column dotColumnTop and Δcolumn to row dotColumnTop in order to move between the dot rows.

処理中の列番号を追跡するため、列番号は、CurrentCoulmnという名称のレジスタに記録される。センサが次のドット列へ進むたびに、CurrentColumnレジスタをインクリメントする必要がある。CurrentColumnレジスタが最初にインクリメントされとき、それは、−1から0へインクリメントされる(フェーズ1のステップ0を参照)。CurrentColumnレジスタは、(maxColumnsに達したときに)読み出しプロセスを終了するときを決定し、(8ドット列毎に1回ずつ)8ビット全部がバイトに書き込まれた後、DataOutPointerを次のバイト情報の列へ進めるために使用される。下位3ビットは、現在のバイトにどのビットまで入るかを決定する。 To keep track of the column number being processed, the column number is recorded in a register named CurrentCoulmn. Each time the sensor advances to the next dot row, the CurrentColumn register needs to be incremented. When the CurrentColumn register is first incremented, it is incremented from -1 to 0 (see step 0 of phase 1). The CurrentColumn register determines when to terminate the read process (when maxColumns is reached) and after all 8 bits have been written to the byte (once every 8 dot columns), DataOutPointer sets the next byte information Used to advance to row. The lower 3 bits determine how far into the current byte.

ステップ1:Artcardドット列の上端及び下端の検出
Artcardからのドット列を処理するため、列の上端及び下端を検出することが必要である。列は、(局所的な歪み等を除いて)列の上端と下端の間に直線を形成すべきである。初期的に、dotCoulumnTopはクロックマーク列276を指定する。予測値をトグルさせ、予測値をビット履歴に書き込み、ステップ2へ進むだけでよく、その最初のタスクは、列の最初のデータドットに到達するため、Δrow及びΔcolumnの値をdotColumnTopに加算することである。
Step 1: Detection of the upper and lower ends of the Artcard dot row In order to process the dot row from Artcard, it is necessary to detect the upper and lower ends of the row. The column should form a straight line between the top and bottom of the column (except for local distortions etc.). Initially, dotCoulumnTop specifies a clock mark string 276. All you need to do is toggle the prediction value, write the prediction value to the bit history, and proceed to step 2. Its first task is to add the values of Δrow and Δcolumn to dotColumnTop to reach the first data dot in the column It is.

ステップ2:Artcardのドット列を処理
列の上端及び下端の重心が画素座標に与えられたならば、列は、それらの間に歪み等を原因とする変動ができる限り少ない直線を形成する。
Step 2: For Artcard dot rows, if the center of gravity of the top and bottom edges of the processing row is given to the pixel coordinates, the row forms a straight line with as little variation as possible due to distortion or the like between them.

処理が列の上端(上端重心座標)でスタートし、列の下端へ下がる場合を想定すると、後続の予測ドット重心は、
rownext= row + Δrow
columnnext= column + Δcolumn
として与えられる。
Assuming the process starts at the top of the column (top centroid coordinates) and falls to the bottom of the column, the subsequent predicted dot centroid is
row next = row + Δrow
column next = column + Δcolumn
As given.

これは、列の次のドットの予測重心のアドレスを与える。しかし、局部的な歪み及び誤差を考慮するため、直前に所定の行で検出したドットに基づく別のΔrow及びΔcolumnを加算する。このようにして、列の上端から下端を繋ぎ合わせる直線からあるパーセンテージの最大のドリフトに累積する小さいドリフトを考慮することができる。 This gives the address of the predicted centroid of the next dot in the column. However, in order to take into account local distortion and error, another Δrow and Δcolumn based on the dots detected in the predetermined row immediately before are added. In this way, a small drift that accumulates in a percentage of the maximum drift from the straight line joining the top and bottom edges of the column can be taken into account.

したがって、行毎に2個の値を保持するが、行履歴はこのフェーズのステップ3で使用されるので、それらの2個の値は別々のテーブルに格納する:
*Δrow及びΔcolumn(それぞれ2@4ビット=1バイト);
*行履歴 (1行毎に3ビット、1バイト当たり2行が格納される)。
So we keep two values per row, but since the row history is used in step 3 of this phase, we store those two values in separate tables:
* Δrow and Δcolumn (2 @ 4 bits = 1 byte each);
* Line history (3 bits per line, 2 lines per byte are stored).

行毎に、重心への変化を決定するため、Δrow及びΔcolumnを読み出すことが必要である。読み出しプロセスは、帯域幅の5%と2個のキャッシュラインを要する:
76*(3150/32)+2*3150=13824ns=帯域幅の5%。
For each row, it is necessary to read Δrow and Δcolumn to determine the change to the center of gravity. The read process requires 5% of bandwidth and two cache lines:
76 * (3150/32) + 2 * 3150 = 13824 ns = 5% of bandwidth.

重心が決定されると、重心の周辺画素は、ドットの状態、即ち、ビットの値を検出するために調べられる。換言すると、ドットは、4×4画素のエリアを覆う。しかし、ドットの解像度の3倍の解像度でサンプリングしているので、ドットの状態、即ち、ビットの値を検出するために必要な画素数はこれよりも遙かに少ない。1回につきアクセスすべき画素列は、3列に過ぎない。 Once the centroid is determined, the surrounding pixels of the centroid are examined to detect the dot state, ie, the value of the bit. In other words, the dots cover an area of 4 × 4 pixels. However, since sampling is performed at a resolution three times the resolution of the dots, the number of pixels required to detect the dot state, that is, the bit value is much smaller than this. There are only three pixel columns to be accessed at one time.

1%の回転による画素ドリフトのある最悪ケースでは、重心は57画素行毎に1列ずつシフトするが、ドットの直径が3ドットであるため、ある列は、171画素行(3*57)に対して有効であろう。1バイトは2画素を含むので、各バッファ読み出し(4個のキャッシュライン)で有効なバイト数は、最悪の場合に(128の読み出しのうちの)86であろう。 In the worst case with pixel drift due to 1% rotation, the center of gravity shifts by one column every 57 pixel rows, but since the dot diameter is 3 dots, a column is 171 pixel rows (3 * 57) It will be effective against this. Since a byte contains 2 pixels, the number of bytes valid for each buffer read (4 cache lines) would be 86 (out of 128 reads) in the worst case.

ビットが検出されると、ビットはDRAMへ書き出すことが必要である。DRAM遅延を最小限に抑えるため、8列からのビットが隣接したバイトのセットとして格納される。所与のドット列からの全てのビットは、データバイト内の次のビット位置に対応するので、そのバイトの古い値を読み出し、新しいビット内でシフトしOR演算し、そのバイトを書き戻すことが可能である。 When a bit is detected, the bit needs to be written to DRAM. To minimize DRAM delay, bits from 8 columns are stored as a set of adjacent bytes. Every bit from a given dot sequence corresponds to the next bit position in the data byte, so the old value of that byte can be read, shifted and ORed in the new bit, and the byte written back Is possible.

読み出し/シフト及びOR演算/書き込みプロセスは2個のキャッシュラインを必要とする。 The read / shift and OR operation / write processes require two cache lines.

所定の行に対するビット履歴を更新するとき、そのビット履歴を読み出し、書き込むことが必要である。1行当たりに必要なビット履歴は3ビットだけであり、2行の履歴を単一バイトに格納することが可能である。読み出し/シフト及びOR演算/書き込みプロセスは2個のキャッシュラインを必要とする。 When updating the bit history for a given row, it is necessary to read and write that bit history. The bit history required per line is only 3 bits, and two lines of history can be stored in a single byte. The read / shift and OR operation / write processes require two cache lines.

ビット検出及び蓄積のために要する総帯域幅は以下の表に掲載されている。 The total bandwidth required for bit detection and storage is listed in the table below.

Figure 0004309954
ドットの検出
重心を与えるドットの値(即ち、ビットの値)を検出するプロセスは、3個の画素値を検査し、ルックアップテーブルから結果を取得することによって実現される。この処理は、かなり簡単であり、図42に示されている。ドット290の半径は約1.5画素である。したがって、重心を支える画素291は、その画素内の重心の実際の位置とは無関係に、完全にそのドット値であろう。重心が画素291の中心と正確に一致するならば、重心画素の上画素292及び下画素293、並びに、重心画素の左画素294及び右画素295は、大部分そのドット値であろう。重心が画素295の正確な中心から離れているならば、中心画素以外の画素がそのドットによって100%覆われる可能性が高い。
Figure 0004309954
The process of detecting the dot value (ie, bit value) that gives the dot detection centroid is accomplished by examining the three pixel values and obtaining the result from a lookup table. This process is fairly simple and is illustrated in FIG. The radius of the dot 290 is about 1.5 pixels. Thus, the pixel 291 that supports the centroid will be completely its dot value, regardless of the actual position of the centroid within that pixel. If the center of gravity exactly matches the center of the pixel 291, the upper and lower pixels 292 and 293 of the center of gravity pixel and the left and right pixels 294 and 295 of the center of gravity pixel will most likely have their dot values. If the center of gravity is away from the exact center of the pixel 295, the pixels other than the center pixel are likely to be 100% covered by the dot.

図42には、中心の左及び下へ偏っている重心だけが示されているが、同じ関係が中心の上側及び右側の重心に対しても成り立つことは明白である。ケース1では、重心は、中央画素295の中心と正確に一致する。中心画素295はそのドットによって完全に覆われ、上、下、左、及び右の画素もそのドットによって十分に覆われている。ケース2では、重心は、中央画素291の中心の左側にある。中心画素は、依然としてドットによって完全に覆われ、中心の左の画素294はドットによって完全に覆われている。上画素292及び下画素293は依然として十分に覆われている。ケース3では、重心は、中央画素291の中心の下側にある。中心画素291は、依然としてドット291によって完全に覆われ、中心の左の画素はドットによって完全に覆われている。中心の左画素294及び右画素295は依然として十分に覆われている。ケース4では、重心は中央画素の中心の左下にある。中心画素291は依然としてドット291によって完全に覆われ、中心の左画素294、及び中心の下画素294はドットによって完全に覆われている。 FIG. 42 shows only the center of gravity that is biased to the left and down of the center, but it is clear that the same relationship holds for the center of gravity of the upper and right sides of the center. In Case 1, the center of gravity exactly matches the center of the central pixel 295. The center pixel 295 is completely covered by the dot, and the top, bottom, left, and right pixels are also well covered by the dot. In Case 2, the center of gravity is on the left side of the center of the central pixel 291. The center pixel is still completely covered by dots, and the center left pixel 294 is completely covered by dots. The upper pixel 292 and the lower pixel 293 are still sufficiently covered. In case 3, the center of gravity is below the center of the central pixel 291. The center pixel 291 is still completely covered by the dots 291 and the pixel at the center left is completely covered by the dots. The central left pixel 294 and right pixel 295 are still fully covered. In Case 4, the center of gravity is at the lower left of the center of the center pixel. The center pixel 291 is still completely covered by the dot 291 and the center left pixel 294 and the center lower pixel 294 are completely covered by the dot.

重心を更新するアルゴリズムは、以下の3個の代表的な画素を選択し、ドットの値を決定するため、中央画素291の中心から重心までの距離を使用する:
第1画素:重心を含む画素
第2画素:重心のX座標(列値)が<1/2である場合、第1画素の左側の画素であり、さもなければ、第1画素の右側の画素
第3画素:重心のY座標(行値)が<1/2である場合、第1画素の上側の画素であり、さもなければ、第1画素の下側の画素。
The algorithm for updating the centroid selects the following three representative pixels and uses the distance from the center of the central pixel 291 to the centroid to determine the dot value:
First pixel: a pixel including the centroid Second pixel: If the X coordinate (column value) of the centroid is <1/2, it is the pixel on the left side of the first pixel, otherwise the pixel on the right side of the first pixel Third pixel: If the Y coordinate (row value) of the center of gravity is <1/2, it is the pixel above the first pixel, otherwise it is the pixel below the first pixel.

図43に示されるように、各画素の値は、予め計算されたルックアップテーブル301へ出力される。3個の画素は12ビットのルックアップテーブルへ供給され、このルックアップテーブルはドットの値、即ち、オン又はオフを示す単一ビットを出力する。ルックアップテーブル301は、チップ定義時に構築され、約500ゲートにまとめられる。ルックアップテーブルは、簡単な閾値テーブルでもよいが、但し、中心画素(第1画素)は重く重み付けされる。 As shown in FIG. 43, the value of each pixel is output to a lookup table 301 calculated in advance. The three pixels are fed into a 12-bit lookup table, which outputs a single bit indicating the dot value, ie on or off. The look-up table 301 is constructed at the time of chip definition and is grouped into about 500 gates. The lookup table may be a simple threshold table, except that the center pixel (first pixel) is heavily weighted.

ステップ3:列において行毎に重心Δsの更新
Δs処理の考え方は、現在列において、行毎に予測重心位置で完全なドットを生成するため、前のビット履歴を使用することである。実際の(CCDからの)画素は、予測完全画素と比較される。両方が一致する場合、実際の重心位置は正確に予測位置に含まれるので、重心Δsは有効であり、更新する必要がない。さもなければ、予測重心位置を実際のデータに最も良く適合させるため、重心Δsを更新するプロセスを行うことが必要である。新しい重心Δsは次の列のドットを処理するために使用される。
Step 3: The idea of updating the centroid Δs for each row in the column is to use the previous bit history to generate a complete dot at the predicted centroid position for each row in the current column. The actual pixel (from the CCD) is compared with the predicted complete pixel. If both match, the actual centroid position is accurately included in the predicted position, so the centroid Δs is valid and does not need to be updated. Otherwise, it is necessary to perform a process of updating the centroid Δs in order to best fit the predicted centroid position to the actual data. The new centroid Δs is used to process the next row of dots.

重心Δsの更新は、下記の理由で、ステップ2からの後続のプロセスとして実行される:なぜならば、
設計の複雑さを軽減し、それにより、十分な帯域幅が残っているフェーズ1のステップ2として実行でき、DRAMバッファを再使用できるようになり、
重心更新に必要な全てのデータが特殊なパイプライン化を行うことなく、プロセスのスタート時に利用できることが保証されるからである。
The update of the centroid Δs is performed as a subsequent process from step 2 for the following reason:
Reduce design complexity, so that it can be performed as Phase 2 Step 2 with enough bandwidth remaining, allowing DRAM buffers to be reused,
This is because it is guaranteed that all data necessary for the update of the center of gravity can be used at the start of the process without performing special pipelining.

重心Δは、複雑さを低減するため、Δcolumn及びΔrowとして処理される。 The centroid Δ is treated as Δcolumn and Δrow to reduce complexity.

所与のドットは直径が3ドットであるが、4×4の画素エリアに出現する可能性が高い。しかし、あるドットのエッジは、結果的に、次のドットのエッジと同じ画素に含まれる。このため、重心更新のためには、所与の単一ドットに関する情報以外の情報が必要である。 A given dot is 3 dots in diameter, but is likely to appear in a 4 × 4 pixel area. However, the edge of a certain dot is included in the same pixel as the edge of the next dot as a result. For this reason, in order to update the center of gravity, information other than information regarding a given single dot is required.

図44には、前の列からの単一のドット310が所与の重心311と共に示されている。本例では、ドット310は、4個の画素列312から315の範囲にΔが広がり、実際上、前のドット列のドット(座標=(Prevcolumn,
CurrentRow))の一部は、現在行のドットの現在列に入り込んでいる。現在の行及び列のドットが白色であるならば、前の列のドットからのドット情報(現在の列のドットは白色)しか存在しないので、前のドット列から最も右側にある画素列314は小さい値であると予測される。このことから、この画素列315における画素値が高くなればなるほど、重心がより右側になることがわかる。勿論、右側のドットも黒色であるならば、サブピクセルから情報を獲得できないので、重心を調整することができる。同様のことは、ドット座標(Prevcolumn, CurrentRow)における左、上及び下のドットについても成り立つ。
In FIG. 44, a single dot 310 from the previous row is shown with a given center of gravity 311. In this example, the dot 310 has a Δ spread in the range of the four pixel columns 312 to 315, and in fact, the dot (coordinate = (Prevcolumn,
Part of CurrentRow)) is in the current row of dots in the current row. If the current row and column dots are white, there is only dot information from the previous column dot (the current column dot is white), so the pixel column 314 on the rightmost side from the previous dot column is Expected to be small. From this, it can be seen that the higher the pixel value in the pixel row 315, the more the center of gravity is on the right side. Of course, if the dot on the right side is also black, information cannot be obtained from the sub-pixel, so that the center of gravity can be adjusted. The same is true for the left, top and bottom dots in dot coordinates (Prevcolumn, CurrentRow).

このことから、最大で5個の画素列及び画素行が必要であることがわかる。行及び列の重心Δsを別々に考慮し、それらを90度だけ回転した同じ問題として取り扱うことにより、状況を簡単化することが可能である。 This shows that a maximum of five pixel columns and pixel rows are necessary. It is possible to simplify the situation by considering the centroids Δs of the rows and columns separately and treating them as the same problem rotated by 90 degrees.

水平方向のケースを最初に説明すると、予測画素が検出画素と一致しない場合、列重心Δsを変更することが必要である。ビット履歴から、現在ドット列の現在行に対して見つかったビットの値、直前のドット列、及び二つ前のドット列がわかる。予測重心位置もわかっている。これらの二組の情報を使用することにより、読み出しが完全であるならば、20ビットの予測ビットパターンを生成することが可能である。20ビットのビットパターンは水平方向次元で5画素毎の予測Δ値を表現する。1番目のニブルは、最も左側のドットの最も右側の画素を表現する。次の3個のニブルは、前の列からドット310の中心を通る3画素を表現し、最後のニブルは(現在列から)最も右側のドットの最も左側の画素317を表現する。 The horizontal case will be described first. If the predicted pixel does not match the detected pixel, it is necessary to change the column centroid Δs. From the bit history, the value of the bit found for the current row of the current dot row, the immediately preceding dot row, and the previous two dot rows are known. The predicted center of gravity position is also known. By using these two sets of information, it is possible to generate a 20-bit predicted bit pattern if reading is complete. The 20-bit bit pattern represents a predicted Δ value for every five pixels in the horizontal dimension. The first nibble represents the rightmost pixel of the leftmost dot. The next three nibbles represent the three pixels that pass through the center of dot 310 from the previous column, and the last nibble represents the leftmost pixel 317 of the rightmost dot (from the current column).

予測重心が画素の中心である場合、20ビットパターンは以下の表に基づくことが予測される。 If the predicted centroid is the center of the pixel, the 20-bit pattern is predicted to be based on the following table.

Figure 0004309954
中心ドットの左側及び右側の画素は、ビットが0であるか、又は1であるかに応じて、それぞれ、0又はDである。中心の3画素は、ビットが0であるか、又は1であるかに応じて、それぞれ、000又はDFDである。これらの値は、所与の画素に対してドットによって占められた物理的なエリアに基づいている。画素の正確な中心から重心までの距離に依存して、僅かにシフトしたデータを予測し、これは、実際に中心画素の両側の画素だけに影響を与える。16通りの可能性があるので、中心からの距離を16で除算し、予測画素をシフトさせるためその量を使用することができる。
Figure 0004309954
The left and right pixels of the center dot are 0 or D, respectively, depending on whether the bit is 0 or 1. The three central pixels are 000 or DFD, respectively, depending on whether the bit is 0 or 1. These values are based on the physical area occupied by the dots for a given pixel. Depending on the distance from the exact center of the pixel to the center of gravity, slightly shifted data is predicted, which actually affects only the pixels on either side of the center pixel. Since there are 16 possibilities, the distance from the center can be divided by 16 and the amount used to shift the predicted pixel.

20ビットの5個の画素予測値が決定されると、それは読み出された実際の画素と比較される。これは、画素単位で、読み出された実際の画素から予測画素を減算し、最後に、予測Δ値からの距離を獲得するため、それらの差をまとめて加算することにより行われる。 Once the 20-bit predicted pixel value of 5 bits is determined, it is compared with the actual pixel read out. This is performed by subtracting the prediction pixel from the read actual pixel in units of pixels and finally adding the differences together to obtain the distance from the prediction Δ value.

図45は、上記アルゴリズムを実現する一形態の説明図であり、ビット履歴322及び重心小数コンポーネント323を受け取り、対応した20ビットの数324を出力するルックアップテーブル320が含まれ、20ビットの数324は、中心画素入力326から減算321され、画素差327が生成される。 FIG. 45 is an explanatory diagram of an embodiment for realizing the above algorithm, including a look-up table 320 that receives a bit history 322 and a centroid decimal component 323 and outputs a corresponding 20-bit number 324, and includes a 20-bit number. 324 is subtracted 321 from the center pixel input 326 to generate a pixel difference 327.

このプロセスは、予測重心に関して、Δcolumnの量1による重心の左シフト及び右シフトに対して1回ずつ実行される。実際の画素からの差が最も小さい重心は、「勝者」であると見なされ、それに応じてΔcolumnが更新される(「変更無し」が望ましい)。その結果として、Δcolumnは、ドット列毎に1よりも大きく変更されることはない。 This process is performed once for each left and right shift of the center of gravity by an amount of Δcolumn 1 with respect to the predicted center of gravity. The center of gravity with the smallest difference from the actual pixel is considered to be the “winner” and Δcolumn is updated accordingly (“no change” is desirable). As a result, Δcolumn is not changed more than 1 for each dot column.

このプロセスは垂直方向画素に対しても繰り返され、その結果としてΔrowが更新される。 This process is repeated for vertical pixels, and as a result, Δrow is updated.

ここで、並列化できる見通しはかなり高い。ACPユニット31に対して選択されたクロックのレートに依存して、これらのユニットは直列に配置することができ(これにより、3種類のΔのテストは連続したクロックサイクルで行われる)、又は並列に配置することができ、これにより、3種類のテストを同時に行うことができる。クロックレートが十分に高速であるならば、並列化の必要性はない。 Here, the prospect of parallelization is quite high. Depending on the clock rate selected for the ACP unit 31, these units can be placed in series (so that the three Δ tests are performed in consecutive clock cycles) or in parallel. Thus, three types of tests can be performed simultaneously. If the clock rate is fast enough, there is no need for parallelization.

帯域幅初期化
Δsの古いΔを読み出し、それらを再度書き出すことが必要である。これは、帯域幅の10%を要する:
2*(76(3150/32)+2*3150)=27648ns=帯域幅の10%。
It is necessary to read the old Δs of bandwidth initialization Δs and write them again. This requires 10% of the bandwidth:
2 * (76 (3150/32) + 2 * 3150) = 27648 ns = 10% of bandwidth.

Δsを更新するとき、所与の列のビット履歴を読み出すことが必要である。各バイトは2個の行のビット履歴を含むので、帯域幅の2.5%を要する:
76((3150/32)/2)32)+2*(3150/2)=4085ns=帯域幅の2.5%。
When updating Δs, it is necessary to read the bit history of a given column. Since each byte contains two rows of bit history, it takes 2.5% of the bandwidth:
76 ((3150/32) / 2) 32) + 2 * (3150/2) = 4085 ns = 2.5% of the bandwidth.

1%の回転によって画素がドリフトする最悪ケースでは、重心は57画素行毎に1列だけシフトするが、ドットの直径は3画素であるため、所与の画素列は、181画素行(3*57)に対して有効である。バイトは2画素を収容するので、キャッシュ読み出しにおいて有効なバイト数は最悪のケースで(128回の読み出しのうちの)86である。5列に対する最悪ケースのタイミングは、したがって、31%帯域幅である:
5*(((9450/(128*2))*320)*128/86)=88112ns=帯域幅の31%。
In the worst case where the pixel drifts with 1% rotation, the centroid shifts by one column every 57 pixel rows, but the dot diameter is 3 pixels, so a given pixel column is 181 pixel rows (3 * 57). Since a byte contains 2 pixels, the number of bytes valid for a cache read is 86 (out of 128 reads) in the worst case. The worst case timing for 5 columns is therefore 31% bandwidth:
5 * (((9450 / (128 * 2)) * 320) * 128/86) = 88112 ns = 31% of the bandwidth.

重心Δを更新するために必要な総帯域幅は以下の表に掲載されている。 The total bandwidth required to update the center of gravity Δ is listed in the table below.

Figure 0004309954
フェーズ2のメモリ使用量
2MBのビットイメージDRAMエリアは、フェーズ2処理中に読み書きされる。2MB画素データDRAMエリアは読まれる。
Figure 0004309954
The bit image DRAM area with 2 MB of memory usage in phase 2 is read and written during phase 2 processing. The 2MB pixel data DRAM area is read.

0.5MBのスクラッチDRAMエリアは行データを格納するため使用される。即ち、 The 0.5 MB scratch DRAM area is used to store row data. That is,

Figure 0004309954
フェーズ3−生データのスクランブル解除及びXOR演算
図37を参照すると、復号化の次のステップは、生データのスクランブル解除及びXOR演算である。Artcardから取得されるような2MBバイト画像は、スクランブル処理され、XOR演算された形式である。これは、フェーズ4におけるリード・ソロモンデコーダに必要なビットイメージを得るためにスクランブル解除及び再XOR演算を必要とする。
Figure 0004309954
Phase 3-Raw Data Descramble and XOR Operation Referring to FIG. 37, the next step of decoding is the raw data descrambling and XOR operation. A 2 MB byte image as obtained from Artcard is in a format that has been scrambled and XORed. This requires a descrambling and re-XOR operation to obtain the bit image required for the Reed-Solomon decoder in phase 4.

図46を参照すると、スクランブル解除プロセス330は、2MBのスクランブル付きのバイト画像331を取得し、スクランブル解除された2MB画像332を書き込む。このプロセスは、同じ場所で合理的に実行することが不可能であるため、2組の2MBエリアが利用される。スクランブル付きのデータ331は、16×16配列に並べられたシンボルブロック順であり、シンボルブロック0(334)は、ランダムな順序の、あらゆる符号語からの全てのシンボル0を含む。シンボルブロック1は、ランダムな順序で全ての符号語からの全てのシンボル1を含み、以下同様である。255個のシンボルしかないので、256番目のシンボルブロックは、現時点では使用されない。 Referring to FIG. 46, the descrambling process 330 obtains a 2 MB scrambled byte image 331 and writes the descrambled 2 MB image 332. Since this process cannot be reasonably performed at the same location, two sets of 2MB areas are utilized. The scrambled data 331 is in symbol block order arranged in a 16 × 16 array, and symbol block 0 (334) includes all symbols 0 from any codeword in random order. Symbol block 1 includes all symbols 1 from all codewords in random order, and so on. Since there are only 255 symbols, the 256th symbol block is not used at this time.

線形フィードバックシフトレジスタは、シンボルブロック、例えば、シンボルブロック334内の位置と、そのシンボルブロックが由来する符号語、例えば、符号語355との間の関係を決定するため使用される。これは、元のArtcard画像を生成したときと同じシードが使用される限り機能する。時間のボトルネックは、DRAMの非順次アドレスへの読み出し/書き込みの準備完了を待機することであるため、他のソースラインからのバイトと、0xAA及び0x55とのXOR演算は、(時間的に)実質的に制約がない。 The linear feedback shift register is used to determine the relationship between a position in a symbol block, eg, symbol block 334, and the codeword from which the symbol block is derived, eg, codeword 355. This works as long as the same seed is used as when the original Artcard image was generated. Since the time bottleneck is to wait for read / write readiness to DRAM non-sequential addresses, the XOR operation of bytes from other source lines and 0xAA and 0x55 is (temporally) There are virtually no restrictions.

スクランブル解除及びXOR演算プロセスのタイミングは、実質的に、2MBのランダムバイト読み出しと、2MBのランダムバイト書き込みであり、即ち、
2*(2MB*76ns+2MB*2ns)=327155712ns、つまり、約0.33秒である。このタイミングはキャッシュ処理を想定していない。
The timing of the descrambling and XOR operation process is essentially a 2MB random byte read and a 2MB random byte write, ie
2 * (2 MB * 76 ns + 2 MB * 2 ns) = 327155571 ns, that is, about 0.33 seconds. This timing does not assume cache processing.

フェーズ4−リード・ソロモン復号
このフェーズはループであり、ビットイメージ内のデータのコピーに対して繰り返され、復号が成功するか、又は復号しようとするコピーが無くなるまで、データのコピーをリード・ソロモン復号モジュールへ送る。
Phase 4-Reed-Solomon Decoding This phase is a loop and is repeated for the copy of data in the bit image, and the copy of the data is reed-Solomon until decoding is successful or there are no more copies to decode. Send to decryption module.

使用されるリード・ソロモンデコーダは、適切にプログラミングされたVLIWプロセッサでもよく、或いは、LSIロジックのL64712のような別個のハードワイヤードでもよい。L64712は、1秒当たり50Mビット(毎秒約6.25MB)のスループットを備えているので、時間は、2MBの読み出し及び1MBの書き込みのためのメモリアクセス時間(順次アクセスの場合500MB/秒)ではなく、むしろ、リード・ソロモンデコーダの速度によって制約される。最悪ケースで要する時間は、2/6.25秒=約0.32秒である。 The Reed-Solomon decoder used may be a properly programmed VLIW processor, or it may be a separate hardwired such as L64712 of LSI logic. L64712 has a throughput of 50 Mbits per second (about 6.25 MB per second), so the time is not the memory access time for 2 MB read and 1 MB write (500 MB / second for sequential access) Rather, it is constrained by the speed of the Reed-Solomon decoder. The time required in the worst case is 2 / 6.25 seconds = about 0.32 seconds.

フェーズ5 Varkスクリプトの実行
Artcard9を読み出し、それを復号化するために要する総時間は、約2.15秒である。ユーザにとっての明らかな遅れは、実際には、0.65秒(フェーズ3及び4の合計)に過ぎない。なぜならば、Artcardは、1.5秒後に動きを止めるからである。
Phase 5 execution of Vark script The total time required to read Artcard 9 and decrypt it is about 2.15 seconds. The apparent delay for the user is actually only 0.65 seconds (sum of phases 3 and 4). This is because Artcard stops moving after 1.5 seconds.

Artcardがロードされると、Artvarkスクリプトは解釈される。直ちにスクリプトを実行するのではなく、スクリプトは、「プリント」」ボタン13(図1)を押したときに限り実行される。スクリプトを実行するために取られる措置は、スクリプトの複雑さに大きく依存し、プリントボタン及び実際のプリントボタンを押下し、実際のプリントが行われるまでの間に認識される遅れを考慮しなければならない。 When Artcard is loaded, the Artvark script is interpreted. Instead of executing the script immediately, the script is executed only when the “print” button 13 (FIG. 1) is pressed. The action taken to execute the script is highly dependent on the complexity of the script and must take into account the perceived delay between pressing the print button and the actual print button and the actual printing being performed. Don't be.

代替Artcardフォーマット
勿論、他のartcardのフォーマットも考えられる。以下では、多数の好適な特徴を備えたこのような新しい代替artcardフォーマットについて説明する。以下では、代替Artcardデータフォーマット、ユーザデータを代替Artcard上のドットにマッピングする機構、及びリソースが不足している組込型システムで使用するための高速代替Artcard読み出しアルゴリズムを説明する。
Alternative Artcard formats Of course, other artcard formats are also contemplated. The following describes such a new alternative artcard format with a number of preferred features. The following describes an alternative Artcard data format, a mechanism for mapping user data to dots on the alternative Artcard, and a fast alternative Artcard read algorithm for use in embedded systems that lack resources.

代替Artcardの概要
代替Artcardは、組込型アプリケーション及びPC型アプリケーションの両方で使用され、大容量のデータ又はコンフィギュレーション情報への使い易いインタフェースを提供する。
Alternative Artcard Overview Alternative Artcard is used in both embedded and PC-type applications and provides an easy-to-use interface to large amounts of data or configuration information.

代替Artcardの裏面は(データを保存するので)アプリケーションとは無関係に同一の外観を有するが、代替Artcardの表面はアプリケーションに依存している。表面はアプリケーションとの関係においてユーザに意味がなければならない。 The backside of the alternative Artcard has the same appearance regardless of the application (since it stores data), but the surface of the alternative Artcard is application dependent. The surface must be meaningful to the user in relation to the application.

代替Artcard技術は、印刷解像度とは独立にすることができる。カード上にドットとしてデータを保存する考え方は、(解像度を上げることによって)同じ空間により多くのドットを配置することができるならば、それらのドットがより多くのデータを表現し得るということを意味するに過ぎない。好適な実施例は、例示的なArtcardとしての86mm×55mmカード上で1600dpiの印刷を利用することを想定するが、他の等価的なレイアウト、他のカードサイズのためのデータサイズ、及び/又は、他の印刷解像度に決定することは容易である。印刷解像度とは無関係に、読み出し技術はそのまま維持される。全ての復号化及びその他のオーバーヘッドを考慮した後、代替Artcardは、1600dpiまでの印刷解像度で、最大で1メガバイトのデータを保存することが可能である。代替Artcardは、1600dpiを超える印刷解像度で、数メガバイトのデータを保存することが可能である。以下の二つの表は、ある印刷解像度に対する代替Artcardの実効データ記憶容量を要約するものである。 Alternative Artcard technology can be independent of print resolution. The idea of storing data as dots on the card means that if more dots can be placed in the same space (by increasing the resolution), those dots can represent more data. Just do it. The preferred embodiment assumes that 1600 dpi printing is utilized on an exemplary Artcard 86 mm × 55 mm card, but other equivalent layouts, data sizes for other card sizes, and / or It is easy to determine other printing resolutions. Regardless of the print resolution, the reading technique is maintained as it is. After considering all decoding and other overheads, the alternative Artcard can store up to 1 megabyte of data at a print resolution up to 1600 dpi. The alternative Artcard is capable of storing several megabytes of data at a print resolution in excess of 1600 dpi. The following two tables summarize the effective data storage capacity of alternative Artcards for a given print resolution.

代替Artcardのフォーマット
代替Artcard上のデータ構造は、データの復元を補助するため特別に設計されている。このセクションは代替Artcardのデータ(裏)面のフォーマットを説明する。
Alternative Artcard Format The data structure on the alternative Artcard is specially designed to assist in data recovery. This section describes the alternate Artcard data (back) format.

ドット
代替Artcardのデータ面のドットはモノクロでもよい。例えば、黒色ドットが、所定の望ましい印刷解像度で白色背景に印刷される。その結果として、「黒色ドット」は物理的に「白色ドット」から区別される。図47には、黒色ドット及び白色ドットの拡大図の様々な例が示されている。白色背景上の黒色ドットのモノクロ方式は、好ましくは、ブラー効果のある読み出し環境においてダイナミックレンジを最大にするために選択される。黒色ドットが特定のピッチ(例えば、1600dpi)で印刷されているとしても、ドット自体は、ドットが隣接させて印刷されたときに、隣接した直線が作成されるように、少し大きくされる。ドットは、実際には滲みの結果として一つに併合されるかもしれないが、図47の例示的な画像では併合されていない。黒色のキザキザはもっと取り除かれるであろう。好適な実施例に記述された代替Artcardは、ドットサイズの柔軟に変化することを許容するが、最良の結果を得るためには、正確なドットサイズ、及び特定の印刷技術用のインク/印刷動作をより詳細に調べるべきである。
The dots on the data surface of the dot replacement Artcard may be monochrome. For example, black dots are printed on a white background with a predetermined desired print resolution. As a result, “black dots” are physically distinguished from “white dots”. FIG. 47 shows various examples of enlarged views of black dots and white dots. A monochrome scheme of black dots on a white background is preferably selected to maximize dynamic range in a blurry readout environment. Even if black dots are printed at a specific pitch (eg, 1600 dpi), the dots themselves are made slightly larger so that when the dots are printed adjacent to each other, an adjacent straight line is created. The dots may actually be merged together as a result of bleeding, but are not merged in the exemplary image of FIG. The black bruise will be removed more. The alternative Artcard described in the preferred embodiment allows the dot size to change flexibly, but for best results the exact dot size and ink / printing behavior for a particular printing technology Should be examined in more detail.

このArtcardの実施例の説明中、用語ドットは、代替Artcard上に物理的に印刷されたドット(インク、熱、電子写真、ハロゲン化銀等)を意味する。代替Artcardリーダーが代替Artcardを走査するとき、ドットは、ナイキストの定理を充たすために、少なくとも印刷された解像度の2倍でサンプリングされる必要がある。用語画素は、代替Artcardリーダー装置からのサンプル値を意味する。例えば、1600dpiのドットが4800dpiで走査されるとき、ドットの各次元に3個の画素、即ち、1ドット当たりに9個の画素が存在する。サンプリングプロセスは後述される。 In the description of this Artcard embodiment, the term dot refers to a dot (ink, heat, electrophotography, silver halide, etc.) that is physically printed on an alternative Artcard. When the alternate Artcard reader scans the alternate Artcard, the dots need to be sampled at least twice the printed resolution to satisfy the Nyquist theorem. The term pixel means a sample value from an alternative Artcard reader device. For example, when a 1600 dpi dot is scanned at 4800 dpi, there are 3 pixels in each dimension of the dot, ie, 9 pixels per dot. The sampling process will be described later.

図48を参照すると、典型的な代替Artcardのデータ面1101が示されている。各代替Artcardは、白色境界領域1103によって囲まれた「アクティブ」領域1102により構成される。白色境界1103は、データ情報を格納しないが、代替Artcardリーダーによってホワイトレベルを較正するため使用される。アクティブ領域は、データブロック、例えば、1104の配列であり、各データブロックは、8個の白色ドット、例えば、1106のギャップによって隣のデータブロックから分離されている。印刷解像度に依存して、代替Artcard上のデータブロック数は変化する。1600dpiの代替Artcard上で、配列は8×8でもよい。各データブロック1104は、627×394ドットの次元を有する。ブロック間ギャップ1106が8白色ドットである場合、代替Artcardのアクティブエリアは、5072×3208ドット(1600dpiのとき、8.1mm×5.1mm)である。 Referring to FIG. 48, a typical alternative Artcard data plane 1101 is shown. Each alternative Artcard is constituted by an “active” area 1102 surrounded by a white border area 1103. White boundary 1103 does not store data information, but is used to calibrate the white level by alternative Artcard readers. The active area is an array of data blocks, eg 1104, each data block separated from the next data block by a gap of 8 white dots, eg 1106. Depending on the print resolution, the number of data blocks on the alternative Artcard changes. On a 1600 dpi alternative Artcard, the array may be 8x8. Each data block 1104 has a dimension of 627 × 394 dots. When the inter-block gap 1106 is 8 white dots, the active area of the alternative Artcard is 5072 × 3208 dots (8.1 mm × 5.1 mm at 1600 dpi).

データブロック
図49を参照すると、単一のデータブロック1107が示されている。代替Artcardのアクティブ領域は、同一構造のデータブロック1107の配列により構成される。各データブロックの構造は、クロックマーク1109によって囲まれたデータ領域1108と、境界1110と、Target1111である。データ領域は、符号化データだけを含み、クロックマーク、境界、及びターゲットは、特に、データ領域の位置検出を補助し、領域内からのデータの正確な復元を保証するために設けられる。
Data Block Referring to FIG. 49, a single data block 1107 is shown. The active area of the alternative Artcard is configured by an array of data blocks 1107 having the same structure. The structure of each data block is a data area 1108 surrounded by a clock mark 1109, a boundary 1110, and a Target 1111. The data area contains only encoded data, and clock marks, boundaries, and targets are provided specifically to assist in the location of the data area and to ensure accurate restoration of the data from within the area.

各データブロック1107の次元は、627×934ドットである。この中で、595×384ドットの中央エリアはデータ領域1108である。周囲ドットは、クロックマーク、境界、及びターゲットを保持するため使用される。 Each data block 1107 has a dimension of 627 × 934 dots. Among these, the central area of 595 × 384 dots is the data area 1108. Surrounding dots are used to hold clock marks, boundaries, and targets.

境界及びクロックマーク
図50はデータブロックを示し、図51及び図52は、そのデータブロックの拡大エッジ部分を示す。図51及び図52に示されるように、二つの5ドット高の境界及びクロックマーク領域1170及び1177が各データブロックに存在し、一方はデータ領域の上方に、もう一方はデータ領域の下側にある。例えば、上端の5ドット高領域は、(データブロックの長辺を引き延ばす)外側黒色ドット境界線1112と、(境界線が独立していることを保証する)白色ドット分離線1113と、3ドット高のクロックマークの組1114と、により構成される。クロックマークは、白色及び黒色行の間で交互に代わり、黒色ブロックの両端から8番目の列で黒色クロックマークから始まる。クロックマークドットとデータ領域内のドットとの間は分離されていない。
Boundary and clock mark FIG. 50 shows a data block, and FIGS. 51 and 52 show an enlarged edge portion of the data block. As shown in FIGS. 51 and 52, two 5-dot high boundaries and clock mark areas 1170 and 1177 exist in each data block, one above the data area and the other below the data area. is there. For example, the top 5 dot high region has an outer black dot border 1112 (extending the long side of the data block), a white dot separation line 1113 (guaranteing that the border is independent), and a 3 dot height. And a set 1114 of clock marks. The clock marks alternate between white and black rows, starting with black clock marks in the eighth column from both ends of the black block. There is no separation between the clock mark dots and the dots in the data area.

クロックマークは、代替Artcardが180度回転させて挿入された場合に、同じ相対的な境界/クロックマーク領域が出現するという点で対称性がある。境界1112、1113は、データがデータ領域から読み出されるときに、垂直方向に追従するため、代替Artcardが使用することを意図されている。クロックマーク1114は、データがデータ領域から読み出されるときに、水平方向に追跡することが意図されている。白色のドット直線による境界とクロックマークの分離は、読み取り中にブラー効果が発生する結果として望ましい。境界は、このようにして、両側が白色の黒色直線になり、読み出し時の周波数応答の改良に役立つ。白色と黒色の間で交互に代わるクロックマークは、垂直次元ではなく、水平次元である点を除いて、類似した結果を生ずる。任意の代替Artcardは、追跡のために使用することを意図しているならば、クロックマーク及び境界の位置を見つけなければならない。次のセクションは、クロックマーク、境界及びデータへの方向を示すため設計されたターゲットを取り扱う。 The clock marks are symmetric in that the same relative boundary / clock mark region appears when the alternate Artcard is inserted rotated 180 degrees. The boundaries 1112 and 1113 are intended to be used by alternative Artcards to follow the vertical direction when data is read from the data area. The clock mark 1114 is intended to track horizontally as data is read from the data area. Separation of the boundary from the white dot line and the clock mark is desirable as a result of the blur effect occurring during reading. The boundary thus becomes a white black line on both sides, which helps to improve the frequency response during readout. A clock mark that alternates between white and black produces a similar result, except that it is a horizontal dimension, not a vertical dimension. Any alternative Artcard must find the location of clock marks and boundaries if it is intended to be used for tracking. The next section deals with targets designed to show clock marks, boundaries and directions to data.

ターゲット領域内のターゲット
図54に示されるように、二つの15ドット幅のターゲット領域1116及び1117が各データブロックに存在する。一方はデータ領域の左側に存在し、他方はデータ領域の右側に存在する。ターゲット領域は、方位のため使用される1列のドットによってデータ領域から分離される。ターゲット領域1116及び1117の目的は、クロックマーク、境界、及びデータ領域までの進み方を指定することである。各ターゲット領域は、6個のターゲット、例えば、1118を含み、6個のターゲットは、代替Artcardリーダーによって簡単に検出できるように設計される。次に、図53を参照すると、単一Target1120の構造が示されている。各Target1120は、15×15ドットの黒色正方形であり、中心構造1121とランレングス符号化ターゲット番号1122と、を含む。中心構造1121は、単純な白色十字であり、ターゲット番号コンポーネント1122は、単純な2列の白色ドットであり、各列はターゲット番号の各部分に対し2ドットの長さである。したがって、ターゲット番号1のターゲットidの1122は2ドットの長さであり、ターゲット番号2のターゲットidの1122は4ドット幅であり、以下同様に続く。
Target in Target Area As shown in FIG. 54, two 15-dot wide target areas 1116 and 1117 exist in each data block. One is on the left side of the data area and the other is on the right side of the data area. The target area is separated from the data area by a row of dots used for orientation. The purpose of the target areas 1116 and 1117 is to specify the clock marks, boundaries, and how to go to the data area. Each target region includes 6 targets, eg, 1118, which are designed to be easily detectable by an alternative Artcard reader. Next, referring to FIG. 53, the structure of a single Target 1120 is shown. Each Target 1120 is a black square of 15 × 15 dots, and includes a central structure 1121 and a run-length encoded target number 1122. The central structure 1121 is a simple white cross, the target number component 1122 is a simple two rows of white dots, and each row is two dots long for each portion of the target number. Accordingly, target id 1122 for target number 1 is 2 dots long, target id 1122 for target number 2 is 4 dots wide, and so on.

図54に示されるように、ターゲットは、カード挿入に関して回転不変性を有するように配置される。即ち、左のターゲットと右のターゲットは、180度回転している点を除いて同じである。左のターゲット領域1116において、ターゲットは、Target1から6が上端から下端へそれぞれ位置決めされるように配置される。右のターゲット領域において、ターゲットは、ターゲット番号1から6が下端から上端へ位置決めされるように配置される。ターゲット番号idは、常に、データ領域までの半分のところにある。図54の拡大部分図は、右のターゲットが、180度回転している点を除いて、左のターゲットと同一である様子を明瞭に示している。 As shown in FIG. 54, the target is positioned to have rotational invariance with respect to card insertion. That is, the left target and the right target are the same except that they are rotated 180 degrees. In the left target area 1116, the targets are arranged such that Target1 to 6 are positioned from the upper end to the lower end, respectively. In the right target area, the targets are arranged such that target numbers 1 to 6 are positioned from the lower end to the upper end. The target number id is always half way up to the data area. The enlarged partial view of FIG. 54 clearly shows that the right target is identical to the left target except that it is rotated 180 degrees.

図55に示されるように、Target1124及び1125は、特に、中心が55ドット離されてターゲット領域内に配置される。その上、Target1(1124)の中心から上部クロックマーク領域の第1のクロックマークドット1126までの距離は55ドットであり、ターゲットの中心から下部クロックマーク領域の第1のクロックマークドット(図示せず)までの距離は55ドットである。両方の領域の第1の黒色クロックマークは、ターゲット中心とちょうど一致して始まる(8番目のドット位置は15ドット幅のターゲットの中心である)。 As shown in FIG. 55, Targets 1124 and 1125 are particularly arranged in the target area with the center being 55 dots apart. In addition, the distance from the center of Target1 (1124) to the first clock mark dot 1126 in the upper clock mark area is 55 dots, and the first clock mark dot (not shown) in the lower clock mark area from the center of the target. ) Is 55 dots. The first black clock mark in both areas starts exactly coincident with the target center (the eighth dot position is the center of the 15 dot wide target).

図55の略構成図には、ターゲット中心の間の距離と、上部境界/クロックマーク領域内オンTarget1(1124)から第1の黒色クロックマーク(1126)の第1のドットまでの距離が示されている。上部及び下部の両方のターゲットからクロックマークまでの距離は55ドットであり、代替Artcardの両側は対称性があるため(180度回転しているため)、カードは、左から右へ、又は右から左へ読み出される。読み出し方向とは無関係に、方位はデータ領域からデータを抽出するため決定する必要がない。 The schematic block diagram of FIG. 55 shows the distance between the target centers and the distance from the upper boundary / clock mark area ON Target1 (1124) to the first dot of the first black clock mark (1126). ing. Since the distance from both the top and bottom targets to the clock mark is 55 dots and both sides of the alternate Artcard are symmetrical (rotated 180 degrees), the card is from left to right or from right Read to the left. Regardless of the readout direction, the orientation need not be determined to extract data from the data area.

方位列
図56に示されるように、各データブロックには2個の1ドット幅の方位列1127及び1128が存在する。一方はデータ領域の直ぐ左側にあり、他方はデータ領域の直ぐ右側にある。方位列は、代替Artcardリーダーに方向情報を与えるため設けられる。(左ターゲットの右にある)データ領域の左側には、単一の白色ドット列1127が隣接する。(右ターゲットの左にある)データ領域の右側には、単一の黒色ドット列1128が隣接する。ターゲットは回転不変性があるので、これらの二つのドット列によって、代替Artcardリーダーは、代替Artcardの方向、即ち、カードが正しく挿入されたか、又は逆向きに挿入されたかを決定できるようになる。代替Artcardの観点からは、ドットの劣化が無いと仮定すると、次の二つの可能性が存在する。即ち:
*データ領域の左側のドット列が白色であり、データ領域の右側の列が黒色であるならば、リーダーは、カードが書き込まれたときと同じように挿入されたことを認識する;
*データ領域の左側のドット列が黒色であり、データ領域の右側の列が白色であるならば、リーダーは、カードが後ろ向きに挿入され、データ領域がそれに応じて回転していることを認識する。リーダーは、代替Artcardから正しく情報を復元するため、適切な動作を選択しなければならない。
As shown in FIG. 56, each data block has two 1-dot width orientation rows 1127 and 1128. One is immediately to the left of the data area and the other is to the right of the data area. An orientation column is provided to provide direction information to the alternative Artcard reader. A single white dot row 1127 is adjacent to the left of the data area (on the right of the left target). A single black dot row 1128 is adjacent to the right side of the data area (to the left of the right target). Since the target is rotationally invariant, these two dot rows allow the alternate Artcard reader to determine the alternate Artcard direction, ie, whether the card was inserted correctly or reversely. From the standpoint of alternative Artcard, assuming there is no dot degradation, there are two possibilities: That is:
* If the dot column on the left side of the data area is white and the column on the right side of the data area is black, the reader recognizes that the card was inserted as it was written;
* If the dot column on the left side of the data area is black and the column on the right side of the data area is white, the reader recognizes that the card is inserted backwards and the data area is rotated accordingly. . The leader must select the appropriate action to correctly restore information from the alternate Artcard.

データ領域
図57に示されるように、データブロックのデータ領域は、各列が384ドットを含む595列により構成され、全部で228480ドットがある。これらのドットは、原データを得るために、解釈され、復号化される。各ドットは単一ビットを表現するので、228480ドットは228480ビット、即ち、28560バイトを表現する。各ドットの解釈は以下の通りである。
Data Area As shown in FIG. 57, the data area of the data block is composed of 595 columns each including 384 dots, and there are 228480 dots in total. These dots are interpreted and decoded to obtain the original data. Since each dot represents a single bit, 228480 dots represent 228480 bits, or 28560 bytes. The interpretation of each dot is as follows.

Figure 0004309954
しかし、ドットから得られたビットの実際の解釈は、原データから代替Artcardのデータ領域内のドットへのマッピングの理解が必要である。
Figure 0004309954
However, the actual interpretation of the bits obtained from the dots requires an understanding of the mapping from the original data to the dots in the data area of the alternative Artcard.

原データのデータ領域ドットへのマッピング
次に、最大サイズが910082バイトの原データファイルを取得し、それを、1600dpi代替Artcard上の64個のデータブロックのデータ領域内のドットへマッピングするプロセスを説明する。代替Artcardリーダーは、代替Artcard上のドットから原データを抽出するためこのプロセスを逆転するであろう。一見して、データをドットにマッピングすることは簡単なことに思われ、即ち、2値データは1と0により構成されるので、黒色ドット及び白色ドットを簡単にカードに書き込むことができるであろう。しかし、この方式は、インクがフェイドし、カードの一部がごみ、汚れ、或いは、場合によっては傷によって損なわれることを許容しない。誤り検出符号化を行わない限り、カードから取得されたデータが正確であるかどうかを検出する方法は無い。更に、冗長符号化を行わない限り、検出された誤りを正す方法はない。したがって、マッピングプロセスの目的は、データ復元を非常に確実に行い、代替Artcardリーダーに、データを正しく読み出したことを認識する能力を与えることである。
Mapping of original data to data area dots Next, a process of acquiring an original data file having a maximum size of 910082 bytes and mapping it to dots in the data area of 64 data blocks on the 1600 dpi alternative Artcard will be described. To do. The alternate Artcard reader will reverse this process to extract the raw data from the dots on the alternate Artcard. At first glance, it seems simple to map data to dots, ie binary data consists of 1s and 0s, so black and white dots can be easily written to the card. Let's go. However, this scheme does not allow ink to fade and a portion of the card to be damaged by dirt, smudges, or even scratches. There is no way to detect whether the data acquired from the card is accurate unless error detection coding is performed. Further, there is no way to correct detected errors unless redundant coding is performed. Thus, the purpose of the mapping process is to ensure data recovery very reliably and to give the alternative Artcard reader the ability to recognize that the data has been read correctly.

原データファイルをデータ領域ドットへマッピングするために、以下の三つの基本的なステップが関係する:
*原データを冗長符号化する;
*局部的に生じた代替Artcardの損傷の影響を低減するため、符号化データをシ決定論的にャッフルする;
*シャッフルされた符号化データをドットとして代替Artcardのデータブロックに書き込む。
There are three basic steps involved in mapping an original data file to data region dots:
* Redundant encoding of the original data;
* Sequentially shuffle the encoded data to reduce the effects of locally-generated alternative Artcard damage;
* Write the shuffled encoded data as dots in the alternate Artcard data block.

これらの各ステップは以下のセクションで詳細に考察される。 Each of these steps is discussed in detail in the following sections.

リード・ソロモン符号化を使用する冗長符号
データの代替Artcardへのマッピングは、冗長符号化を利用する方法に大きく依存している。バースト誤りを取り扱い、最小限の冗長性で効率的に誤りを検出し訂正する能力を備えているリード・ソロモン符号化を選択する方が好ましい。リード・ソロモン符号化は、Wicker,
S. と Bhargava,
V. による'&apos;Reed−Solomon Codes and
their Application'&apos;,IEEE Press, 1994、Rorabaugh,
Cによる'&apos;Error Coding Cookbook'&apos;,McGraw−Hill,
1994、及びLyppens, H.による'&apos;Reed−Solomon Error
Correction'&apos;,De. Dobb's Journal,
Volume 22,
Issue 1,
January 1997のような標準的なテキストで適切に説明されている。
The mapping of redundant code data using Reed-Solomon coding to alternative Artcards is highly dependent on the method of using redundant coding. It is preferable to select a Reed-Solomon encoding that handles burst errors and has the ability to efficiently detect and correct errors with minimal redundancy. Reed-Solomon coding is based on Wicker,
S. And Bhargava,
V. By '&apos; Reed-Solomon Codes and
therir application '', IEEE Press, 1994, Rorabaugh,
'' Error Coding Cookbook 'by C, McGraw-Hill,
1994, and Lyppens, H. et al. By '' Reed-Solomon Error
Correction '', De. Dobb's Journal,
Volume 22,
Issue 1,
It is properly described in standard texts such as January 1997.

リード・ソロモン符号化用の様々なパラメータを使用することが可能であり、異なるシンボルサイズ及び異なる冗長性レベルが含まれる。好ましくは、以下の符号化パラメータ、
*m=8
*t=64
が使用される。
Various parameters for Reed-Solomon encoding can be used, including different symbol sizes and different redundancy levels. Preferably, the following encoding parameters:
* M = 8
* T = 64
Is used.

m=8とすることは、シンボルサイズが8ビット(1バイト)であることを意味する。また、リード・ソロモン符号化されたブロックサイズnは255バイト(28−1シンボル)であることを意味する。最大でt個のシンボルの訂正を行うため、最終的なブロックサイズで2t個のシンボルが冗長シンボルを用いて採用されなければならない。t=64とすることは、誤りがある場合に、1ブロック毎に64バイト(シンボル)を訂正可能であることを意味する。255バイトの各ブロックは、128(2×64)冗長バイトを有し、残りの127バイト(k=127)は原データを保持するため使用される。このようにして、
*n=255
*k=127
である。
Setting m = 8 means that the symbol size is 8 bits (1 byte). The Reed-Solomon encoded block size n means 255 bytes (2 8 -1 symbols). In order to correct up to t symbols, 2t symbols in the final block size must be employed using redundant symbols. T = 64 means that 64 bytes (symbol) can be corrected for each block when there is an error. Each block of 255 bytes has 128 (2 × 64) redundant bytes, and the remaining 127 bytes (k = 127) are used to hold the original data. In this way
* N = 255
* K = 127
It is.

実際の結果では、127バイトの原データが符号化され、255バイトブロックのリード・ソロモン符号化データが得られる。符号化された255バイトブロックは、代替Artcard上に記憶され、その後、代替Artcardリーダーの復号化によって元の127バイトに戻される。データブロックのデータ領域の単一列内の384ドットは、48バイト(384/8)を保持し得る。595列は28560バイトを保持し得る。これは、112個のリード・ソロモンブロックに達する(各ブロックは255バイトを含む)。完全な代替Artcardの64個のデータブロックは、全部で7168個のリード・ソロモンブロック(1リード・ソロモンブロック当たりに255バイトのとき、1827840バイト)を保持し得る。7168個のリード・ソロモンブロックのうちの2個は、制御情報のため確保されるが、残りの7166個はデータを記憶するため使用される。各リード・ソロモンブロックは127バイトの実際のデータを保持し、代替Artcard上に記憶できるデータの総量は910082バイト(7166×27)である。原データがこの総量未満である場合、データは、正確な個数のリード・ソロモンブロックに適合させるため、符号化することができ、次に、符号化されたブロックは、7166個の全てが使用されるまで複製可能である。図58は利用される符号化の全体的な形態の説明図である。 In actual results, the 127-byte original data is encoded, and a 255-byte block of Reed-Solomon encoded data is obtained. The encoded 255-byte block is stored on the alternate Artcard and then returned to the original 127 bytes by decoding the alternate Artcard reader. 384 dots in a single row of the data area of the data block can hold 48 bytes (384/8). The 595 column can hold 28560 bytes. This amounts to 112 Reed-Solomon blocks (each block contains 255 bytes). The 64 data blocks of a complete alternative Artcard can hold a total of 7168 Reed-Solomon blocks (1827840 bytes when 255 bytes per Reed-Solomon block). Two of the 7168 Reed-Solomon blocks are reserved for control information, while the remaining 7166 are used to store data. Each Reed-Solomon block holds 127 bytes of actual data, and the total amount of data that can be stored on the alternate Artcard is 910082 bytes (7166 × 27). If the original data is less than this total amount, the data can be encoded to fit the exact number of Reed-Solomon blocks, and then all 7166 encoded blocks are used. Can be replicated until FIG. 58 is an explanatory diagram of the overall form of encoding used.

2個の制御ブロック1132及び1133の各々は、残りの7166個のリード・ソロモンブロックを復号化するために必要な同じ符号化情報、即ち、
フルメッセージ(16ビット格納ロー/ハイ)中のリード・ソロモンブロックの個数と、メッセージ(8ビット)の最後のリード・ソロモンブロック内のデータバイトの個数と、を収容する。
Each of the two control blocks 1132 and 1133 has the same encoding information necessary to decode the remaining 7166 Reed-Solomon blocks, i.e.
It contains the number of Reed-Solomon blocks in the full message (16-bit storage low / high) and the number of data bytes in the last Reed-Solomon block of the message (8 bits).

これらの2個の数は、32回繰り返され(96バイトを消費)、残りの31バイトは確保され、0にセットされる。各制御ブロックは、次に、リード・ソロモン符号化され、127バイトの制御情報は255バイトのリード・ソロモン符号化データに変換される。 These two numbers are repeated 32 times (consuming 96 bytes), the remaining 31 bytes are reserved and set to 0. Each control block is then Reed-Solomon encoded and the 127-byte control information is converted to 255-byte Reed-Solomon encoded data.

制御ブロックは、生き残る可能性を高くするため2回記憶される。その上、制御ブロック内のデータの繰り返しは、リード・ソロモン符号を使用する場合に特に重要である。間違いの無いリード・ソロモン符号化ブロックにおいて、データの最初の127バイトは、正しく原データであり、もし、制御ブロックが復号化に失敗したとき(64個を超えるシンボルに誤りがあるとき)、原メッセージを復元するために参照することができる。このようにして、制御ブロックが復号化に失敗した場合、2個の復号化パラメータの最も確からしい値を決定するために、3バイトのセットを検査することができる。復元可能であることは保証されないが、冗長性によって可能性は高くなる。例えば、制御ブロックの最後の159バイトが破壊され、最初の96バイトは完全に大丈夫である。最初の96バイトを参照すると、数字の繰り返しセットが見つかる。これらの数字は、残りの7166個のリード・ソロモンブロックにあるメッセージの残りの部分を復号化するため巧く利用することができる。 Control blocks are stored twice to increase the likelihood of survival. Moreover, the repetition of data within the control block is particularly important when using Reed-Solomon codes. In an error-free Reed-Solomon coding block, the first 127 bytes of data are correct original data, and if the control block fails to decode (when there are more than 64 symbols in error), Can be referenced to restore the message. In this way, if the control block fails to decode, a set of 3 bytes can be examined to determine the most probable values of the two decoding parameters. It is not guaranteed that it can be restored, but redundancy increases the likelihood. For example, the last 159 bytes of the control block are destroyed and the first 96 bytes are perfectly fine. Referring to the first 96 bytes, a repeating set of numbers is found. These numbers can be exploited to decode the rest of the message in the remaining 7166 Reed-Solomon blocks.

一例として、正確に9967バイトのデータを含むデータファイルを想定する。必要なリード・ソロモンブロックの数は79個である。最初の78個のリード・ソロモンブロックは完全に利用され、9906バイト(78×127)が使用される。79番目のブロックには、61バイトのデータしか含まれない(残りの66バイトは全て0である)。 As an example, assume a data file containing exactly 9967 bytes of data. The number of Reed-Solomon blocks required is 79. The first 78 Reed-Solomon blocks are fully utilized and 9906 bytes (78 × 127) are used. The 79th block contains only 61 bytes of data (the remaining 66 bytes are all 0).

代替Artcardは、7168個のリード・ソロモンブロックにより構成される。最初の2ブロックは制御ブロックであり、次の79ブロックは符号化データであり、次の79ブロックは符号化データの複製であり、次の79ブロックは符号化データの別の複製であり、以下同様に続く。79個のリード・ソロモンブロックを90回記憶した後、残りの56個のリード・ソロモンブロックは、79ブロックの符号化データのうちの最初の56ブロックの別の複製である(符号化データの最後の23ブロックは、代替Artcard上に十分な場所が存在しないので、これ以上記憶されない)。リード・ソロモン符号化される前の各制御ブロックデータ内の127バイトの16進表現が図59に示されている。 The alternative Artcard is composed of 7168 Reed-Solomon blocks. The first two blocks are control blocks, the next 79 blocks are encoded data, the next 79 blocks are a copy of the encoded data, the next 79 blocks are another copy of the encoded data, and so on. The same goes on. After storing the 79 Reed-Solomon blocks 90 times, the remaining 56 Reed-Solomon blocks are another copy of the first 56 blocks of the 79 blocks of encoded data (the end of the encoded data). 23 blocks are not stored any more because there is not enough space on the alternate Artcard). A hexadecimal representation of 127 bytes in each control block data before Reed-Solomon encoding is shown in FIG.

符号化データのスクランブル処理
全ての符号化ブロックがメモリ内に隣接して格納されているならば、最大で1827840バイトのデータ(2個の制御ブロックと、7166個の情報ブロックとを合わせて全部で7168個のリード・ソロモン符号化ブロック)を代替Artcard上に記憶することができる。好ましくは、データは、この段階で代替Artcard上にそのまま記憶されるのではなく、即ち、1個のリード・ソロモンブロックの255バイトの全てがカード上で物理的に一体として記憶されるのではない。カードに物理的な破損を生じさせるごみ、汚れ、又は歪みは、一つのリード・ソロモンブロック内の64バイト以上を破壊する可能性があり、そのブロックは復元できなくなる。リード・ソロモンブロックの複製が無い場合、代替Artcardの全体を復号化し得ないことになる。
Scramble processing of encoded data If all the encoded blocks are stored adjacent to each other in the memory, a maximum of 1827840 bytes of data (two control blocks and 7166 information blocks in total) 7168 Reed-Solomon coding blocks) can be stored on the alternate Artcard. Preferably, the data is not stored directly on the alternate Artcard at this stage, i.e. not all the 255 bytes of one Reed-Solomon block are physically stored on the card as one unit. . Any debris, dirt, or distortion that causes physical damage to the card can destroy more than 64 bytes in a Reed-Solomon block, making the block unrecoverable. If there is no copy of the Reed-Solomon block, the entire alternative Artcard cannot be decoded.

これに対するソリューションは、代替Artcard上に多数のバイトが存在し、代替Artcardは合理的な物理サイズを有するという点を活かすことである。したがって、データはスクランブル処理され、一つのリード・ソロモンブロックからのシンボルが相互に接近しないことが保証される。勿論、カードが劣化する異状ケースでは、リード・ソロモンブロックを復元することは不可能であるが、平均的に、データのスクランブル処理によってカードを非常に頑強にすることができる。選択されたスクランブル方式は単純であり、図14に概略的に示されている。リード・ソロモンブロックからのバイト0の全ては、まとめて配置され(1136)、次に、全てのバイト1等も同様である。したがって、7168個のバイト0と、7168個のバイト1等が存在する。代替Artcard上の各データブロックは28560バイトを記憶することができる。この結果として、代替Artcard上の64個のデータブロックの各々に、各リード・ソロモンブロックからの約4バイトが収容される。 The solution to this is to take advantage of the fact that there are a large number of bytes on the alternate Artcard, and the alternate Artcard has a reasonable physical size. Thus, the data is scrambled to ensure that symbols from one Reed-Solomon block are not close to each other. Of course, in the abnormal case where the card deteriorates, it is impossible to restore the Reed-Solomon block, but on average, the card can be made very robust by data scrambling. The selected scrambling scheme is simple and is schematically illustrated in FIG. All bytes 0 from the Reed-Solomon block are placed together (1136), and so are all bytes 1 and so on. Therefore, there are 7168 bytes 0, 7168 bytes 1 and the like. Each data block on the alternate Artcard can store 28560 bytes. As a result of this, each of the 64 data blocks on the alternate Artcard contains approximately 4 bytes from each Reed-Solomon block.

このスクランブル方式の下では、代替Artcard上の16個のデータブロック全体に対する完全なダメージによって、1リード・ソロモンブロック毎に64個のシンボル誤りが生じる。即ち、代替Artcardにその他のダメージが無い場合、たとえデータの複製が無くても、全てのデータは完全に復元可能である。 Under this scrambling scheme, complete damage to the entire 16 data blocks on the alternate Artcard results in 64 symbol errors per Reed-Solomon block. That is, if there is no other damage to the alternative Artcard, all data can be completely restored even if there is no data replication.

スクランブル処理された符号化データを代替Artcardへ書き込み
原データがリード・ソロモン符号化され、複製され、スクランブル処理されると、1827840バイトのデータを代替Artcardに記憶する必要がある。代替Artcard上の64個のデータブロックの各々は、28560バイトを記憶する。
When the scrambled encoded data is written to the alternative Artcard, and the original data is Reed-Solomon encoded, copied, and scrambled, it is necessary to store 1827840 bytes of data in the alternative Artcard. Each of the 64 data blocks on the alternate Artcard stores 28560 bytes.

データは、単純に代替Artcardのデータブロックへ書き出されるので、第1のデータブロックはスクランブル付きデータのうちの最初の28560バイトを格納し、第2のデータブロックは次の28560バイトを格納し、以下同様に続く。 Since the data is simply written to the alternate Artcard data block, the first data block stores the first 28560 bytes of the scrambled data, the second data block stores the next 28560 bytes, and so on. The same goes on.

図61に示されるように、データブロック内で、データは列に関して左から右へ書き込まれる。このため、データブロック内の最も左側の列は、28560バイトのスクランブル付きデータのうちの最初の48バイトを格納し、最後の列は、28560バイトのスクランブル付きデータのうちの最後の48バイトを格納する。列内では、バイトは、ビット7から始めて、同時に1ビットずつ、上から下へ書き込まれ、ビット0で終了する。ビットがセット(1)されている場合、黒色ドットが代替Artcardに配置され、ビットがクリア(0)されている場合、ドットは配置されず、カードの白色背景カラーのまま残される。 As shown in FIG. 61, data is written from left to right with respect to columns within a data block. Therefore, the leftmost column in the data block stores the first 48 bytes of the 28560-byte scrambled data, and the last column stores the last 48 bytes of the 28560-byte scrambled data. To do. Within the column, bytes start at bit 7 and are written one bit at a time from top to bottom, ending with bit 0. If the bit is set (1), a black dot is placed in the alternate Artcard, and if the bit is cleared (0), the dot is not placed and remains the white background color of the card.

例えば、1827840バイトのデータの組は、代替Artcardに記憶されるべき7168個のリード・ソロモン符号化ブロックをスクランブル処理することによって作成できる。最初の28560バイトのデータは最初のデータブロックに書き込まれる。最初の28560バイトのうちの最初の48バイトはデータブロックの最初の列に書き込まれ、次の48バイトは次の列に書き込まれ、以下同様に続く。28560バイトのうちの最初の2バイトが16進のD3
5Fである場合を想定する。バイト0のビット7が最初に格納され、次にビット6が格納され、以下同様に続く。次に、バイト1のビット7からバイト1のビット0までが格納される。各「1」は黒色ドットとして格納され、各「0」は白色ドットして格納されるので、これらの2バイトは、代替Artcard上では、以下のドットの組として表現され、
*D3(1101 0011)は、黒、黒、白、黒、白、白、黒、黒になり、
*5F(0101 1111)は、白、黒、白、黒、黒、黒、黒、黒になる。
For example, a 1827840 byte data set can be created by scrambling 7168 Reed-Solomon encoded blocks to be stored in the alternate Artcard. The first 28560 bytes of data are written to the first data block. The first 48 bytes of the first 28560 bytes are written to the first column of the data block, the next 48 bytes are written to the next column, and so on. The first 2 bytes of 28560 bytes are hexadecimal D3
Assume a case of 5F. Bit 7 of byte 0 is stored first, then bit 6 is stored, and so on. Next, bit 7 of byte 1 to bit 0 of byte 1 are stored. Each “1” is stored as a black dot and each “0” is stored as a white dot, so these two bytes are represented on the alternate Artcard as the following set of dots:
* D3 (1101 0011) is black, black, white, black, white, white, black, black,
* 5F (0101 1111) is white, black, white, black, black, black, black, black.

代替Artcardの復号化
このセクションは、代替Artcardから正確かつ確実な形で原データを抽出する処理を取り扱う。特に、前の章で説明した代替Artcardのフォーマットを前提として、代替Artcardから元の予め符号化されたデータを抽出する方法を説明する。
Alternative Artcard Decoding This section deals with the process of extracting the original data in an accurate and reliable manner from the alternative Artcard. In particular, on the premise of the alternative Artcard format described in the previous chapter, a method for extracting original pre-encoded data from the alternative Artcard will be described.

代替Artcardを復号化する前提の一部として多数の一般的な考察が存在する。 There are a number of general considerations as part of the premise of decoding an alternative Artcard.

ユーザ
代替Artcardの目的は、様々なアプリケーションで使用するためのデータを保存することである。ユーザは、代替Artcardを代替Artcardリーダーに挿入し、データが「妥当な時間」内にロードされることを期待する。ユーザの観点からは、モーター輸送が代替Artcardを代替Artcardリーダーへ動かす。これは、問題となる遅れとしては認識されない。なぜならば、代替Artcardは動いているからである。代替Artcardが停止した後の時間は遅延として認識され、代替Artcard読み出し方式において最低限に短縮されるべきである。理想的な状態では、代替Artcardの全体が移動中に読み出され、これにより、カードの移動が停止した後に遅延が認識されない。
The purpose of the user alternative Artcard is to store data for use in various applications. The user inserts an alternate Artcard into the alternate Artcard reader and expects the data to be loaded within a “reasonable time”. From the user's perspective, motor transport moves the alternate Artcard to the alternate Artcard reader. This is not recognized as a problematic delay. This is because the alternative Artcard is moving. The time after the alternate Artcard stops is recognized as a delay and should be reduced to a minimum in the alternate Artcard readout scheme. In an ideal state, the entire alternative Artcard is read out during movement, so that no delay is recognized after card movement stops.

好適な実施例の目的のため、代替Artcardを物理的にロードするための妥当な時間は1.5秒に決める。代替Artcardの移動が停止した後の付加的な復号化のための時間を最低限に短縮すべきである。代替Artcardのアクティブ領域は代替Artcardの表面の大部分を覆うので、時間的な関心をその領域に限定することができる。 For the purposes of the preferred embodiment, a reasonable time to physically load the alternate Artcard is determined to be 1.5 seconds. The time for additional decoding after the movement of the alternative Artcard has stopped should be reduced to a minimum. Since the active area of the alternative Artcard covers most of the surface of the alternative Artcard, temporal interest can be limited to that area.

ドットのサンプリング
代替Artcard上のドットは、ナイキストの定理(Nyguist‘s
Theorem)を充たすため、少なくとも印刷された解像度の2倍でCCDリーダー等によってサンプリングしなければならない。実際には、これよりも高いレートでサンプリングする方がよい。代替Artcardリーダーの環境では、ドットは、好ましくは、各次元に関してドットが印刷された解像度、即ち、単一ドットを定義するために9画素を必要とする解像度の3倍の解像度でサンプリングされる。代替Artcardのドットの解像度が1600dpiである場合、代替Artcardリーダーのイメージセンサは、4800dpiで画素を走査しなければならない。勿論、ドットがイメージセンサと正確に位置合わせされていない場合、図62に示されるような最悪の最も起こり易いケースでは、ドットは4×4画素エリアに亘って検出されるであろう。
The dots on the dot sampling alternative Artcard are Nyquist's theorem
In order to satisfy (Theorem), it must be sampled by a CCD reader or the like at least twice the printed resolution. In practice, it is better to sample at a higher rate. In an alternative Artcard reader environment, the dots are preferably sampled at a resolution at which the dots were printed for each dimension, i.e. three times the resolution that required 9 pixels to define a single dot. If the alternate Artcard dot resolution is 1600 dpi, the alternate Artcard reader image sensor must scan the pixel at 4800 dpi. Of course, if the dots are not accurately aligned with the image sensor, in the worst and most likely case as shown in FIG. 62, the dots will be detected over a 4 × 4 pixel area.

サンプリングされる各画素は1バイト(8ビット)である。各画素の下位2ビットは、有意なノイズを含む可能性がある。したがって、復号化アルゴリズムは、耐ノイズ性が要求される。 Each pixel to be sampled is 1 byte (8 bits). The lower 2 bits of each pixel may contain significant noise. Accordingly, the decoding algorithm is required to have noise resistance.

位置合わせ/回転
ユーザが代替Artcardを回転なしに完全に位置合わせされた状態で代替Artcardリーダーに挿入する可能性は極めて低い。リーダーの入口及びモーター輸送のグリップにおけるある種の物理的制約は、挿入された後、代替ArtcardがCCDに対して挿入時の最初の角度で保たれることを保証する。好ましくは、この回転角度は、図63に示されるように最大で1度である。読み出しプロセス中にジッタ及びモーターのガタによって角度が僅かに外れる可能性はあるが、基本的に1度の限界内に収まると考えられる。
It is very unlikely that the alignment / rotation user will insert the alternate Artcard into the alternate Artcard reader in full alignment without rotation. Certain physical constraints at the reader entrance and motor transport grip ensure that, after being inserted, the alternate Artcard is kept at the initial angle of insertion relative to the CCD. Preferably, this rotation angle is a maximum of 1 degree as shown in FIG. Although the angle may be slightly off due to jitter and motor play during the read process, it is considered to be basically within the limits of 1 degree.

代替Artcardの物理的寸法は86mm×55mmである。1度の回転は、86mmがCCDの下を通過したとき、カードの実効高さを1.5mm(86sin1°)だけ長くするので、必要なCCD長に影響を与える。 The physical dimensions of the alternative Artcard are 86 mm x 55 mm. One rotation affects the required CCD length because when 86mm passes under the CCD, the effective height of the card is increased by 1.5mm (86sin1 °).

代替Artcardの読み出しに対する1度の回転の影響は、CCDからの1本の走査線が代替Artcardからの多数の異なるドット列を含むことである。これは、画素の列に対するドットのドリフトを表した図63に拡大された形態で示されている。同図では誇張されているが、実際のドリフトは、57画素毎に最大で1画素列になる。 The effect of one degree of rotation on the alternate Artcard readout is that a single scan line from the CCD contains a number of different dot rows from the alternate Artcard. This is shown in an enlarged form in FIG. 63, which shows the drift of dots with respect to a pixel row. Although exaggerated in the figure, the actual drift is one pixel column at the maximum every 57 pixels.

代替Artcardが回転していないとき、単一のドット列は3本の画素走査線によって読むことができる。代替Artcardの回転が大きくなると、局部的な影響が増加する。読み出されるドットの数が増加すると、回転の影響が加わる時間が長くなる。これらの要因のうちのいずれかが増大すると、代替Artcard上の単一列から所定のドットの組を得るために読み出す必要がある画素走査線の数が増加する。以下の表は、特定の代替Artcard構造において単一のドット列のために必要な画素走査線の本数を示している。 When the alternate Artcard is not rotating, a single dot row can be read by three pixel scan lines. As the rotation of the alternative Artcard increases, the local impact increases. As the number of dots to be read increases, the time during which the influence of rotation is applied becomes longer. Increasing any of these factors increases the number of pixel scan lines that need to be read to obtain a given set of dots from a single row on the alternate Artcard. The following table shows the number of pixel scan lines required for a single dot row in a particular alternative Artcard structure.

Figure 0004309954
代替Artcardの全体を読むため、87mm(86mmと1°の回転による1mmの和)を読む必要がある。4800dpiの場合、これは、16252列の画素列に相当する。
Figure 0004309954
To read the entire alternative Artcard, it is necessary to read 87 mm (86 mm plus 1 mm with 1 ° rotation). In the case of 4800 dpi, this corresponds to 16252 pixel columns.

CCD(又はその他のリニアイメージセンサ)の長さ
CCD自体の長さは、
−代替Artcardの物理的高さ(55mm)
−物理的な代替Artcardの挿入時の垂直方向動き(1mm)
−最大1°の挿入時回転(86sin1°=1.5mm)
に適合しなければならない。
CCD (or other linear image sensor) length The length of the CCD itself is
-Physical height of alternative Artcard (55mm)
-Vertical movement (1mm) when inserting a physical alternative Artcard
-Rotation during insertion up to 1 ° (86 sin1 ° = 1.5mm)
Must conform to.

これらの要因を組み合わせると、全体の長さは57.5mmになる。 Combining these factors, the total length is 57.5 mm.

代替Artcardリーダーの代替ArtcardイメージセンサCCDが4800dpiで走査するとき、1本の走査線は10866画素である。簡単のため、この数字を11000画素に切り上げる。代替Artcardのアクティブ領域の高さは3208ドット、即ち、9624画素である。データ領域の高さは384ドット、即ち、1152画素である。 When the alternative Artcard image sensor CCD of the alternative Artcard reader scans at 4800 dpi, one scan line is 10866 pixels. For simplicity, this number is rounded up to 11000 pixels. The height of the active area of the alternative Artcard is 3208 dots, that is, 9624 pixels. The height of the data area is 384 dots, that is, 1152 pixels.

DRAMサイズ
代替Artcardの読み出し及び復号化に必要なメモリ量は、理想的には最低限に削減される。典型的な代替Artcardリーダーの配置は、内蔵型システムであり、その場合、メモリリソースは貴重である。このことは、回転の影響によって更に重大な問題になる。上述の通り、代替Artcardの回転が大きくなると、原ドットを効率的に復元するために要する走査線の数が増加する。
The amount of memory required for reading and decoding the DRAM size alternative Artcard is ideally reduced to a minimum. A typical alternative Artcard reader arrangement is a self-contained system, where memory resources are valuable. This becomes a more serious problem due to the effects of rotation. As described above, when the rotation of the alternative Artcard increases, the number of scanning lines required to efficiently restore the original dots increases.

アルゴリズムの複雑さと、ユーザの認知する遅延と、頑強性と、メモリ使用量との間にはトレードオフがある。最も簡単なリーダーアルゴリズムの一つは、単に代替Artcardの全体を走査し、次に、リアルタイムの制約無しに全データを処理することであろう。これは、大規模のメモリ容量を必要とするだけではなく、代替Artcardの読み出しプロセスと並行に行われるリーダーアルゴリズムよりも長時間を要するであろう。 There is a trade-off between algorithm complexity, user perceived delay, robustness, and memory usage. One of the simplest reader algorithms would simply scan the entire alternative Artcard and then process the entire data without real-time constraints. This will not only require a large amount of memory capacity, but will also take longer than a reader algorithm that runs in parallel with the alternate Artcard read process.

代替Artcardの読み出し及び復号化のために実際に必要なメモリ量は、符号化されたデータを、少量のスクラッチ空間(1から2KB)と共に保持するために必要なスペースの量の2倍である。1600dpiの代替Artcardの場合、これは、4MBのメモリ必要量を意味する。実際のメモリ使用量は以下のアルゴリズムの説明で詳述される。 The amount of memory actually required for reading and decoding the alternate Artcard is twice the amount of space required to hold the encoded data with a small amount of scratch space (1 to 2 KB). For the 1600 dpi alternative Artcard, this means 4 MB of memory requirement. The actual memory usage is detailed in the algorithm description below.

転送レート
DRAM帯域幅の前提条件は、タイミングを考慮するために行う必要があり、特に、代替Artcardリーダーは、典型的に、内蔵型システムの一部であるので、アルゴリズム設計にある程度の影響を与える。
Transfer rate DRAM bandwidth preconditions must be made to account for timing, and in particular, alternative Artcard readers are typically part of an embedded system and thus have some impact on algorithm design .

Rambus Incの'&apos;Direct Rambus
Technology Disclosure'&apos;, Oct 1997に記載されているような標準的なRambus
Direct(ラムバスダイレクト)RDRAMアーキテクチャが想定され、ピークデータ転送レートは1.6GB/秒である。75%の効率(容易に実現できる)を想定すると、平均で1.2GB/秒のデータ転送レートが得られる。したがって、16バイトのブロックにアクセスするために要する平均時間は12nsである。
Rambus Inc's' Direct Rambus
Standard Rambus as described in Technology Disclosure '', Oct 1997
A Direct (Rambus Direct) RDRAM architecture is assumed, and the peak data transfer rate is 1.6 GB / sec. Assuming 75% efficiency (which can be easily realized), an average data transfer rate of 1.2 GB / sec is obtained. Therefore, the average time required to access a 16-byte block is 12 ns.

汚染データ
物理的に破損した代替Artcardがリーダーに挿入されることがあり得る。代替Artcardは、傷を付けられるか、汚れ若しくはごみによって歪みを生じるかもしれない。代替Artcardリーダーが全てを完全に読み出すことは想定できない。汚染データの影響は、ブラー効果によって更に悪化させられる。なぜならば、汚染データが周囲のきれいなドットに影響を与えるからである。
Contamination data It is possible that an alternative Artcard that has been physically damaged may be inserted into the reader. Alternative Artcards may be scratched or distorted by dirt or debris. It cannot be assumed that the alternative Artcard reader will read everything completely. The impact of contamination data is further exacerbated by the blur effect. This is because contamination data affects the surrounding clean dots.

ブラー効果環境
ブラー効果は、次の2種類の経路で代替Artcard読み取り環境に組み込まれる:*代替ArtcardからCCD間での距離の特性を原因とする自然的なブラー効果;
*代替Artcardの歪み。
The blur effect environment blur effect is incorporated into the alternative Artcard reading environment in two ways: * Natural blur effect due to the distance characteristics between the alternative Artcard and the CCD;
* Alternate Artcard distortion.

代替Artcard像の自然的なブラー効果は、CCDから検出されたデータのオーバーラップが存在するときに生じる。ブラー効果は役に立つ場合がある。なぜならば、ブラー効果は、検出データに高周波数が存在しないこと、及びCCDによって失われたデータが存在しないことを保証するからである。しかし、CCD画素によって覆われたエリアが非常に広い場合、非常に多くのブラー効果が現れ、データを復元するために要するサンプリングの条件が充たされない。図64は検出データの重なり合いの略説明図である。 The natural blur effect of the alternative Artcard image occurs when there is an overlap of data detected from the CCD. The blur effect can be helpful. This is because the blur effect ensures that there is no high frequency in the detected data and that there is no data lost by the CCD. However, if the area covered by the CCD pixels is very large, a very large blur effect appears, and the sampling conditions required to restore the data are not satisfied. FIG. 64 is a schematic explanatory diagram of overlapping detection data.

別の形態のブラー効果は、代替Artcardが熱ダメージのために僅かに歪むときに生じる。垂直方向の次元に歪みがあるとき、代替ArtcardとCCDの間の距離は一定ではなく、ブラー効果のレベルはそのエリアの中で変化する。 Another form of blur effect occurs when the alternative Artcard is slightly distorted due to thermal damage. When the vertical dimension is distorted, the distance between the alternative Artcard and the CCD is not constant and the level of the blur effect varies within the area.

黒色ドット及び白色ドットは、代替Artcardがブラー効果のある読み出し環境で最良のダイナミックレンジを与えるように選択された。ブラー効果は、所与のドットが黒色であるか、又は白色であるかを決定するときに問題を生じる。 Black dots and white dots were chosen so that the alternative Artcard gives the best dynamic range in a blurry readout environment. The blur effect creates a problem when determining whether a given dot is black or white.

ブラー効果が増大すると、所与のドットは周辺ドットから受ける影響が大きくなる。その結果として、特定のドットのダイナミックレンジは減少する。白色ドット及び黒色ドットの各々が起こり得るあらゆるドットの組によって囲まれる場合を考える。9個のドットにブラー効果が現れ、中央ドットがサンプリングされる。図65は、黒色ドット及び白色ドットに対して得られた中央ドット値の分布の説明図である。 As the blur effect increases, a given dot is more affected by surrounding dots. As a result, the dynamic range of a particular dot is reduced. Consider the case where each white and black dot is surrounded by every possible set of dots. The blur effect appears on the nine dots and the center dot is sampled. FIG. 65 is an explanatory diagram of the distribution of central dot values obtained for black dots and white dots.

この図は、典型的なブラー効果を意図している。0から約180までの曲線1140は黒色ドットのレンジを示す。75から250までの曲線1141は白色ドットのレンジを示す。しかし、ブラー効果が大きくなると、2本の曲線はレンジの中央の方へ向かってシフトし、交わるエリアが増大し、所与のドットが黒色であるか、白色であるかを判定することがより困難になる。交わりの中心点での画素値は曖昧であり、ドットが黒色である可能性と白色である可能性は等しい。 This figure is intended for a typical blur effect. Curve 1140 from 0 to about 180 shows the range of black dots. Curve 1141 from 75 to 250 shows the range of white dots. However, as the blur effect increases, the two curves shift towards the center of the range, increasing the intersecting area, and determining whether a given dot is black or white is more It becomes difficult. The pixel value at the center point of the intersection is ambiguous, and the possibility that the dot is black is the same as the possibility that it is white.

ブラー効果が増大すると、読み出しビット誤りの確率が増加する。都合良く、リード・ソロモン復号化アルゴリズムは、t個のシンボル誤りまで正常にこれらに対処することができる。図65は、特定のシンボル誤り率の場合に復元できない代替Artcardのリード・ソロモンブロックの予測数のグラフである。リード・ソロモン復号化方式が優れた性能を示し、次に、実質的に低下することに注意すべきである。リード・ソロモンブロックの複製が無い場合、1ブロックに誤りが生じるだけでデータを復元できなくなる。勿論、ブロック複製を行った場合、代替Artcard復号化の機会が増加する。 As the blur effect increases, the probability of read bit errors increases. Conveniently, the Reed-Solomon decoding algorithm can handle these successfully up to t symbol errors. FIG. 65 is a graph of the predicted number of alternative Artcard Reed-Solomon blocks that cannot be recovered for a particular symbol error rate. It should be noted that the Reed-Solomon decoding scheme shows excellent performance and then decreases substantially. If there is no copy of the Reed-Solomon block, it is impossible to restore data only by making an error in one block. Of course, when block duplication is performed, opportunities for alternative Artcard decoding increase.

図66は、誤りのあるリード・ソロモンブロックの個数に対応するシンボル(バイト)誤りだけを示している。対処可能なブラー効果の量と、カードに生じたダメージの量との間にはトレードオフが存在する。全ての誤り検出及び訂正はリード・ソロモンデコーダによって行われるので、リード・ソロモンデータブロック毎に対処可能な誤りの個数は有限である。ブラー効果によって取り込まれる誤りが増加すると、代替Artcardのダメージによる誤りの中で対処可能な誤りの個数は減少する。 FIG. 66 shows only symbol (byte) errors corresponding to the number of erroneous Reed-Solomon blocks. There is a trade-off between the amount of blur effect that can be dealt with and the amount of damage done to the card. Since all error detection and correction are performed by a Reed-Solomon decoder, the number of errors that can be handled for each Reed-Solomon data block is finite. As errors introduced by the blur effect increase, the number of errors that can be dealt with among the errors due to the damage of the alternative Artcard decreases.

代替Artcard復号化の概要
上述の通り、ユーザが代替Artcardを代替Artcard読み取りユニットに挿入するとき、モーター輸送は、理想的には、代替Artcardを運び、モノクロリニアCCDイメージセンサの傍らを通過させる。カードは次元毎に印刷された解像度の3倍の解像度でサンプリングされる。代替Artcard読み取りハードウェア及びソフトウェアは、1度までの回転と、モーター輸送によって生じるジッタ及び振動と、代替ArtcardからCCDまでの距離の変動によって生じるブラー効果を補正する。データのデジタルビットイメージが、以下に説明される複雑な方法によって、サンプリングされた像から抽出される。リード・ソロモン復号化は、代替Artcard上の生データの25%までの任意に分布したデータコラプションを訂正する。約1MBの訂正データが1600dpiカードから抽出される。
Overview of Alternative Artcard Decoding As described above, when a user inserts an alternative Artcard into an alternative Artcard reading unit, motor transport ideally carries the alternative Artcard and passes by a monochrome linear CCD image sensor. The card is sampled at a resolution of three times the printed resolution for each dimension. Alternative Artcard reading hardware and software correct for blur effects caused by rotations up to 1 degree, jitter and vibration caused by motor transport, and variations in distance from the alternative Artcard to the CCD. A digital bit image of the data is extracted from the sampled image by a complex method described below. Reed-Solomon decoding corrects arbitrarily distributed data corruption of up to 25% of the raw data on the alternate Artcard. About 1 MB of correction data is extracted from the 1600 dpi card.

復号化に関連するステップは図67に示されるようなステップである。 The steps related to decoding are as shown in FIG.

復号化プロセスに必要なステップは、
*印刷された解像度の3倍の解像度で代替Artcardを走査する(例えば、4800dpiで1600dpiの代替Artcardを走査する)ステップ1144と、
*カード上で走査されたドットからデータビットマップを抽出するステップ1145と、
*代替Artcardが逆向きに挿入された場合に、ビットマップを反転するステップ1146と、
*符号化データをスクランブル解除するステップ1147と、
*ビットマップからのデータをリード・ソロモン復号化するステップ1148と、
である。
The steps required for the decryption process are:
Scanning the alternate Artcard at a resolution of three times the printed resolution (eg, scanning an alternate Artcard of 1600 dpi at 4800 dpi);
A step 1145 for extracting a data bitmap from the dots scanned on the card;
A step 1146 of inverting the bitmap if the alternate Artcard is inserted backwards;
A step 1147 of descrambling the encoded data;
* Step 1148 of Reed-Solomon decoding the data from the bitmap;
It is.

アルゴリズムの概要
フェーズ1−リアルタイムExtractingBitImage
利用可能なメモリ(4MB)と、1600dpiの代替Artcardの走査された全画素を保持するための必要メモリ(172.5MB)との簡単な比較によって、カードが複数回読み出されない限り(現実的な選択肢ではない)、画素データからのビットマップの抽出は、代替ArtcardがCCDの傍を通過させられる間に、オンザフライ方式でリアルタイムに実行する必要がある。このフェーズでは、二つのタスク、即ち、
*代替Artcardを4800dpiで走査するタスク
*カード上で走査されたドットからデータビットマップを抽出するタスク
を実行しなければならない。
Algorithm Overview Phase 1-Real-time ExtractingBitImage
A simple comparison of the available memory (4MB) with the required memory (172.5MB) to hold all the scanned pixels of the 1600 dpi alternative Artcard, unless the card is read multiple times (realistic Extraction of the bitmap from the pixel data, which is not an option, needs to be performed in real time on the fly while the alternative Artcard is passed by the CCD. In this phase, there are two tasks:
* Task to scan alternate Artcard at 4800 dpi * Task to extract data bitmap from dots scanned on card must be performed.

ビットイメージの回転及びスクランブル解除は、ビットイメージ全体が抽出されるまで行えない。したがって、抽出されたビットイメージを保持するためにメモリ領域を割り当てることが必要である。ビットイメージは、2MBの範囲内で容易に収容され、抽出プロセスで使用するための2MBが確保される。 Bit image rotation and descrambling cannot be performed until the entire bit image has been extracted. Therefore, it is necessary to allocate a memory area to hold the extracted bit image. Bit images are easily accommodated within the range of 2 MB, and 2 MB is reserved for use in the extraction process.

CCDからの現在の走査線だけを調べる間にビットイメージを抽出するのではなく、窓として機能するバッファを代替Artcardに割り付け、最新のN本の走査線読み出しを記憶することが可能である。メモリ必要量は、代替Artcardの全体がこのようにして記憶されることは許容しないが(172.5MBが必要になるであろう)、190画素列を記憶するため2MBを割り付けることは(各走査線は11000バイト以上を必要としない)、ExtractingBitImageプロセスを簡単化させる。 Rather than extracting a bit image while examining only the current scan line from the CCD, it is possible to allocate a buffer functioning as a window to the alternate Artcard and store the latest N scan line readings. The memory requirement does not allow the entire alternative Artcard to be stored in this way (172.5 MB would be required), but allocating 2 MB to store 190 pixel columns (each scan Lines do not require more than 11000 bytes), simplifying the ExtractingBitImage process.

したがって、4MBメモリの使用法は以下の通りである:
*抽出されたビットイメージのための2MB;
*走査された画素のための〜2MB;
*フェーズ1のスクラッチデータのために1.5KB(アルゴリズムによる要求次第)。
Therefore, the usage of 4MB memory is as follows:
* 2MB for the extracted bit image;
* ~ 2MB for scanned pixels;
* 1.5KB for phase 1 scratch data (on request by algorithm).

フェーズ1に要する時間は1.5秒である。なぜならば、この時間は、代替ArtcardがCCDの傍を通過し、物理的にロードされるために要する時間であるからである。 The time required for Phase 1 is 1.5 seconds. This is because this is the time it takes for the alternate Artcard to pass by the CCD and be physically loaded.

フェーズ2−ビットイメージからのデータ抽出
ビットイメージが抽出されると、ビットイメージはスクランブル解除され、場合によっては180°回転させることが必要である。ビットイメージは次に復号化される。フェーズ2は、Artcardの動きが停止している点でリアルタイム必要条件が無く、ユーザが時間経過を認識することだけが問題である。したがって、フェーズ2は、代替Artcardを復号化する残りのタスクに関係する。即ち、
*ビットイメージを再編成し、代替Artcardが逆向きに挿入された場合には反転する;
*符号化されたデータをスクランブル解除する;
*ビットイメージからのデータをリード・ソロモン復号化する。
Phase 2-Data Extraction from Bit Image When a bit image is extracted, the bit image is descrambled and may need to be rotated 180 °. The bit image is then decoded. Phase 2 has no real-time requirement in that the artcard motion is stopped, and the only problem is that the user recognizes the passage of time. Phase 2 thus relates to the remaining task of decoding the alternative Artcard. That is,
* Reorganize the bit image and invert if an alternate Artcard is inserted backwards;
* Descramble the encoded data;
* Reed-Solomon decoding of data from bit images.

フェーズ2への入力は2MBビットイメージバッファである。スクランブル解除及び回転は、その場では実行し得ないので、第2の2MBバッファが必要である。フェーズ1で走査された画素を保持するため使用される2MBバッファは不要になっているので、回転させられたスクランブル無しデータを記憶するため使用可能である。 The input to Phase 2 is a 2MB bit image buffer. Since descrambling and rotation cannot be performed on the spot, a second 2MB buffer is required. Since the 2 MB buffer used to hold the pixels scanned in phase 1 is no longer needed, it can be used to store the rotated unscrambled data.

リード・ソロモン復号化タスクは、スクランブル無しのビットイメージを取得し、それを910082バイトに復号化する。復号化は元の位置で実行可能であるが、指定された別の場所で実行してもよい。復号化プロセスは、補助的なメモリバッファを必要としない。 The Reed-Solomon decoding task takes an unscrambled bit image and decodes it to 910082 bytes. Decryption can be performed at the original location, but may be performed at another designated location. The decoding process does not require an auxiliary memory buffer.

したがって、4MBのメモリの使用法は以下の通りである:
*(フェーズ1からの)抽出されたビットイメージのための2MB;
*スクランブル無しの、回転された可能性のあるビットイメージのための〜2MB;
*フェーズ2のスクラッチデータのための<1KB(アルゴリズムによる要求次第)。
Therefore, the usage of 4MB memory is as follows:
* 2MB for the extracted bit image (from Phase 1);
* ~ 2MB for a possibly rotated bit image without scramble;
* <1 KB for phase 2 scratch data (on request by algorithm).

フェーズ2に要する時間はハードウェアに依存し、リード・ソロモン復号化のために要する時間によって制限される。LSIロジックのL64712のような専用コア、又は等価的なCPU/DSPの組み合わせを使用することにより、フェーズ2は0.32秒を要することが推定される。 The time required for phase 2 depends on the hardware and is limited by the time required for Reed-Solomon decoding. By using a dedicated core such as LSI Logic L64712, or an equivalent CPU / DSP combination, it is estimated that Phase 2 takes 0.32 seconds.

フェーズ1−ExtractingBitImage
これは、アルゴリズムのリアルタイムフェーズであり、CCDによって走査されたような代替Artcardからビットイメージを抽出することに関連する。
Phase 1-ExtractingBitImage
This is the real-time phase of the algorithm and relates to extracting a bit image from an alternative Artcard as scanned by a CCD.

図68に示されるように、フェーズ1は、二つの非同期的なプロセスストリームに分解することができる。そのうちの第1のストリームは、単に、CCDからの代替Artcardの画素をリアルタイムで読み出し、その画素をDRAMへ書き込む。第2のストリームは、画素を参照し、ビットを抽出する。第2のプロセスストリームは、それ自体が二つのプロセスに分解される。第1のプロセスは、大域的なプロセスであり、代替Artcardのスタートの位置検出に関する。第2のフェーズはExtractingBitImage固有である。 As shown in FIG. 68, Phase 1 can be broken down into two asynchronous process streams. The first of these simply reads the alternate Artcard pixels from the CCD in real time and writes the pixels to the DRAM. The second stream references the pixels and extracts the bits. The second process stream itself is broken down into two processes. The first process is a global process and relates to detecting the position of the alternative Artcard start. The second phase is specific to ExtractingBitImage.

図69は、データ/プロセスの観点からのデータフロー説明図である。 FIG. 69 is an explanatory diagram of data flow from the viewpoint of data / process.

タイミング
1600dpi代替Artcardの全体に対して、最大で16252画素列を読み出すことが必要である。代替Artcardの全体に対する合計時間が1.5秒である場合、これは、様々なプロセスの経過中に、1画素列当たりの最大時間が92296nsであることを意味する。
It is necessary to read a maximum of 16252 pixel columns for the entire timing 1600 dpi alternative Artcard. If the total time for the entire alternate Artcard is 1.5 seconds, this means that the maximum time per pixel column is 92296 ns during the course of various processes.

プロセス1−CCDからの画素読み出し
CCDは、代替Artcardを4800dpiで走査し、1列当たりに11000個の1バイト画素を生成する。このプロセスは、CCDからデータを取得し、それをDRAMへ書き込むだけであり、DRAMから画素データを読み出している他のプロセスからは完全に独立している。図70には関連したステップが示されている。
Process 1—Pixel Reading from CCD The CCD scans the alternative Artcard at 4800 dpi and generates 11000 1-byte pixels per column. This process only acquires data from the CCD and writes it to the DRAM, and is completely independent of other processes reading pixel data from the DRAM. FIG. 70 shows the related steps.

画素は、190列の全画素列を保持し得る2MBバッファに連続して書き込まれる。バッファは、常に、最近に読み出された190列を保持する。その結果として、画素データを読み出そうとするプロセス(例えば、プロセス2及びプロセス3)は、最初に、所定の列が探索する場所を知る必要があり、次に、要求されたデータが実際にバッファ内に存在することが確実であるように十分に高速でなければならない。 Pixels are written sequentially into a 2 MB buffer that can hold all 190 columns. The buffer always holds the 190 columns that have been read recently. As a result, the process (e.g., process 2 and process 3) attempting to read out pixel data first needs to know where the given column searches and then the requested data is actually It must be fast enough to be sure it is in the buffer.

プロセス1は、現在のCurrentScanLineが他のプロセスから利用できるようにさせるので、他のプロセスは、未だ読み出されていない走査線からの画素へのアクセスを試みないことを保証することができる。 Since Process 1 makes the current CurrentScanLine available to other processes, it can be assured that other processes do not attempt to access pixels from scan lines that have not yet been read.

単一のデータ列(11000バイト)をDRAMへ書き出すために要する時間は、11000/16*12=8256nsである。 The time required to write a single data string (11000 bytes) to the DRAM is 11000/16 * 12 = 8256 ns.

プロセス1は、したがって、利用可能なDRAM帯域幅の9%未満(8256/92296)しか使用しない。 Process 1 therefore uses less than 9% (8256/92296) of the available DRAM bandwidth.

プロセス2−代替Artcardのスタート検出
このプロセスは、走査された代替Artcard上のアクティブエリアの位置検出と関連している。このステージへの入力はDRAM(プロセス1によってそこに収容された)からの画素データである。出力は、代替Artcard上の最初の8個のデータブロックに対する境界の組であり、プロセス3への入力として要求される。プロセス3の上位レベル概要が図71に示されている。
Process 2—Start detection of alternate Artcard This process is associated with the location of the active area on the scanned alternate Artcard. The input to this stage is pixel data from the DRAM (contained therein by process 1). The output is the set of boundaries for the first 8 data blocks on the alternate Artcard and is required as input to Process 3. A high level overview of process 3 is shown in FIG.

代替Artcardは、挿入時に垂直方向の動きが1mmある。1度の回転によって、更に、1.5mm(86sin1°)の垂直方向の動きが生じる。その結果として、全部で垂直方向の動きは2.5mmである。1600dpiのとき、これは、約160ドットの動きに相当する。単一のデータブロックの高さは394ドットに過ぎないので、この動きは、データブロックの半分よりも少し少ない。データブロックが存在する場所をより良く推定するためには、代替Artcard自体を検出しなければならない。 The alternative Artcard has a 1 mm vertical movement when inserted. One degree of rotation also causes a vertical movement of 1.5 mm (86 sin 1 °). As a result, the total vertical movement is 2.5 mm. At 1600 dpi, this corresponds to a movement of about 160 dots. Since the height of a single data block is only 394 dots, this movement is slightly less than half of the data block. In order to better estimate where the data block exists, the alternative Artcard itself must be detected.

したがって、プロセス2は、
*代替Artcardのスタートを位置検出する部分と、もし、検出されたならば、
*代替Artcardのスタートに基づいて最初の8個のデータブロックの境界を計算する部分と、
を含む。
Therefore, process 2 is
* The part that detects the start of the alternative Artcard, and if detected,
A part that calculates the boundaries of the first 8 data blocks based on the start of the alternative Artcard;
including.

代替Artcardのスタート位置検出
代替Artcardエリアの外側で走査された画素は黒色である(表面は黒色のプラスチック、又はその他の非反射型表面でもよい)。代替Artcardエリアの境界は白色である。画素列を1列ずつ処理し、画素を黒色又は白色の何れかに関してフィルタ処理するならば、黒色から白色への変化点は、代替Artcard上のスタートを特徴付ける。最高レベルのプロセスは以下の通りである:

Figure 0004309954
ProcessColumn関数は単純である。走査された列の二つのエリアからの画素は、それらが黒色又は白色のどちらであるかを判定するため閾値フィルタに通される。一定数の白色画素を待ち、所定の個数が検出されたとき、代替Artcardのスタートを報せることが可能である。画素列を処理するロジックは以下の疑似コードに示されている。列中に代替Artcardが検出されなかった場合、0が返される。さもなければ、検出された位置の画素数が返される:
Figure 0004309954
データブロック境界の計算
このステージでは、代替Artcardが検出されている。代替Artcardの回転に応じて、代替Artcardの上部又は代替Artcardの下部の何れかが検出されている。プロセス2の第2ステップはどちらが検出されたかを判定し、フェーズ3のためのデータブロック境界を適切にセットする。 Alternate Artcard Start Position Detection Pixels scanned outside the alternate Artcard area are black (the surface may be black plastic or other non-reflective surface). The border of the alternative Artcard area is white. If the pixel column is processed one by one and the pixel is filtered for either black or white, the transition point from black to white characterizes the start on the alternative Artcard. The highest level process is as follows:
Figure 0004309954
The ProcessColumn function is simple. Pixels from the two areas of the scanned column are passed through a threshold filter to determine whether they are black or white. It is possible to wait for a certain number of white pixels and report the start of the alternative Artcard when a predetermined number is detected. The logic for processing the pixel columns is shown in the following pseudo code. If no alternative Artcard is found in the column, 0 is returned. Otherwise, the number of pixels at the detected position is returned:
Figure 0004309954
Data Block Boundary Calculation At this stage, an alternative Artcard has been detected. Depending on the rotation of the alternative Artcard, either the upper part of the alternative Artcard or the lower part of the alternative Artcard is detected. The second step of process 2 determines which has been detected and sets the data block boundaries for phase 3 appropriately.

フェーズ3を見ると、フェーズ3はデータブロックセグメント境界に関して動作することがわかる。各データブロックは、データブロックのデータ領域を位置検出するためにターゲットを探索すべき場所を決定するため、StartPixel及びEndPixelを含む。 Looking at Phase 3, it can be seen that Phase 3 operates on data block segment boundaries. Each data block includes a StartPixel and an EndPixel to determine where to search for a target to locate the data area of the data block.

画素値がカードの上半分に存在する場合、それを第1のStartPixel境界としてそのまま使用することができる。画素値がカードの下半分に存在する場合、画素値が最後のセグメントのEndPixel境界になるように逆行させることが可能である。代替Artcardのデータサイズの幅で前進又は後退し、各セグメントに適切な境界をセットする。これにより、代替Artcardからのデータ抽出を開始する準備が整う:

Figure 0004309954
MaxPixel値はプロセス3で定義され、SetBounds関数は、0及びMaxPixelに対するStartPixel及びEndPixelクリッピングをセットするだけである。 If the pixel value is in the upper half of the card, it can be used as it is as the first StartPixel boundary. If the pixel value is in the lower half of the card, it can be reversed so that the pixel value is at the EndPixel boundary of the last segment. Move forward or backward by the width of the alternate Artcard data size and set an appropriate boundary for each segment. This is ready to start extracting data from the alternative Artcard:
Figure 0004309954
The MaxPixel value is defined in process 3, and the SetBounds function only sets StartPixel and EndPixel clipping for 0 and MaxPixel.

プロセス3−画素からのビットデータ抽出
これは代替Artcardリーダーアルゴリズムの心臓部である。このプロセスは、CCD画素データからのビットデータ抽出処理に関係する。このプロセスは、本質的に、プロセス2によって作成され、プロセス3によって維持されたスクラッチ情報に基づいて、画素データからビットイメージを作成する。このプロセスの上位レベル概要は図72に示されている。
Process 3-Extract Bit Data from Pixels This is the heart of an alternative Artcard reader algorithm. This process is related to bit data extraction processing from CCD pixel data. This process essentially creates a bit image from pixel data based on the scratch information created by process 2 and maintained by process 3. A high level overview of this process is shown in FIG.

単に代替Artcardの画素列を読み出し、どの画素がどのデータブロックに属しているかを判定するのではなく、プロセス3は、その逆の作用をする。プロセス3は、所定のデータブロックの画素を探索すべき場所がわかっている。プロセス3は、これを行うため、論理的な代替Artcardを8個のセグメントに分割する。各セグメントは、図73に示されるように8個のデータブロックを含む。 Rather than simply reading the alternate Artcard pixel column and determining which pixel belongs to which data block, Process 3 performs the reverse. Process 3 knows where to search for pixels of a given data block. Process 3 does this by splitting the logical alternative Artcard into 8 segments. Each segment includes eight data blocks as shown in FIG.

図示されたセグメントは論理的な代替Artcardと一致する。物理的に、代替Artcardはある量だけ回転させられている可能性が高い。セグメントは、論理的な代替Artcard構造に固定されたままであるため、回転に依存しない。あるセグメントは、以下の2状態のうちの一方をとり得る:
*LookingForTaregets:この状態では、このセグメントの正確なデータブロック位置は未だ決定されていない。ターゲットは、セグメント境界によって指定された境界内の画素列データを走査することによって位置検出されている。ターゲット、並びに、黒色及び白色のためにセットされた境界を用いてデータブロックが位置検出されると、状態は、ExtractingBitImageへ変化する;
*ExtractingBitImage:この状態では、データブロックは正確に位置検出されており、データビットは同時に1ドット列ずつ抽出され、代替Artcardビットイメージに書き込まれる。データブロッククロックマークの追跡は、回転とは無関係に正確なドット復元を与えるので、セグメント境界は無視される。データブロック全体が抽出されると、新しいセグメント境界が、現在位置に基づいて次のデータブロックに対して計算される。状態は、LookingForTargetsへ変化する。
The segment shown is consistent with the logical alternative Artcard. Physically, the alternative Artcard is likely to have been rotated a certain amount. Segments are independent of rotation because they remain fixed to the logical alternative Artcard structure. A segment can have one of two states:
* LookingForTaregets: In this state, the exact data block location for this segment has not yet been determined. The target is located by scanning pixel column data within the boundary specified by the segment boundary. When the data block is located using the target and the boundaries set for black and white, the state changes to ExtractingBitImage;
* ExtractingBitImage: In this state, the position of the data block is accurately detected, and data bits are extracted one by one at the same time and written to the alternative Artcard bit image. Tracking the data block clock mark gives accurate dot restoration independent of rotation, so segment boundaries are ignored. Once the entire data block has been extracted, a new segment boundary is calculated for the next data block based on the current position. The state changes to LookingForTargets.

このプロセスは、各領域から8個ずつの64データブロックの全てが抽出されたときに終了する。 The process ends when all eight 64 data blocks have been extracted from each region.

各データブロックは595のデータ列により構成され、各データ列は48バイトである。好ましくは、データブロック用の2個の方位列がそれぞれ48バイト毎に抽出され、全部で1データブロック当たりに28656バイトが抽出される。簡単のため、2MBのメモリを64×32Kのチャンクに分割することができる。所定のセグメントのn番目のデータブロックは、
SrartBuffer + (256k*n)
で表される場所に格納される。
Each data block is composed of 595 data strings, and each data string is 48 bytes. Preferably, two orientation rows for data blocks are extracted every 48 bytes, and 28656 bytes are extracted per data block in total. For simplicity, a 2 MB memory can be divided into 64 × 32K chunks. The nth data block of a given segment is
SrartBuffer + (256k * n)
It is stored in the location represented by

セグメントのデータ構造
8個のセグメントの各々は、データ構造が関連付けられる。各セグメントを定義するデータ構造は、スクラッチデータエリアに格納される。その構造は以下の表に列挙することができる。
Segment Data Structure Each of the eight segments is associated with a data structure. The data structure that defines each segment is stored in the scratch data area. Its structure can be listed in the table below.

Figure 0004309954
プロセス3の上位レベル
プロセス3は、各セグメントに対して繰り返して、セグメントの現在状態に依存して単一ラインの処理を実行するだけである。擬似コードは以下のように簡潔である:
Figure 0004309954
プロセス3は、指定された時間が経過しても終了しない場合には、外部制御プロセスによって停止される必要がある。これは、データが抽出できなかった場合に限られるであろう。簡単な仕組みは、プロセス1が代替Artcardの読み出しを終了した後にカウントダウンを開始する仕組みである。プロセス3がその時間までに終了しなかった場合、代替Artcardからのデータは復元不可能である。
Figure 0004309954
The upper level process 3 of process 3 only repeats for each segment and performs a single line of processing depending on the current state of the segment. The pseudocode is concise as follows:
Figure 0004309954
If the process 3 does not end even after the specified time has elapsed, it needs to be stopped by an external control process. This would only be the case if data could not be extracted. A simple mechanism is a mechanism in which the countdown starts after the process 1 finishes reading the alternative Artcard. If process 3 does not finish by that time, data from the alternate Artcard cannot be recovered.

CurrentState =LookingForTargets
ターゲットは、同時に1画素列ずつ画素の列を読み出すことによって検出されるのであって、(StartPixelとEndPixelの間にある)所定の画素のバンド内のドットを検出することによって画素のある種のパターンが検出されるのではない。画素列は、全てのターゲットが検出されるか、又は指定された数の列が処理されるまで、同時に1列ずつ処理される。その時点で、ターゲットを処理することが可能であり、データはクロックマークを用いて位置検出される。状態は、データを抽出する時であることを示すためExtractingBitImageに変更される。十分な数の有効ターゲットを位置検出できなかった場合、データブロックは無視され、失敗したデータブロック内の列を確実にスキップし、次のデータブロック内でターゲットを探索するプロセスを再開する。これは以下の擬似コードで表すことができる:

Figure 0004309954
ProcessPixelColumn関数
各画素列は、ターゲットを識別するある種の画素のパターンを探索するため、指定された境界内(StartPixelとEndPixelの間)で処理される。単一ターゲット(ターゲット番号2)の構造は、既に図54に示されている通りである。 CurrentState = LookingForTargets
A target is detected by reading out a column of pixels one pixel column at a time, and is a certain pattern of pixels by detecting dots within a band of predetermined pixels (between StartPixel and EndPixel) Is not detected. The pixel columns are processed one column at a time until all targets are detected or a specified number of columns have been processed. At that point, the target can be processed and the data is located using clock marks. The state is changed to ExtractingBitImage to indicate that it is time to extract data. If a sufficient number of valid targets could not be located, the data block is ignored, ensuring that the columns in the failed data block are skipped and the process of searching for targets in the next data block is resumed. This can be represented by the following pseudo code:
Figure 0004309954
ProcessPixelColumn Function Each pixel column is processed within a specified boundary (between StartPixel and EndPixel) to search for a pattern of certain pixels that identify the target. The structure of the single target (target number 2) is as shown in FIG.

画素の観点から、ターゲットは、以下の事項によって識別することができる:
*左の黒色領域:これは、多数の隣接した黒色画素により構成された多数の画素列であり、ターゲットの最初の部分を構築する;
*ターゲット中心:これは、更なる黒色列の中心にある白色領域である;
*ターゲット番号:これは、黒色で囲まれた白色領域であり、白色領域はその長さによってターゲット番号を定義する;
*第3の黒色領域:これは、ターゲット番号の後の二つの黒色ドット領域である。
From the pixel point of view, the target can be identified by:
* Left black region: This is a number of pixel columns made up of a number of adjacent black pixels, constructing the first part of the target;
* Target center: This is the white area at the center of the further black row;
* Target number: This is a white area surrounded by black, and the white area defines the target number by its length;
* Third black area: This is the two black dot areas after the target number.

要求されるプロセスの概要は図74に示されている。 An overview of the required process is shown in FIG.

識別は黒色又は白色画素だけに基づいているので、各列からの画素1150は、黒色又は白色を検出するためフィルタ1151を通され、次に、ランレングス符号化1152される。ランレングスは、次に、状態機械1153へ送られ、状態機械は、最後の3個のランレングスと、最後から4番目の色を取得する。これらの値に基づいて、ターゲット候補は、識別ステージの各々を通過する。 Since the identification is based solely on black or white pixels, the pixels 1150 from each column are passed through a filter 1151 to detect black or white and then run-length encoded 1152. The run length is then sent to state machine 1153, which obtains the last three run lengths and the penultimate color. Based on these values, the target candidate passes through each of the identification stages.

最大及び最小収集プロセスGatherMin&Max1155は、セグメントの処理中に見つかった最小値及び最大値を保持するだけである。これらは、ターゲットが位置検出されたとき、BlackMax、WhiteMin、及びMidRange値をセットするため使用される。 The maximum and minimum collection process GatherMin & Max 1155 only holds the minimum and maximum values found during processing of the segment. These are used to set the BlackMax, WhiteMin, and MidRange values when the target is located.

各セグメントは、ターゲットの探索においてターゲット構造体の組を保持する。ターゲット構造体自体はメモリ内を動き回らないが、幾つかのセグメント変数はこれらのターゲット構造体へのポインタのリストを指示する。これらの3個のポインタリストを再度示す。 Each segment holds a set of target structures in the target search. The target structures themselves do not move around in memory, but some segment variables point to a list of pointers to these target structures. These three pointer lists are shown again.

Figure 0004309954
これらのリストポインタの各々と関連したカウンタ、即ち、TargetsFound、PossibleTargetCount、及びAvailableTargetCountが存在する。
Figure 0004309954
There are counters associated with each of these list pointers, TargetsFound, PossibleTargetCount, and AvailableTargetCount.

代替Artcardがロードされる前に、TargetsFound及びPossibleTargetCountは0にセットされ、AvailableTargetCountは28(ターゲット境界の最小サイズは40画素であり、データエリアは約1152画素であるので、調査中のターゲット構造体候補の最大数)にセットされる。ターゲットポインタレイアウトの一例は図75に示される。 Before the alternative Artcard is loaded, TargetsFound and PossibleTargetCount are set to 0, and AvailableTargetCount is 28 (the target boundary minimum size is 40 pixels and the data area is about 1152 pixels, so the target structure candidate under investigation The maximum number). An example of the target pointer layout is shown in FIG.

新しいターゲット候補が検出されるとき、それらは、AvailableTargetsリスト1157から取得され、ターゲットデータ構造体は更新され、この構造体へのポインタはPossibleTargetsリスト1158に追加される。ターゲットが完全に検証されたとき、そのターゲットはLocatedTargetsリスト1159へ追加される。ターゲット候補が最終的にターゲットではないことが判明した場合、ターゲット候補はAvailableTargetsリスト1157へ戻される。この結果として、いつでも循環している28個のターゲットポインタが常に存在し、リストの間を移動している。 When new target candidates are detected, they are obtained from the AvailableTargets list 1157, the target data structure is updated, and a pointer to this structure is added to the PossibleTargets list 1158. When the target is fully verified, it is added to the Located Targets list 1159. If the target candidate is finally found not to be a target, the target candidate is returned to the AvailableTargets list 1157. As a result of this, there are always 28 target pointers that are always circulating and moving between lists.

ターゲットデータ構造体1160は以下の形式をとり得る。 The target data structure 1160 can take the following form:

Figure 0004309954
ターゲット検出モジュール1162(図74)内のProcessPixelColumn関数は、全てのランレングスを一つずつ調べ、(StartPixelによって)ランを既存のターゲット候補と比較するか、又は今までに知られていないターゲット候補が検出された場合に、新しいターゲット候補を作成する。全てのケースにおいて、比較はS0.colorが白色であり、S1.colorが黒色である場合に限り行われる。
Figure 0004309954
The ProcessPixelColumn function in the target detection module 1162 (FIG. 74) examines all the run lengths one by one and compares the run (with StartPixel) to an existing target candidate, or a previously unknown target candidate If found, create a new target candidate. In all cases, the comparison is made only if S0.color is white and S1.color is black.

次に、ProcessPixelColumnの擬似コードを示す。第1のターゲットが肯定的に識別された場合、ターゲットをチェックすべき最後の列は、そこから最大距離の範囲内にあるとして決定される。1°の回転がある場合、最大距離は18画素列である:

Figure 0004309954
Figure 0004309954
AddToTargetはターゲット検出モジュール内の関数であり、特定のランを所与のターゲットに加算することができるかどうかを判定する:
*ランがターゲットの開始位置の許容範囲内に入るならば、そのランは現在のターゲットと直接的に関連付けられるので、それに適用することが可能である;
*ランがターゲットの前で始まる場合、既存のターゲットが依然としてOKであり、そのランとは関係がないと想定する。したがって、ターゲットはそのままの状態で残され、返値FALSEは、ランが適用されなかったことを呼び出し元へ通知する。呼び出し元は、引き続いてランをチェックして、ランがその固有の全く新しいターゲットを開始するかどうかを調べる;
*ランがターゲットの後で始まる場合、そのターゲットが候補ターゲットではなくなったと考える。状態は、NotATargetに変更され、返値TRUEが返される;
ランをターゲットに適用すべき場合、特別の動作が現在の状態と、S1、S2及びS3のランの組に基づいて実行される。AddToTargetの擬似コードは以下の通りである:
Figure 0004309954
画素ランのタイプはDeterminRunTypeにおいて以下のように識別される。 Next, pseudo code of ProcessPixelColumn is shown. If the first target is positively identified, the last column to check for the target is determined to be within the maximum distance from it. If there is a 1 ° rotation, the maximum distance is 18 pixel columns:
Figure 0004309954
Figure 0004309954
AddToTarget is a function in the target detection module that determines whether a particular run can be added to a given target:
* If the run falls within the tolerance of the target start position, it can be applied to it because it is directly associated with the current target;
* If a run begins before a target, assume that the existing target is still OK and has nothing to do with that run. Therefore, the target is left as is, and a return value of FALSE notifies the caller that the run was not applied. The caller continues to check the run to see if the run starts its own entirely new target;
* If a run begins after a target, consider that the target is no longer a candidate target. The state is changed to NotATarget and the return value TRUE is returned;
When a run is to be applied to a target, a special action is performed based on the current state and the set of S1, S2, and S3 runs. The pseudo code for AddToTarget is as follows:
Figure 0004309954
The type of pixel run is identified as follows in DeterminRunType.

Figure 0004309954
状態推定手続EvaluateStateは現在の状態及びランタイプに依存して動作する。
Figure 0004309954
The state estimation procedure EvaluateState operates depending on the current state and run type.

その動作は以下に表形式で示される。 The operation is shown in tabular form below.

Figure 0004309954
ターゲット処理
位置検出されたターゲット(LocatedTargetsリスト内)は、位置検出された順序で記憶される。代替Artcardの回転に依存して、これらのターゲットは、画素昇順又は画素降順である。その上、ターゲットから復元されたターゲット番号は、誤りがあるかもしれない。また、間違ったターゲットを復元したかもしれない。クロックマーク推定量が取得できる前に、ターゲットは、無効ターゲットが確実に廃棄されるように処理する必要があり、有効ターゲットは、間違っているならばターゲット番号が修復される(例えば、ごみのために破損されたターゲット番号)。二つの主要なステップが関連している:
*ターゲットを画素昇順にソートするステップ;
*誤りのあるターゲット番号を見つけ、修復するステップ。
Figure 0004309954
Targets for which target processing positions have been detected (in the LocateTargets list) are stored in the order in which they have been detected. Depending on the rotation of the alternative Artcard, these targets are in pixel ascending order or pixel descending order. Moreover, the target number recovered from the target may be in error. You may have restored the wrong target. Before the clock mark estimator can be obtained, the target must be processed to ensure that invalid targets are discarded, and valid targets are repaired if the target number is incorrect (for example, because of garbage) Damaged target number). Two main steps are related:
* Sorting targets in ascending pixel order;
* Find and repair the wrong target number.

最初のステップは簡単である。ターゲット検索の性質は、データが画素昇順又は画素降順の何れかで常に記憶されるべきことを意味する。簡単なスワップソートは、6個のターゲットが既に正しくソートされているならば、最大で14回の比較がスワップ無しに行われる。データがソートされていない場合、14回の比較は3回の3回のスワップと共に行われる。以下の擬似コードはソーティングプロセスを示す:

Figure 0004309954
誤ったターゲット番号を位置検出し修復することは、多少複雑になる。順番に、検出されたN個のターゲットの各々が正しいと仮定される。他のターゲットは、この「正しい」ターゲットと比較され、TargetNが正しい場合に変更を必要とするターゲットの個数がカウントされる。変更の回数が0であるならば、全てのターゲットは既に正しい筈である。さもなければ、他のターゲットに対して要求する変更の回数が最も少ないターゲットが変更の基準として使用される。所与のターゲットのターゲット番号及び画素位置が、「正しい」ターゲットの画素位置及びターゲット番号と比較されたときに、相互に関連しないならば、変更が登録される。この変更は、ターゲットのターゲット番号の更新を意味し、或いは、ターゲットの削除を意味する。上昇するターゲットは、(既にソートされているので)昇順の画素を有すると仮定することができる:
Figure 0004309954
多くの場合、この関数は
bestChanges = 0
で終了しており、これは変更が要求されないことを意味している。そうでない場合、変更を適用する必要がある。変更を適用する機能は、targetNumber との比較までは、(上述の擬似コードにおいて)変更をカウントすることと同一である。変更アプリケーションは以下の通りである:
Figure 0004309954
変更ループの最後に、LocatedTargetsリストをコンパクトにして、全てのヌルターゲットを削除する必要がある。 The first step is simple. The nature of the target search means that data should always be stored in either pixel ascending order or pixel descending order. A simple swap sort allows up to 14 comparisons to be performed without swapping if the six targets are already correctly sorted. If the data is not sorted, 14 comparisons are made with 3 3 swaps. The following pseudocode shows the sorting process:
Figure 0004309954
Locating and repairing the wrong target number is somewhat complicated. In turn, each of the detected N targets is assumed to be correct. Other targets are compared to this “correct” target and the number of targets that need to be changed if TargetN is correct is counted. If the number of changes is 0, all targets are already correct. Otherwise, the target that requires the least number of changes to other targets is used as the basis for change. A change is registered if the target number and pixel position of a given target are not interrelated when compared to the “correct” target pixel position and target number. This change means update of the target number of the target or deletion of the target. Ascending targets can be assumed to have ascending pixels (since they are already sorted):
Figure 0004309954
In many cases this function is
bestChanges = 0
This means that no changes are required. If not, changes need to be applied. The function of applying changes is the same as counting changes (in the pseudocode above) until comparison with targetNumber. The modified applications are as follows:
Figure 0004309954
At the end of the change loop, we need to compact the LocateTargets list and remove all null targets.

この手続の最後に、数個のターゲットが存在する可能性がある。残っている全てのターゲット(少なくとも2個のターゲットが必要である)は、クロックマーク及びデータ領域の位置を検出するため使用される。 There may be several targets at the end of this procedure. All remaining targets (at least two targets are required) are used to detect the position of the clock mark and data area.

図55に示されるように、上側領域の第1のクロックマークドット1126は、第1のTarget1124の中心から55ドット離れている(これはターゲット中心間の距離と同じである)。クロックマークドットの中心は更に1ドット遠ざかり、黒色境界線1123は第1のクロックマークドットから更に4ドット離れている。下側領域の第1のクロックマークドットは、上側領域の第1のクロックマークドット1126から正確に7ターゲットの距離(7×55ドット)離れている。 As shown in FIG. 55, the first clock mark dot 1126 in the upper region is 55 dots away from the center of the first Target 1124 (this is the same as the distance between the target centers). The center of the clock mark dot is further one dot away, and the black boundary line 1123 is further four dots away from the first clock mark dot. The first clock mark dot in the lower area is exactly 7 targets (7 × 55 dots) away from the first clock mark dot 1126 in the upper area.

Target1及び6が見つかっていると仮定し得ないので、最も上側のターゲット及び最も下側のターゲットを使用する必要があり、どのターゲットが使用されているかを判定するためターゲット番号を使用する。この時点で少なくとも2個のターゲットが必要である。その上、ターゲット中心は、実際のターゲット中心の推定値に過ぎない。それは、ターゲット中心をより正確に位置検出することである。ターゲットの中心は、黒色に囲まれた白色である。したがって、画素次元と列次元の両方で極大を見つけることが望ましい。これには、連続した画像を再構築することが必要である。なぜならば、最大値が整数バウンダリ(本例の推定値)に厳密に合わせられる可能性は殆ど無いからである。 Since it cannot be assumed that Targets 1 and 6 have been found, the uppermost target and the lowermost target need to be used, and the target number is used to determine which target is being used. At this point, at least two targets are required. Moreover, the target center is only an estimate of the actual target center. It is to detect the target center more accurately. The center of the target is white surrounded by black. Therefore, it is desirable to find local maxima in both pixel dimensions and column dimensions. This requires reconstructing successive images. This is because there is almost no possibility that the maximum value is strictly matched to the integer boundary (the estimated value in this example).

連続した画像をターゲットの中心の周りに構築する前に、2個のターゲット中心のより良い推定値を作成することが必要である。既存のターゲット中心は、実施には、ターゲット中心の境界ボックスの左上座標である。ターゲットの中心を画成するエリアを見つけるため各画素を一つずつ調べ、最高値を有する画素を検出することは、簡単なプロセスである。同じ最高画素値を有する画素は2個以上存在する場合もあるが、中心値の推定には1個の画素があればよい。 Before building a continuous image around the center of the target, it is necessary to make a better estimate of the two target centers. The existing target center is, in practice, the upper left coordinate of the target center bounding box. Examining each pixel one by one to find the area that defines the center of the target and finding the pixel with the highest value is a simple process. There may be two or more pixels having the same maximum pixel value, but it is sufficient to have one pixel for estimating the center value.

擬似コードは簡単であり、2個のターゲットの各々に対して実行される:

Figure 0004309954
このプロセスの最後に、ターゲット中心座標は、実際の中心の1画素の範囲に収まるべきターゲットの最も白い画素を指示する。ターゲット中心のより正確な位置を構築するプロセスには、推定されたターゲット中心の両側に3個ずつで、ターゲットの7個の走査線スライスの連続信号を再構築することが含まれる。検出された7個の最大値(上記の画素スライスの各々につき1個ずつ)は、列次元において連続信号を再構築し、次に、その次元における最大値の位置を検出するために使用される:
Figure 0004309954
FindMaxは、元の1次元信号に基づくサンプル点を再構築し、最大値の位置及び検出された最大値を返す関数である。使用される信号再構築/再サンプリング方法は、図76に示されるように、Lanczos3窓sinc関数である。 The pseudocode is simple and is executed for each of the two targets:
Figure 0004309954
At the end of this process, the target center coordinates indicate the whitest pixel of the target that should fall within the range of one pixel in the actual center. The process of building a more accurate location of the target center includes reconstructing a continuous signal of seven scan line slices of the target, three on each side of the estimated target center. The seven maximum values detected (one for each of the above pixel slices) are used to reconstruct a continuous signal in the column dimension and then detect the position of the maximum value in that dimension. :
Figure 0004309954
FindMax is a function that reconstructs a sample point based on the original one-dimensional signal and returns the position of the maximum value and the detected maximum value. The signal reconstruction / resampling method used is a Lanczos 3 window sinc function, as shown in FIG.

Lancoz3窓sinc関数は、再構築された次元から、推定位置Xの周りに集められた、即ち、X−3、X−2、X−1、X、X+1、X+2、X+3にある7(画素)サンプルを取得する。X−1からX+1の間に、0.1の間隔で点を再構築し、最大となる点を決定する。最大値である位置が新しい中心になる。カーネルの性質上、XとX+1の間の点に対してコンボリューションカーネルに必要なエントリーは6個だけである。X−1からXに対して6個の点と使用し、XからX+1に対して6個の点を使用し、X−1からX+1間での画素値を得るために全体として7点が必要である。なぜならば、要求された画素の一部は一致するからである。 Lancoz 3 window sinc functions were collected around the estimated position X from the reconstructed dimension, ie, 7 (pixels) at X-3, X-2, X-1, X, X + 1, X + 2, X + 3. Get a sample. Points are reconstructed at intervals of 0.1 between X-1 and X + 1 to determine the maximum point. The position with the maximum value becomes the new center. Due to the nature of the kernel, only 6 entries are required in the convolution kernel for points between X and X + 1. 6 points are used for X-1 to X, 6 points are used for X to X + 1, and a total of 7 points are required to obtain a pixel value between X-1 and X + 1 It is. This is because some of the requested pixels match.

最も上側のターゲットから最も下側のターゲットまでに正確な推定値が与えられた場合、上側領域及び下側領域に対して第1のクロックマークドットの位置を以下のようにして計算することができる:

Figure 0004309954
これにより第1のクロックマークドットが得られる。列位置は、クロックマークの中心へ到達するため、データエリアから更に1ドット遠くへ動かすことが必要である。また、画素位置は、境界線の中心へ到達するため、更に4ドット遠ざける必要がある。deltaColumn及びdeltaPixelの疑似コード値は、55ドットの距離(ターゲット間の距離)に基づいているので、これらのデルタは、クロックマーク座標に適用される前に、それぞれ、1/55及び4/55によって縮小しなければならない。これは以下の通りに表現される:
kDeltaDotFactor =
1/DOTS_BETWEEN_TARGET_CENTRES
deltaColumn *= kDeltaDotFactor
deltaPixel *= 4 * kDelteDotFactor
UpperClock.pixel -= deltaPixel
UpperClock.column -= deltaColumn
LowerClock.pixel += deltaPixel
LowerClock.column += deltaColumn
UpperClock及びLowerClockは、ターゲットの中心とちょうど合致した第1のクロックマークに対する有効クロックマーク推定値である。 If accurate estimates are given from the uppermost target to the lowermost target, the position of the first clock mark dot can be calculated for the upper and lower regions as follows: :
Figure 0004309954
As a result, a first clock mark dot is obtained. In order to reach the center of the clock mark, the column position needs to be moved further one dot away from the data area. Further, the pixel position needs to be further separated by 4 dots in order to reach the center of the boundary line. Since the pseudocode values for deltaColumn and deltaPixel are based on a 55 dot distance (distance between targets), these deltas are 1/55 and 4/55, respectively, before being applied to clock mark coordinates. Must be reduced. This is expressed as follows:
kDeltaDotFactor =
1 / DOTS_BETWEEN_TARGET_CENTRES
deltaColumn * = kDeltaDotFactor
deltaPixel * = 4 * kDelteDotFactor
UpperClock.pixel-= deltaPixel
UpperClock.column-= deltaColumn
LowerClock.pixel + = deltaPixel
LowerClock.column + = deltaColumn
UpperClock and LowerClock are the effective clock mark estimates for the first clock mark that exactly matches the center of the target.

黒色及び白色画素/ドットレンジの設定
データをデータエリアから抽出する前に、黒色及び白色ドットの画素レンジを確認する必要がある。LookingForTaregets中に現れた最小値及び最大値は、それぞれ、WhiteMin及びBlackMaxに保存されているが、これらは、データ抽出に関してこれらの変数の有効な値を表現していない。それらは、単に、記憶の便宜上、使用されるだけである。以下の疑似コードは、出現した最小画素及び最大画素に基づいてWhiteMin及びBlackMaxの良い値を獲得する方法を示している:
MinPixel = WhiteMin
MaxPixel = BlackMax
MidRange = (MinPixel + MaxPixel)/2
WhiteMin = MaxPixel - 105
BlackMax = MinPixel + 84
CurrentState = ExtractingBitImage
ExtractingBitImage状態は、データブロックが、ターゲットによって既に正確に位置検出された状態であり、ビットデータは、同時に1ドット列毎に抽出中であり、代替Artcardビットイメージに書き込まれている。データブロッククロックマーク/境界の追跡によって、回転とは無関係に正確なドット復元が行われ、セグメント境界は無視される。データブロック全体(595個のデータ列と2個の方位列を併せて、48バイトずつの597列)が抽出されると、新しいセグメント境界が現在位置に基づいて次のデータブロックのために計算される。この状態は、LookingForTargets状態に変更される。
Before extracting setting data of black and white pixels / dot range from the data area, it is necessary to check the pixel ranges of black and white dots. The minimum and maximum values that appear in LookingForTaregets are stored in WhiteMin and BlackMax, respectively, but they do not represent valid values for these variables in terms of data extraction. They are only used for convenience of storage. The following pseudo code shows how to obtain good values for WhiteMin and BlackMax based on the smallest and largest pixels that appeared:
MinPixel = WhiteMin
MaxPixel = BlackMax
MidRange = (MinPixel + MaxPixel) / 2
WhiteMin = MaxPixel-105
BlackMax = MinPixel + 84
CurrentState = ExtractingBitImage
The ExtractingBitImage state is a state where the position of the data block has already been accurately detected by the target, and bit data is being extracted for each dot row at the same time, and is written in the alternative Artcard bit image. Data block clock mark / boundary tracking provides accurate dot restoration independent of rotation and ignores segment boundaries. When the entire data block (597 columns of 595 data columns and 2 bearing columns, 48 bytes each) is extracted, a new segment boundary is calculated for the next data block based on the current position. The This state is changed to LookingForTargets state.

所与のドット列の処理には以下の二つのタスクが必要である:
*第1のタスクは、クロックマークを用いて特定のデータのドット列の位置を検出することである;
*第2のタスクは、ドット列を追跡して、1ドットにつき1ビットずつビット値を集めることである。
The processing of a given dot sequence requires two tasks:
* The first task is to detect the position of the dot row of specific data using clock marks;
* The second task is to track the dot row and collect bit values one bit per dot.

これらの二つのタスクは、列のデータが代替Artcardから読み出され、DRAMへ転送された場合に限り行うことができる。これは、プロセス1がどの走査線まで到達しているかをチェックし、それをクロックマーク列と比較することによって判定される。ドットデータがDRAMに存在するとき、クロックマークを更新し、クロックマークを次のドット列に対する推定値へ進める前に、列からデータを抽出することが可能である。このプロセスの概要は、以下の疑似コードに示されている。具体的な関数については後述する:

Figure 0004309954
ドット列の位置検出
所定のドット列は、ドットを読み出し、データを抽出する前に、位置検出されなければならない。これは、データブロックの上側及び下側境界に沿ってクロックマーク/境界線を追跡することによって実現される。位相ロックループと等価的なソフトウェアが使用され、たとえクロックマークが破損されていても、クロックマーク位置の良い推定が確実に行われる。図77は、例示的なデータブロックの左上の説明図であり、そのデータブロックのコーナーには、ターゲットエリアの外側へ広がる3ドット高のクロックマーク1166と、白色行と、黒色境界線と、が現されている。 These two tasks can only be performed if the data in the column is read from the alternative Artcard and transferred to the DRAM. This is determined by checking which scan line process 1 has reached and comparing it to the clock mark train. When dot data is present in the DRAM, it is possible to extract data from the row before updating the clock mark and advancing the clock mark to the estimated value for the next dot row. An overview of this process is shown in the pseudo code below. Specific functions are described below:
Figure 0004309954
Detecting the position of a dot row The position of a predetermined dot row must be detected before reading the dots and extracting the data. This is achieved by tracking clock marks / boundaries along the upper and lower boundaries of the data block. Software equivalent to a phase locked loop is used to ensure a good estimate of the clock mark position even if the clock mark is corrupted. FIG. 77 is an explanatory diagram at the upper left of an exemplary data block. At the corner of the data block, there are a 3-dot high clock mark 1166 extending outside the target area, a white line, and a black border. It is shown.

初期的に、第1の黒色クロックマークの位置の推定値が(ターゲット位置に基づいて)提供される。正確な垂直位置(画素)を得るため黒色境界が使用され、正確な水平位置(列)を得るため、例えば、クロックマーク1166が使用される。これらは、UpperClock及びLowerClockの位置に反映される。 Initially, an estimate of the position of the first black clock mark is provided (based on the target position). A black border is used to obtain an accurate vertical position (pixel), and a clock mark 1166, for example, is used to obtain an accurate horizontal position (column). These are reflected in the positions of UpperClock and LowerClock.

クロックマーク推定値が取得され、その近傍の画素を調べることにより、連続した信号が再構築され、正確な中心が決定される。2次元をクロックマークと境界に分解しているので、これは、簡単な1次元プロセスであり、2回実行する必要がある。しかし、これは、位置合わせの相手側の黒色クロックマークが存在するとき、2ドット列について1回だけ行われる。白色クロックマークの場合、単に推定値を使用し、推定値はそのままにしておく。或いは、(常に存在するので)ドット列毎に境界に基づいて画素座標を更新してもよい。実際上、(黒色クロックマークを含む)1列おきに両方の座標を更新すれば十分である。なぜならば、この動作中の解像度は非常に精細だからである。したがって、このプロセスは次のようになる:

Figure 0004309954
所定の許容度(MAX_CLOCKMARK_DEVIATION)を上回る偏差が存在する場合、検出された信号は無視され、推定値からの最大許容度に収まる偏差だけが許容される。この点に関して、この機能はフェーズロックループの機能と類似している。したがって、DetermineAccurateUpperDotCenter関数は以下の疑似コードによって実現される:
Figure 0004309954
また、DetermineAccurateLowerDotCenter関数は、境界からクロックマークまでの向きが負方向である(+3ドットではなく、−3ドットである)点を除くと同様である。 A clock mark estimate is obtained and by examining the neighboring pixels, a continuous signal is reconstructed and the exact center is determined. This is a simple one-dimensional process and needs to be performed twice, since the two dimensions are broken down into clock marks and boundaries. However, this is done only once for a 2-dot row when there is a black clock mark on the other side of the alignment. In the case of a white clock mark, simply use the estimated value and leave the estimated value as it is. Alternatively, the pixel coordinates may be updated based on the boundary for each dot row (because it always exists). In practice, it is sufficient to update both coordinates every other column (including the black clock mark). This is because the resolution during this operation is very fine. So this process looks like this:
Figure 0004309954
If there is a deviation that exceeds a predetermined tolerance (MAX_CLOCKMARK_DEVIATION), the detected signal is ignored and only a deviation that falls within the maximum tolerance from the estimate is allowed. In this respect, this function is similar to that of a phase-locked loop. Therefore, the DetermineAccurateUpperDotCenter function is realized by the following pseudo code:
Figure 0004309954
In addition, the DetermineAccurateLowerDotCenter function is the same except that the direction from the boundary to the clock mark is negative (-3 dots instead of +3 dots).

GetAccuratePixel及びGetAccurateColumnは、座標が与えられた場合に、一次元だけの観点で正確なドット中心を決定する関数である。正確なドット中心の決定は、信号を再構成し、最小信号値が検出された位置を見つけるプロセスである(これは、ターゲット中心は黒色ではなく白色であるために、信号の最大値の位置を検出することによりターゲット中心の位置を検出するプロセスとは異なる)。このアプリケーションの信号再構成/再サンプリングのために選択された方法は、図76を参照して説明したようなLanczos3窓sinc関数である。 GetAccuratePixel and GetAccurateColumn are functions that determine an accurate dot center from a one-dimensional viewpoint when given coordinates. Determining the exact dot center is the process of reconstructing the signal and finding the position where the minimum signal value was detected (this is because the target center is white, not black, so the maximum position of the signal is This is different from the process of detecting the position of the target center by detecting it). The method selected for signal reconstruction / resampling for this application is the Lanczos 3 window sinc function as described with reference to FIG.

クロックマーク又は境界は何らかの方法で、おそらくは、ひっかきによって、傷つけられている可能性がある。再サンプリングによって得られた新しい中心値と推定値との差が許容量を超える場合、中心値は最大許容量だけ動かされる。それが無効な位置である場合、データ回復に使用するために十分に接近しているはずであり、更なるクロックマークはその位置に再度合わせられる。 The clock mark or boundary may have been damaged in some way, possibly by scratching. If the difference between the new center value obtained by resampling and the estimated value exceeds the tolerance, the center value is moved by the maximum tolerance. If it is an invalid position, it should be close enough to be used for data recovery, and additional clock marks are realigned to that position.

第1のデータドットの中心と後続のドットへのデルタの決定
正確なUpperClock及びLowerClock位置が決定されると、第1のデータドットの中心(CurrentDot)と、列内の後続のドットへ進めるためにその中心位置に加算されるべきデルタ量(DataDelta)とを計算することができる。
Determining Delta to First Data Dot Center and Subsequent Dots Once the exact UpperClock and LowerClock positions are determined, to advance to the first data dot center (CurrentDot) and subsequent dots in the row A delta amount (DataDelta) to be added to the center position can be calculated.

最初に行うべきことは、ドット列のデルタを計算することである。これは、単に、LowerClockからUpperClockを減算し、2点間のドット数で除算することによって実現される。実際にはドット数の逆数を乗算することが可能である。なぜならば、ドット数は代替Artcardに関して定数であり、且つ乗算の方が高速に行われるからである。画素次元のデルタと列次元のデルタを獲得するため、異なる定数を使用することが可能である。画素のデルタは二つの境界間の距離であり、列のデルタは二つのクロックマークの中心間である。このようにして、関数DeternineDataInfoは二つの部分からなる。第1の部分は次の擬似コードによって表される:
kDeltaColumnFactor =
1/(DOTS_PER_DATA_COLUMN+2+2-1)
kDeltaPixelFactor =
1/(DOTS_PER_DATA_COLUMN+5+5-1)
delta = LowerClock.column -
UpperClock.column
DataDelta.column = delta *
kDeltaColumnFactor
delta = LowerClock.pixel - UpperClock.pixel
DataDelta.pixel = delta * kDeltaPixelFactor
次に、列の第1のデータの中心を決定することが可能である。クロックマークの中心から第1のデータドットの中心までの距離は2ドットであり、境界の中心から第1のデータドットの中心までの距離は5ドットである。この関数の第2の部分は次の擬似コードによって表される:
CurrentDot.column = UpperClock.column + (2*DataDelta.column)
CurrentDot.pixel = UpperClock.pixel +
(5*DataDelta.pixel)
ドット列の追跡
ドット列はクロックマークに追従する位相ロックループから見つけられたので、残っていることは、その列を下って各ドットの中心でドット列をサンプリングすることだけである。変数CurrentDot点は現在列の第1のドットの中心に決定される。列の次のドットへ進むためには、DataDeltaを加算するだけでよい(2回の加算:1回は列座標のため、もう1回は画素座標のため)。所定の座標におけるドットのサンプリング(バイリニア補間)が行われ、ドットの中心を表現する画素値が決定される。画素値は、次に、そのドットのビット値を決定するため使用される。しかし、より良いビット判定を行うため、同一ドットライン上の2個の周辺ドットに対する中心値と関連して、その画素値を使用することが可能である。
The first thing to do is calculate the dot row delta. This is achieved simply by subtracting UpperClock from LowerClock and dividing by the number of dots between the two points. In practice, it is possible to multiply the inverse of the number of dots. This is because the number of dots is a constant with respect to the alternative Artcard, and multiplication is performed at a higher speed. Different constants can be used to obtain the pixel dimension delta and the column dimension delta. The pixel delta is the distance between the two boundaries, and the column delta is between the centers of the two clock marks. In this way, the function DeternineDataInfo consists of two parts. The first part is represented by the following pseudo code:
kDeltaColumnFactor =
1 / (DOTS_PER_DATA_COLUMN + 2 + 2-1)
kDeltaPixelFactor =
1 / (DOTS_PER_DATA_COLUMN + 5 + 5-1)
delta = LowerClock.column-
UpperClock.column
DataDelta.column = delta *
kDeltaColumnFactor
delta = LowerClock.pixel-UpperClock.pixel
DataDelta.pixel = delta * kDeltaPixelFactor
Next, it is possible to determine the center of the first data in the column. The distance from the center of the clock mark to the center of the first data dot is 2 dots, and the distance from the center of the boundary to the center of the first data dot is 5 dots. The second part of this function is represented by the following pseudo code:
CurrentDot.column = UpperClock.column + (2 * DataDelta.column)
CurrentDot.pixel = UpperClock.pixel +
(5 * DataDelta.pixel)
Tracking the dot row Since the dot row was found from the phase locked loop following the clock mark, all that remains is to sample the dot row down the row at the center of each dot. The variable CurrentDot point is determined at the center of the first dot in the current row. To advance to the next dot in the row, you only need to add DataDelta (two additions: once for row coordinates and once for pixel coordinates). Dot sampling (bilinear interpolation) at predetermined coordinates is performed, and a pixel value representing the center of the dot is determined. The pixel value is then used to determine the bit value of that dot. However, in order to perform better bit determination, it is possible to use the pixel value in association with the center value for two neighboring dots on the same dot line.

抽出されたドット列内のドットに対する全ての画素はこの時点でDRAMにロードされていると仮定してもよい。なぜならば、ラインの両端(クロックマーク)がDRAMに存在するならば、これらの2個のクロックマークの間のドットも間違いなくDRAMに存在するからである。更に、データブロック高さは十分に低いので(384ドット高にすぎない)、単なるデルタだけがラインの全長を越えるために十分であることが保証される。カードが8個のデータブロック高さに分割されている理由の一つは、単一のデータブロックに関して行うことができる保証と同じ厳格な保証を、カードの全高に亘って行うことが不可能だからである。 It may be assumed that all the pixels for the dots in the extracted dot row are loaded into the DRAM at this point. This is because if both ends of the line (clock marks) are present in the DRAM, the dots between these two clock marks are definitely present in the DRAM. Furthermore, the data block height is low enough (only 384 dots high) to ensure that only a delta is sufficient to exceed the total length of the line. One reason the card is divided into 8 data block heights is because it is impossible to make the same strict guarantees that can be made over a single data block across the entire height of the card. It is.

単一ラインのデータ(48バイト)を抽出する上位レベルプロセスは、以下の疑似コードで表される。データバッファポインタは、各バイトが保存されるのに伴ってインクリメントされ、連続したバイト及びデータの列が確実に連続的に保存される:

Figure 0004309954
GetPixel関数はドット座標(固定小数点)を取得し、バイリニア補間によって中心画素値に達するため、4個のCCD画素をサンプリングする。 The upper level process for extracting a single line of data (48 bytes) is represented by the following pseudo code: The data buffer pointer is incremented as each byte is saved, ensuring that consecutive bytes and columns of data are continuously saved:
Figure 0004309954
The GetPixel function obtains dot coordinates (fixed point) and samples four CCD pixels to reach the center pixel value by bilinear interpolation.

DetermineCenterDot関数は、ビット値が決定されたドットの両側にあるドット中心を表現する画素値を取得し、その中心ドットのビット値の値を知的に推定することを試みる。図64の一般化されたブラー効果曲線から、以下の三つの一般的なケースが考えられる:*ドットの中心画素値はWhiteMinよりも小さいので、確実に黒色ドットである。したがって、ビット値は必ず1である;
*ドットの中心値はBlackMaxよりも大きいので、確実に白色ドットである。したがって、ビット値は必ず0である;
*ドットの中心値は、BlackMaxとWhiteMinの間のどこかにある。ドットは黒色かもしれないし、白色かもしれない。したがって、このビットの値が問題になる。ビットの値を合理的に推定するため、多数の方式が考えられている。これらの方式は、精度に対して複雑さのバランスを取り、ある種のケースでは、保証された解決策が存在しないことを考慮する必要がある。誤ったビット判定を行うケースでは、ビットのリード・ソロモンシンボルに誤りが生じ、フェーズ2のリード・ソロモン復号化ステージで訂正しなければならない。
The DetermineCenterDot function obtains a pixel value representing a dot center on both sides of a dot whose bit value has been determined, and tries to intelligently estimate the value of the bit value of the center dot. From the generalized blur effect curve of FIG. 64, the following three general cases can be considered: * The center pixel value of the dot is smaller than WhiteMin, so it is definitely a black dot. Therefore, the bit value is always 1;
* Since the dot center value is larger than BlackMax, it is definitely a white dot. Therefore, the bit value is always 0;
* The dot center value is somewhere between BlackMax and WhiteMin. The dots may be black or white. Therefore, the value of this bit becomes a problem. A number of schemes have been considered to reasonably estimate the bit value. These schemes balance complexity against accuracy, and in certain cases it must be taken into account that there is no guaranteed solution. In the case of erroneous bit determination, an error occurs in the Reed-Solomon symbol of the bit and must be corrected in the Phase 2 Reed-Solomon decoding stage.

画素値がBlackMaxとWhiteMinの間に入るときにドットの値を決定するため使用される方式は、あまり複雑ではないが、優れた結果を与える。この方式は、門対となっているドットの左及び右にあるドット中心の画素値を使用して、中心ドットのよりもっともらしい値を決定する。即ち、
*両側の2個のドットがMidRange(平均ドット値)の白色側に存在する場合、中心ドットが白色であるならば、「確実に」白色であると推定することができる。その中心ドットが不確実な領域に存在するということは、そのドットが黒色であり、その値をより不確実にするため周辺の白色ドットによる影響を受けたということを示す。したがって、そのドット値は黒色であると考えられるので、そのビット値は1である;
*両側の2個のドットがMidRangeの黒色側に存在する場合、中心ドットが黒色であるならば、「確実に」黒色であると推定することができる。その中心ドットが不確実な領域に存在するということは、そのドットが白色であり、その値をより不確実にするため周辺の黒色ドットによる影響を受けたということを示す。したがって、そのドット値は白色であると考えられるので、そのビット値は0である;
*一方のドットがMidRangeの黒色側に存在し、もう一方のドットがMidRangeの白色側に存在するならば、中心ドット値をそのまま使用して決定する。中心ドットがMidRangeの黒色側に存在するならば、黒色(ビット値1)を選択する。さもなければ、白色(ビット値0)を選択する。
The scheme used to determine the dot value when the pixel value falls between BlackMax and WhiteMin is not very complex but gives excellent results. This scheme uses the pixel values of the dot centers at the left and right of the gated dot to determine a more plausible value for the center dot. That is,
* If the two dots on both sides are present on the white side of the MidRange (average dot value), it can be assumed that if the center dot is white, it is “certainly” white. The presence of the central dot in the uncertain area indicates that the dot is black and has been affected by surrounding white dots to make the value more uncertain. Therefore, the bit value is 1 because the dot value is considered to be black;
* If two dots on both sides are present on the black side of the MidRange, it can be assumed that if the center dot is black, it is “certainly” black. The presence of the central dot in an uncertain area indicates that the dot is white and has been affected by surrounding black dots to make the value more uncertain. Therefore, the bit value is 0 because the dot value is considered white.
* If one dot is present on the black side of MidRange and the other dot is present on the white side of MidRange, the center dot value is used as it is. If the central dot is on the black side of MidRange, select black (bit value 1). Otherwise, white (bit value 0) is selected.

このロジックは以下のように表現される:

Figure 0004309954
ここから、周辺画素値の使用は、中心ドットの状態の優れた指標を与え得ることが認められる。ここで説明した方式は、同じ行からのドットだけを使用しているが、単一のドットライン履歴(前のドットライン)の使用は、明らかに代替的な構成になるであろう。 This logic is expressed as follows:
Figure 0004309954
From this it can be seen that the use of peripheral pixel values can provide an excellent indicator of the state of the central dot. Although the scheme described here uses only dots from the same row, the use of a single dot line history (previous dot line) would obviously be an alternative configuration.

次の列のためのクロックマーク更新
ある列の第1のデータドットの中心が決定されると、クロックマーク値は不要になる。それらは、その列に対するデータが獲得された後、次の列の準備のため更新する方が好都合である。クロックマークの向きは、ドット列に沿って下りるドットの追跡方向に対して垂直であるため、列を更新するため画素デルタを使用し、両方のクロックの画素を更新するため列デルタを使用することが可能である:
UpperClock.column += DataDelta.pixel
LowerClock.column += DataDelta.pixel
UpperClock.pixel -= DataDelta.column
LowerClock.pixel -= DataDelta.column
この時点で、次のドット列の推定値が得られる。
Clock mark update for the next column Once the center of the first data dot in a column is determined, the clock mark value is no longer needed. They are more conveniently updated in preparation for the next column after the data for that column has been acquired. Because the clock mark orientation is perpendicular to the tracking direction of the dots descending along the dot row, use the pixel delta to update the row and use the column delta to update the pixels of both clocks Is possible:
UpperClock.column + = DataDelta.pixel
LowerClock.column + = DataDelta.pixel
UpperClock.pixel-= DataDelta.column
LowerClock.pixel-= DataDelta.column
At this point, an estimated value for the next dot row is obtained.

タイミング
タイミングの必要条件は、DRAM利用率が100%を超えない限り充たされ、並列アルゴリズムの追加によってタイミングが増大されるがDRAM利用率は100%を超えない。DRAM利用率はプロセス1に関して特定され、このプロセス1は各画素を1回ずつ連続的に書き込み、DRAM帯域幅の9%を消費する。
The timing timing requirement is met as long as the DRAM utilization does not exceed 100%, and the timing is increased by the addition of a parallel algorithm, but the DRAM utilization does not exceed 100%. DRAM utilization is specified with respect to process 1, which writes each pixel once and continuously, consuming 9% of the DRAM bandwidth.

このセクションに記載されるようなタイミングは、DRAMが代替Artcardリー
ダーアルゴリズムの要求に容易に対処し得ることを示す。したがって、タイミングのボトルネックは、DRAMアクセスではなく、ロジック速度に関するアルゴリズムの実装であろう。しかし、アルゴリズムは、アーキテクチャの単純さに留意して設計され、メモリサイクル毎に最小限の個数の論理演算しか要求しない。この点で、実装された状態機械又は等価的なCPU/DSPアーキテクチャが以下のサブセクションに記載されているように実行可能である限り、目標速度は達成されるであろう。
Timing as described in this section indicates that the DRAM can easily accommodate the demands of an alternative Artcard reader algorithm. Thus, the timing bottleneck will be the implementation of algorithms related to logic speed rather than DRAM access. However, the algorithm is designed with architectural simplicity in mind and requires a minimal number of logical operations per memory cycle. In this regard, the target speed will be achieved as long as the implemented state machine or equivalent CPU / DSP architecture is feasible as described in the following subsections.

ターゲット位置検出
ターゲットは画素列の境界内の画素を読み出すことによって位置検出される。各画素は高々1個ずつ読み出される。ランレングスエンコーダが十分高速に動作する場合を考えると、ターゲットの位置検出の限界はメモリアクセスである。したがって、アクセスはプロセス1のタイミング、即ち、DRAM帯域幅の9%利用率よりは悪化しないであろう。
Target position detection The target is detected by reading out pixels within the boundary of the pixel column. At most one pixel is read out. Considering the case where the run-length encoder operates at a sufficiently high speed, the limit of target position detection is memory access. Thus, access will not be worse than the timing of process 1, ie, 9% utilization of DRAM bandwidth.

したがって、ターゲット位置検出中の(プロセス1を含む)DRAMの総利用率は18%であり、ターゲットロケータは、常に、代替Artcardのイメージセンサ画素リーダーに追従している。 Thus, the total utilization of DRAM (including process 1) during target position detection is 18%, and the target locator always follows the alternative Artcard image sensor pixel reader.

ターゲットの処理
ターゲット番号をソートしチェックするためのタイミングは取るに足らない。2個のターゲット中心の各々のより良い推定値を見つけるためには、12組の12画素の読み出し、即ち、全部で144回の読み出しを必要とする。しかし、正確なターゲット中心の修復は些細ではなく、2組の推定を必要とする。各ターゲット中心の調整には、8組の20種類の6エントリー型コンボリューションカーネルが必要である。このようにして、その合計は、8×20×6回の乗算−累算=960に達する。その上、7組の7画素を獲得するため49回のメモリアクセスが必要である。したがって、1ターゲット当たりの総数は、144+960+49=1153であり、これは、画素の列内の画素数(1152)とほぼ同数である。このように、各ターゲット推定は、1行の画素を処理するために要する時間を消費する。ターゲットが2個の場合、実質的に2列の画素列に要する時間を消費する。
Target processing The timing for sorting and checking target numbers is negligible. To find a better estimate of each of the two target centers, 12 sets of 12 pixel readouts are required, ie, a total of 144 readouts. However, accurate target-centric repair is not trivial and requires two sets of estimations. Each target center adjustment requires 8 sets of 20 6-entry convolution kernels. In this way, the sum reaches 8 × 20 × 6 times multiply-accumulate = 960. In addition, 49 memory accesses are required to obtain 7 sets of 7 pixels. Thus, the total number per target is 144 + 960 + 49 = 1153, which is approximately the same as the number of pixels in the column of pixels (1152). Thus, each target estimate consumes the time required to process a row of pixels. When there are two targets, the time required for substantially two pixel columns is consumed.

ターゲットは、第1の画素列上でターゲット番号の後に確実に識別される。方位列の前には2列のドット列が存在するので、6列の画素列が存在する。ターゲット位置検出プロセスは、最初の画素列を使い果たすが、残りの5列の画素列は全く処理されない。したがって、データエリアは、他のプロセス時間に影響を与えることなく、利用可能な時間の2/5内に位置検出することができる。 The target is reliably identified after the target number on the first pixel column. Since there are two dot rows before the azimuth row, there are six pixel rows. The target position detection process uses up the first pixel column, but the remaining five pixel columns are not processed at all. Thus, the data area can be located within 2/5 of the available time without affecting other process times.

利用可能な時間の残りの3/5は、白色及び黒色画素のレンジを割り当てる些細なタスクのために十分であり、1タスクは高々2から3マシーンサイクルを使用する。 The remaining 3/5 of the available time is sufficient for the trivial task of assigning a range of white and black pixels, and one task uses at most 2 to 3 machine cycles.

データ抽出
タイミングに関して、次の二つの部分を考慮すべきである:
*正確なクロックマーク及び境界値を取得すること;
*ドット値を抽出すること。
There are two parts to consider regarding data extraction timing:
* Obtain accurate clock marks and boundary values;
* Extract dot values.

クロックマーク及び境界値は、1ドット列おきにしか収集されない。しかし、より正確にするためにクロックマーク推定値を更新する毎に、20種類の6エントリー型コンボリューションカーネルを評価しなければならない。平均的に、1ドット列当たりにそのうちの2個が存在する(2ドット列毎に4個)。境界に基づいて画素座標を更新するためには、同じ画素走査線からの7画素だけが必要である。しかし、列座標を更新するためには、異なる列、即ち、異なる走査線からの7画素が必要である。走査線エントリー毎に1回のキャッシュミスが生じ、同じ走査線内の画素に対して2回のキャッシュミスが生じる最悪ケースの状況を想定すると、全部で8回のキャッシュミスが起こる。 Clock marks and boundary values are collected only every other dot row. However, every time the clock mark estimate is updated for more accuracy, 20 different 6-entry convolution kernels must be evaluated. On average, there are two of them per dot row (4 per 2 dot rows). To update the pixel coordinates based on the boundary, only 7 pixels from the same pixel scan line are required. However, to update the column coordinates, 7 columns from different columns, i.e. different scan lines, are required. Assuming the worst case situation where one cache miss occurs for each scan line entry and two cache misses occur for pixels in the same scan line, a total of eight cache misses occur.

ドット情報を抽出するためには、1ドット毎に(ドットを定義する平均9個ではなく)4画素だけを読み出す。1152画素(384ドット)のデータエリアを想定すると、せいぜい、これは、9画素ドットではなく4画素ドットを読み出すことによって、72回のキャッシュ読み出しを節約するに過ぎない。最悪ケースは、57画素毎に1列だけ移動する1°の回転であるが、節約の程度が僅かに悪化するだけである。 In order to extract dot information, only 4 pixels are read out for each dot (instead of an average of 9 defining dots). Assuming a data area of 1152 pixels (384 dots), at best, this only saves 72 cache reads by reading 4 pixel dots instead of 9 pixel dots. The worst case is a 1 ° rotation that moves one column every 57 pixels, but the degree of saving is only slightly worse.

最悪の場合、読み出すキャッシュラインの数は、データエリア内の画素によって使われたキャッシュラインよりも少なくなる、といっても構わない。したがって、アクセスはプロセス1、即ち、DRAM帯域幅の9%利用率よりも悪化することはない。 In the worst case, it may be said that the number of cache lines to be read is smaller than the cache lines used by the pixels in the data area. Thus, access will not worsen than Process 1, ie, 9% utilization of DRAM bandwidth.

したがって、データ抽出中(プロセス1を含む)のDRAM総利用率は18%であり、データ抽出部は、常に、代替Artcardのイメージセンサ画素リーダーに追従する。これにより実装されるターゲット処理プロセスでは、ターゲットの処理は、かなり非効率的な方法によって実行されるが、依然として、必要に応じて、データ抽出プロセス中に迅速に追従する。 Accordingly, the total DRAM utilization during data extraction (including process 1) is 18%, and the data extraction unit always follows the alternative Artcard image sensor pixel reader. In the target processing process thus implemented, target processing is performed in a fairly inefficient manner, but still follows quickly during the data extraction process as needed.

フェーズ2−ビットイメージ復号
フェーズ2は、代替Artcardのデータ復元アルゴリズムの非リアルタイムフェーズである。フェーズ2の先頭で、ビットイメージは代替Artcardから抽出されている。ビットイメージは、代替Artcardのデータ領域から読み出されたビットを表現する。一部のビットには誤りがあり、おそらく、代替Artcardは挿入時に回転させられているので、データ全体は180°回転している。フェーズ2は、この符号化されたビットイメージから原データを確実に抽出することに関係している。基本的に、図79に示されるように3ステップが実行される:
*代替Artcardが逆向きに挿入されているならば反転して、ビットイメージを再編成する;
*符号化されたデータをスクランブル解除する;
*ビットイメージからのデータをリード・ソロモン復号化する。
Phase 2-bit image decoding phase 2 is a non-real-time phase of the alternative Artcard data recovery algorithm. At the beginning of phase 2, the bit image has been extracted from the alternative Artcard. The bit image represents bits read from the data area of the alternative Artcard. Some bits are in error, and the entire data is rotated 180 °, probably because the alternate Artcard is rotated on insertion. Phase 2 is concerned with reliably extracting the original data from this encoded bit image. Basically, three steps are performed as shown in FIG. 79:
* Reverse and reorganize the bit image if the alternate Artcard is inserted backwards;
* Descramble the encoded data;
* Reed-Solomon decoding of data from bit images.

3ステップの各々は別個のプロセスとして定義され、あるプロセスの出力は次のプロセルの入力として要求されるので、連続して実行される。最初の2ステップを単一プロセスに併合することは簡単であるが、説明の便宜上、ここでは、別個のプロセスとして取り扱う。 Each of the three steps is defined as a separate process, and the output of one process is required as the input of the next process, so it is executed sequentially. Although it is simple to merge the first two steps into a single process, for convenience of explanation, it is treated here as a separate process.

データ/プロセスの観点からみると、フェーズ2は図80に示されるような構造を有する。 From the data / process point of view, Phase 2 has a structure as shown in FIG.

プロセス1及び2のタイミングは無視することが可能であり、その間に1/1000秒未満しか消費しない。プロセス3(リード・ソロモン復号)は、約0.32秒を消費し、これがフェーズ2のために必要な合計時間になる。 The timing of processes 1 and 2 can be ignored and consumes less than 1/1000 second during that time. Process 3 (Reed-Solomon decoding) consumes approximately 0.32 seconds, which is the total time required for Phase 2.

ビットイメージ再編成、必要に応じて反転
DRAM内のビットマップは、この時点で、代替Artcardから取得されたデータを表現する。しかし、ビットイメージは連続していない。ビットイメージは64個の32k単位のチャンクに分割され、データブロック毎に1チャンクがある。32kチャンクの各々は、28656個の有効バイトだけ、即ち、
最も左側の方位列からの48バイトと、
真のデータ領域からの28560バイトと、
最も右側の方位列からの48バイトと、
未使用の4112バイトと、
を格納する。
Bit image reorganization, and optionally a bitmap in the inversion DRAM, represents the data obtained from the alternative Artcard at this point. However, bit images are not continuous. The bit image is divided into 64 32k chunks, and there is one chunk for each data block. Each 32k chunk is only 28656 valid bytes, ie
48 bytes from the leftmost orientation column,
28560 bytes from the true data area,
48 bytes from the rightmost orientation row,
4112 bytes unused,
Is stored.

画素データ(フェーズ1のプロセス1によって格納)のために使用される2MBバッファは、再編成されたビットイメージを保持するために使用可能である。なぜならば、画素データはフェーズ2の間では要求されないからである。再編成の最後に、正しく向きを与えられた連続したビットイメージは、2MB画素バッファに収容され、リード・ソロモン復号化のための準備ができている。 A 2MB buffer used for pixel data (stored by Phase 1 Process 1) can be used to hold the reorganized bit image. This is because pixel data is not required during phase 2. At the end of the reorganization, the correctly oriented consecutive bit images are contained in a 2 MB pixel buffer and are ready for Reed-Solomon decoding.

カードの向きが正しい場合、最も左側の方位列は白色であり、最も右側の方位列は黒色である。カードが180°回転している場合、最も左側の方位列は黒色であり、最も右側の方位列は白色である。 When the card orientation is correct, the leftmost orientation row is white and the rightmost orientation row is black. When the card is rotated 180 °, the leftmost orientation row is black and the rightmost orientation row is white.

カードが正しい向きにされているかどうかを判定する簡単な方法は、白色ビットに対する黒色ビットの比率が圧倒的であるブロックが見つかるまで、各データブロックを一つずつ使用して、データの最初及び最後の48バイトをチェックすることである。以下の擬似コードはこの方法を例示し、カードが正しい向きに置かれているときTRUEを返し、そうではなければFALSEを返す:

Figure 0004309954
データは、この時点で、カードが正しい向きであるかどうかに基づいて認識できるはずである。最も簡単なケースは、カードが正しい向きにされている場合である。この場合、データは、方位列を除去し、データ全体を連続させるために、少しだけ動かす必要がある。これは、以下の擬似コードに示されるように元の位置で非常に簡単に実現される:
Figure 0004309954
それ以外の場合は、データを実際に反転させる必要がある。データを反転させるアルゴリズムは非常に簡単であるが、簡単にするために、256バイトのテーブルReverseを用いる。ここで、Reverse[N]の値はNのビット反転である:
Figure 0004309954
両方のプロセスのタイミングは無視することが可能であり、1/1000秒未満しか消費しない:
*2MB連続読み出し(2048/16×12ns=1536ns);
*2MB実効的連続バイト書き込み(2048/16×12ns=1536ns)。 A simple way to determine if the card is oriented correctly is to use each data block one by one until the block with the overwhelming ratio of black to white bits is found. Is to check 48 bytes. The following pseudocode illustrates this method, returning TRUE when the card is in the correct orientation, FALSE otherwise:
Figure 0004309954
The data should now be recognizable based on whether the card is in the correct orientation. The simplest case is when the card is oriented correctly. In this case, the data needs to be moved slightly in order to remove the orientation row and make the entire data continuous. This is achieved very easily in the original position as shown in the following pseudocode:
Figure 0004309954
In other cases, it is necessary to actually invert the data. The algorithm for inverting the data is very simple, but for simplicity, a 256-byte table Reverse is used. Here, the value of Reverse [N] is a bit inversion of N:
Figure 0004309954
The timing of both processes can be ignored and consumes less than 1/1000 second:
* 2 MB continuous reading (2048/16 × 12 ns = 1536 ns);
* 2 MB effective continuous byte write (2048/16 × 12 ns = 1536 ns).

符号化画像のスクランブル解除
ビットイメージは、1827840個の連続した、正しい向きにされた、スクランブル付きのバイトである。バイトは、1ブロックが255バイト長からなる7168個のリード・ソロモンブロックを生成するために、スクランブル解除されなければならない。スクランブル解除プロセスは非常に簡単であるが、スクランブル解除処理は元の場所で実行できないので、別個の出力バッファを必要とする。図80は、スクランブル解除プロセスが行われるメモリの説明図である。
The descrambling bit image of the encoded image is 1827840 consecutive, correctly oriented, scrambled bytes. The bytes must be descrambled to generate 7168 Reed-Solomon blocks, one block of which is 255 bytes long. Although the descrambling process is very simple, the descrambling process cannot be performed in place and requires a separate output buffer. FIG. 80 is an explanatory diagram of a memory in which the descrambling process is performed.

以下の疑似コードはスクランブル解除プロセスの実行方法を規定する:

Figure 0004309954
このプロセスのためのタイミングは無視することが可能であり、1/1000秒未満しか消費しない:
*2MB連続読み出し(2048/16×12ns=1536ns);
*2MB非連続バイト書き込み(2048×12ns=24576ns)。 The following pseudo code specifies how to perform the descrambling process:
Figure 0004309954
The timing for this process can be ignored and consumes less than 1/1000 second:
* 2 MB continuous reading (2048/16 × 12 ns = 1536 ns);
* 2 MB non-consecutive byte write (2048 × 12 ns = 24576 ns).

このプロセスの終了時、スクランブル無しデータがリード・ソロモン復号化のために準備できる。 At the end of this process, unscrambled data is ready for Reed-Solomon decoding.

リード・ソロモン復号化
代替Artcardの読み出しの最後の部分は、リード・ソロモン復号化プロセスであり、ここでは、約2MBのスクランブル無しデータが約1MBの有効代替Artcardデータに復号化される。
The last part of the Reed-Solomon decoding alternative Artcard read is the Reed-Solomon decoding process, where about 2 MB of unscrambled data is decoded into about 1 MB of valid alternative Artcard data.

このアルゴリズムは、同時に一つのリード・ソロモンブロックを復号化し、(必要であれば)元の場所で実行可能である。なぜならば、符号化されたブロックは復号化されたブロックよりも大きく、冗長バイトがデータバイトの後に格納されているからである。 This algorithm can simultaneously decode one Reed-Solomon block and (if necessary) execute it in its original location. This is because the encoded block is larger than the decoded block, and redundant bytes are stored after the data bytes.

最初の2個のリード・ソロモンブロックは制御ブロックであり、ビットイメージから抽出されるべきデータのサイズに関する情報を含んでいる。このメタ情報は、最初に復号化する必要があり、得られた情報が真のデータを復号化するため使用される。真のデータの復号化は、単に同時に一つずつデータブロックを復号化する問題である。特定のブロックの復号化が失敗した場合、控えのデータブロックを使用することが可能である。 The first two Reed-Solomon blocks are control blocks and contain information about the size of the data to be extracted from the bit image. This meta information needs to be decrypted first, and the resulting information is used to decrypt the true data. Decoding true data is simply a problem of decoding data blocks one at a time at the same time. If decoding of a particular block fails, a reserved data block can be used.

最上位レベルのリード・ソロモン復号化を疑似コードで提示する:

Figure 0004309954
DecodeBlockは、標準的なリード・ソロモンブロックデコーダであり、m=8及びt=64を使用する。 Present the top-level Reed-Solomon decoding in pseudocode:
Figure 0004309954
DecodeBlock is a standard Reed-Solomon block decoder and uses m = 8 and t = 64.

GetControlData関数は、復号化エラーが生じない限り簡単である。この関数は、成功するまで、同時に一つの制御ブロックを復号化するためDecodeBlockを呼び出すだけである。制御パラメータは、復号化されたデータの最初の3バイトから抽出することができる(destBlocksはバイト0及び1に格納され、lastBlock
はバイト2に格納される)。復号化エラーが存在する場合、この関数は、32組の3バイトをトラバースし、最も確からしい値の組を決定しなければならない。一つの簡単な方法は、3バイトの中から2個の連続した等しいコピーを見つけ、これらの値が正しい値であるとして決めることである。他の方法は、出現する3バイトの組の種類数をカウントし、最もよく出現する組が正しい組であると決める。
The GetControlData function is simple as long as no decoding error occurs. This function only calls DecodeBlock to decode one control block at a time until successful. The control parameters can be extracted from the first 3 bytes of the decoded data (destBlocks are stored in bytes 0 and 1 and lastBlock
Is stored in byte 2). If there is a decoding error, the function must traverse 32 sets of 3 bytes to determine the most likely value set. One simple method is to find two consecutive equal copies out of 3 bytes and determine that these values are correct. Another method counts the number of types of 3 byte pairs that appear and determines that the most frequently occurring pair is the correct one.

リード・ソロモン復号化に要する時間は実装に依存する。リード・ソロモン復号化プロセスを実行するために専用コア(例えば、LSIロジックのL64712)を使用可能であるが、アプリケーションに応じて(通常、復号化されたデータを用いて何かを実行するために)内蔵型システムの全体でより汎用的に使用できるCPU/DSPの組み合わせを選択する方が好ましい。勿論、復号化時間はCPU/DSPの組み合わせの場合にも十分に高速でなければならない。 The time required for Reed-Solomon decoding depends on the implementation. A dedicated core (eg L64712 in LSI logic) can be used to perform the Reed-Solomon decoding process, but depending on the application (usually to do something with the decoded data It is preferable to select a CPU / DSP combination that can be used more universally in the entire built-in system. Of course, the decoding time must be sufficiently fast for the CPU / DSP combination.

L64712は、毎秒50Mビット(毎秒約6.25MB)のスループットがあるので、時間は、最大で2MB読み出し及び1MB書き込みのメモリアクセス時間ではなく、リード・ソロモンデコーダの速度によって制約される。最悪のケース(全ての2MBが復号化を必要とするケース)に要する時間は、従って、2/6.25秒=約0.32秒である。勿論、以下の改良を含む多数の改良を考えることができる。 Since L64712 has a throughput of 50 Mbits per second (approximately 6.25 MB per second), the time is limited by the speed of the Reed-Solomon decoder, not the memory access time of up to 2 MB reads and 1 MB writes. The time required for the worst case (the case where all 2 MBs require decoding) is therefore 2 / 6.25 seconds = about 0.32 seconds. Of course, many improvements can be envisaged, including the following improvements.

読み出し環境のブラー効果が大きいほど、所定のドットは周辺ドットからより大きい影響を受ける。好適な実施例による現在の読み出しアルゴリズムは、ドット値に関してより優れた決定を行うため、同一列内の周辺ドットを使用する能力を備えている。前の列のドットは既に復号化されているので、前の列のドット履歴は、画素値が不確実なレンジに含まれるドットの値を決定する際に役に立つ。 The greater the blur effect of the readout environment, the greater the influence of a given dot from surrounding dots. The current readout algorithm according to the preferred embodiment has the ability to use surrounding dots in the same row to make better decisions regarding dot values. Since the dots in the previous row have already been decoded, the dot history in the previous row is useful in determining the values of the dots that fall within the range where the pixel values are uncertain.

初期ステージに関する別の可能性は、それを完全に取り除き、データブロックの初期境界を必要とされる境界よりも広くし、ターゲット処理関数をより知的にすることである。これは、全体的な複雑さを軽減する。データブロックの独立性を維持するために注意する必要がある。 Another possibility for the initial stage is to remove it completely, making the initial boundary of the data block wider than needed, making the target processing function more intelligent. This reduces the overall complexity. Care must be taken to maintain data block independence.

制御ブロック機構はより頑強にすることができる:
*制御ブロックは、(本例のケースのように)隣接させるのではなく、最初のブロック及び最後のブロックでもよい。これは、ある種の異常なダメージ状況に対する保護を高めるであろう;
*第2の改良は、リード・ソロモン復号化ステップが失敗した場合に使用される補助的なレベルの冗長性/誤り検出を制御ブロック構造に取り入れることである。パリティのような簡単な仕組みは、リード・ソロモンステージが失敗した場合に、制御情報のもっともらしさを改良する。
The control block mechanism can be made more robust:
* The control blocks may be the first and last blocks rather than being adjacent (as in the case of this example). This will increase protection against certain unusual damage situations;
* A second improvement is to incorporate an auxiliary level of redundancy / error detection into the control block structure that is used if the Reed-Solomon decoding step fails. Simple mechanisms such as parity improve the plausibility of control information if the Reed-Solomon stage fails.

フェーズ5 Varkスクリプト実行
Artcard9を読み出し、それを復号化するために要する総時間は、したがって、約2.15秒である。ユーザがはっきりとわかる遅延は、実際には0.65秒(フェーズ3及び4の合計)に過ぎない。なぜならば、Artcardは1.5秒後に移動を停止するからである。
The total time required to read the phase 5 Vark script execution Artcard9 and decrypt it is therefore approximately 2.15 seconds. The delay that is obvious to the user is actually only 0.65 seconds (sum of phases 3 and 4). This is because Artcard stops moving after 1.5 seconds.

Artcardがロードされると、Artvarkスクリプトを解釈しなければならない。スクリプトを直ちに実行するのではなく、スクリプトは「プリント」ボタン13(図1)が押下されたときだけに実行される。スクリプトを実行するための所要時間は、スクリプトの複雑さに応じて変化し、プリントボタンの押下と、実際のプリントボタンと、実際の印刷動作との間で認識される遅延を考慮しなければならない。 Once Artcard is loaded, the Artvark script must be interpreted. Rather than immediately executing the script, the script is executed only when the “print” button 13 (FIG. 1) is pressed. The time it takes to execute the script will vary depending on the complexity of the script and should take into account the perceived delay between pressing the print button, the actual print button, and the actual print operation. .

上述の通り、VLIWプロセッサ74は、コンピュータ利用の費用がかかるVark関数を加速するデジタル処理システムである。CPUコア72によってソフトウェアで実行される関数と、VLIWプロセッサ74によってハードウェアで実行される関数のバランスは、実装に依存する。VLIWプロセッサ74の目的は、全てのArtcardスタイルがユーザからみて遅いと感じられない時間内で実行することを助けることである。CPUが高速で強力になると共に、ハードウェア加速を必要とする関数の数は減少し続ける。VLIWプロセッサは、以下の時間的に重要な関数の汎用ハードウェア高速化を可能にさせるマイクロコード化されたALUサブシステムを含む:
1)汎用ソフトウェア処理のための画像アクセス機構
2)画像コンボルバ
3)データ駆動型画像ワーパー
4)画像スケーリング
5)画像モザイク
6)アフィン変換
7)画像コンポジッター
8)色空間変換
9)ヒストグラムコレクタ
10)画像の照明
11)ブラシスタンパー
12)ヒストグラムコレクタ
13)CCDイメージから内部画像への変換
14)画像ピラミッドの構築(ワーパーによってブラッシングのため使用される)。
As described above, the VLIW processor 74 is a digital processing system that accelerates the Vark function, which is expensive to use on a computer. The balance between functions executed in software by the CPU core 72 and functions executed in hardware by the VLIW processor 74 depends on the implementation. The purpose of the VLIW processor 74 is to help all Artcard styles execute in times that are not perceived as slow by the user. As the CPU becomes faster and more powerful, the number of functions that require hardware acceleration continues to decrease. The VLIW processor includes a microcoded ALU subsystem that enables general hardware acceleration of the following time-critical functions:
1) Image access mechanism for general software processing 2) Image convolver 3) Data driven image warper 4) Image scaling 5) Image mosaic 6) Affine transformation 7) Image compositor 8) Color space transformation 9) Histogram collector 10) Illumination of image 11) Brush stamper 12) Histogram collector 13) Conversion from CCD image to internal image 14) Construction of image pyramid (used for brushing by warper).

以下の表は、ALUモデルに実装された場合の各Vark演算の所要時間を要約したものである。ALUモデルを使用する関数を実装する方法は後述される。 The following table summarizes the time required for each Vark operation when implemented in the ALU model. A method of implementing a function that uses the ALU model will be described later.

Figure 0004309954
例えば、CCD画像を変換するため、ヒストグラム収集、及び(画像強調用)ルックアップ色置換のために1画素当たりに9+2+0.5サイクル、即ち、11.5サイクルを要する。1500×1000画像の場合、これは、172500000、即ち、1コンポーネント当たりに約0.2秒、即ち、全3コンポーネント当たりに0.6秒である。簡単なワープを追加すると、全体で、0.6+0.36、即ち、ほぼ1秒になる。
Figure 0004309954
For example, converting a CCD image requires 9 + 2 + 0.5 cycles, or 11.5 cycles per pixel, for histogram collection and lookup color replacement (for image enhancement). For a 1500 × 1000 image, this is 172,500,000, ie about 0.2 seconds per component, ie 0.6 seconds for all three components. Adding a simple warp gives a total of 0.6 + 0.36, or approximately 1 second.

画像コンボルバ
コンボルブは中心画素周りの重み付き平均化である。この平均は、単純な加算でもよく、絶対値の和でもよく、和の絶対値でもよく、或いは、0で丸められた和でもよい。
The image convolver convolve is a weighted averaging around the center pixel. This average may be a simple addition, a sum of absolute values, an absolute value of the sum, or a sum rounded by zero.

画像コンボルバは汎用コンボルバであり、可変サイズ係数カーネル内の値を変えることによって様々な関数を実現できる。サポートされるカーネルサイズは、3×3、5×5、及び7×7だけである。 The image convolver is a general-purpose convolver, and various functions can be realized by changing values in the variable size coefficient kernel. The only kernel sizes supported are 3x3, 5x5, and 7x7.

図82を参照すると、コンボリューションプロセスの一例340が示されている。コンボルバプロセス341に供給される画素コンポーネント値は、ボックス読み出しイタレータ342から与えられる。イタレータ342は行単位で画像データを供給し、各行内では、画素毎に画像データを供給する。コンボルバ341からの出力は、順次書き込みイタレータ344へ送られ、順次書き込みイタレータ344は有効画像フォーマットで合成画像を格納する。 Referring to FIG. 82, an example convolution process 340 is shown. The pixel component value supplied to the convolver process 341 is provided from the box readout iterator 342. The iterator 342 supplies image data in units of rows and supplies image data for each pixel in each row. The output from the convolver 341 is sent to the sequential writing iterator 344, which stores the composite image in an effective image format.

係数カーネル346は、DRAM内のルックアップテーブルである。カーネルは、ボックス読み出しイタレータ342と同じ順序に係数が並べられる。各係数エントリーは8ビットである。単純な順次読み出しイタレータは、カーネル346を指定し、係数を与えるため使用される。これは、カーネルサイズと一致する画像幅ImageWidthの画像をシミュレーションし、ループオプションがセットされるので、カーネルは連続して供給される。 The coefficient kernel 346 is a lookup table in the DRAM. In the kernel, the coefficients are arranged in the same order as the box read iterator 342. Each coefficient entry is 8 bits. A simple sequential read iterator is used to specify the kernel 346 and provide the coefficients. This simulates an image with an image width ImageWidth that matches the kernel size and the loop option is set so the kernel is fed continuously.

ALUユニット上のコンボルブプロセスの一実施形態は図81に示されている。以下の定数がソフトウェアによってセットされる。 One embodiment of the convolve process on the ALU unit is shown in FIG. The following constants are set by the software:

Figure 0004309954
制御ロジックは、1画素当たりの乗算/加算の回数をカウントダウンするため使用される。カウント(ラッチ2に累算)が0に達するとき、生成される制御信号は(ラッチ1からの)現在のコンボルブ値を書き出し、カウントをリセットするため使用される。このようにして、一つの制御ロジックブロックは、多数の並列コンボルブストリームのために使用される。
Figure 0004309954
The control logic is used to count down the number of multiplications / additions per pixel. When the count (accumulate in latch 2) reaches 0, the generated control signal writes the current convolve value (from latch 1) and is used to reset the count. In this way, one control logic block is used for multiple parallel convolution streams.

各サイクルに、乗算ALUは、画素の適切な部分を組み込むため、1回の乗算/加算を実行することができる。全ての値を総計するために要するサイクル数は、したがって、カーネル内のエントリーの個数である。これは計算制約であるため、画像を複数のセクションに分割し、それらを異なるALUユニットで並列に処理することが適切である。 In each cycle, the multiplication ALU can perform a single multiplication / addition to incorporate the appropriate portion of the pixel. The number of cycles required to add up all values is therefore the number of entries in the kernel. Since this is a computational constraint, it is appropriate to divide the image into multiple sections and process them in parallel with different ALU units.

7×7カーネル上で、各画素に要する時間は49サイクル、即ち、490nsである。各キャッシュラインは32画素を保持するので、メモリアクセスのために利用可能な時間は、((32−7+1)×490ns)、即ち、12740nsである。7本のキャッシュラインを読み出し、1本を書き込むために要する時間は、より悪いケースであって、1120ns(全てのアクセスが同じDRAMバンクへのアクセスであるとして、8*140ns)である。その結果として、リソースが無制限であるならば、最大10画素を並列に処理することが可能である。ALUの個数が限定されている場合、最高で4画素を並列に処理することができる。従って、7×7カーネルを使用してコンボリューションを実行するために要する時間は、0.18375秒(1500*1000*490ns/4=183750000ns)である。 On a 7 × 7 kernel, the time required for each pixel is 49 cycles, ie 490 ns. Since each cache line holds 32 pixels, the time available for memory access is ((32-7 + 1) × 490 ns), ie 12740 ns. The time taken to read seven cache lines and write one is worse, 1120 ns (8 * 140 ns assuming all accesses are to the same DRAM bank). As a result, up to 10 pixels can be processed in parallel if the resources are unlimited. If the number of ALUs is limited, up to 4 pixels can be processed in parallel. Therefore, the time required to perform the convolution using the 7 × 7 kernel is 0.18375 seconds (1500 * 1000 * 490 ns / 4 = 1837500000 ns).

5×5カーネル上で、各画素に要する時間は25サイクル、即ち、250nsである。各キャッシュラインは32画素を保持するので、メモリアクセスのために利用可能な時間は、((32−5+1)×250ns)、即ち、7000nsである。5本のキャッシュラインを読み出し、1本を書き込むために要する時間は、より悪いケースであって、840ns(全てのアクセスが同じDRAMバンクへのアクセスであるとして、6*140ns)である。その結果として、リソースが無制限であるならば、最大7画素を並列に処理することが可能である。ALUの個数が限定されている場合、最高で4画素を並列に処理することができる。従って、5×5カーネルを使用してコンボリューションを実行するために要する時間は、0.09375秒(1500*1000*250ns/4=93750000ns)である。 On a 5 × 5 kernel, the time required for each pixel is 25 cycles, ie 250 ns. Since each cache line holds 32 pixels, the time available for memory access is ((32-5 + 1) × 250 ns), ie 7000 ns. The time required to read 5 cache lines and write 1 is a worse case, 840 ns (6 * 140 ns assuming all accesses are to the same DRAM bank). As a result, if the resources are unlimited, it is possible to process up to 7 pixels in parallel. If the number of ALUs is limited, up to 4 pixels can be processed in parallel. Therefore, the time required to perform the convolution using the 5 × 5 kernel is 0.09375 seconds (1500 * 1000 * 250 ns / 4 = 93750,000 ns).

3×3カーネル上で、各画素に要する時間は9サイクル、即ち、90nsである。各キャッシュラインは32画素を保持するので、メモリアクセスのために利用可能な時間は、((32−3+1)×90ns)、即ち、2700nsである。3本のキャッシュラインを読み出し、1本を書き込むために要する時間は、より悪いケースであって、560ns(全てのアクセスが同じDRAMバンクへのアクセスであるとして、4*140ns)である。その結果として、リソースが無制限であるならば、最大10画素を並列に処理することが可能である。ALU及び読み出し/書き込みイタレータの個数が限定されている場合、最高で4画素を並列に処理することができる。従って、3×3カーネルを使用してコンボリューションを実行するために要する時間は、0.03375秒(1500*1000*90ns/4=33750000ns)である。この結果として、各出力画素は、計算をするためにカーネルサイズ/3サイクルを要する。実際のタイミングは以下の表に要約されている。 On a 3 × 3 kernel, the time required for each pixel is 9 cycles, ie 90 ns. Since each cache line holds 32 pixels, the time available for memory access is ((32-3 + 1) × 90 ns), ie 2700 ns. The time required to read three cache lines and write one is a worse case, 560 ns (4 * 140 ns assuming all accesses are to the same DRAM bank). As a result, up to 10 pixels can be processed in parallel if the resources are unlimited. If the number of ALUs and read / write iterators is limited, up to 4 pixels can be processed in parallel. Therefore, the time required to perform the convolution using the 3 × 3 kernel is 0.03375 seconds (1500 * 1000 * 90 ns / 4 = 33750,000 ns). As a result of this, each output pixel requires a kernel size / 3 cycles to calculate. The actual timing is summarized in the following table.

Figure 0004309954
画像コンポジッター
コンポジット処理は、最終画像における前景及び背景の適切な比率を制御するため、マット又はチャンネルを使用して前景画像を後景画像に加算することである。好ましくは、通常コンポジット処理及び付随コンポジット処理の二つのスタイルのコンポジット処理がサポートされる。二つのスタイルの規則は、
通常コンポジット処理:新しい値=前景+(背景−前景)a
付随コンポジット処理:新しい値=前景+(1−a)背景
である。
Figure 0004309954
The image compositor composite process is to add the foreground image to the background image using a mat or channel to control the proper ratio of foreground and background in the final image. Preferably, two styles of composite processing are supported: normal composite processing and accompanying composite processing. The two style rules are:
Normal composite processing: new value = foreground + (background-foreground) a
Accompanying composite processing: new value = foreground + (1-a) background.

相違点は、付随コンポジット処理の場合、前景はマットによって予め乗算されているのに対して、通常コンポジット処理の場合、そのようにされていないことである。コンポジットプロセスの一例は図83に示されている。 The difference is that in the case of accompanying composite processing, the foreground is pre-multiplied by the mat, whereas in normal composite processing it is not. An example of the composite process is shown in FIG.

アルファチャネルは、レンジ0から1に対応した0から255の値をとる。 The alpha channel takes a value from 0 to 255 corresponding to the range 0 to 1.

通常コンポジット
通常コンポジットは、
背景+(背景−前景)*α/255
として実装される。
Normal composite Normal composite is
Background + (Background-Foreground) * α / 255
Implemented as

X/255による除算は、257X/65536によって近似される。コンポジットプ
ロセスの実装例は図84に詳細に示され、以下の定数がソフトウェアによってセットされる。
The division by X / 255 is approximated by 257X / 65536. An example implementation of the composite process is shown in detail in FIG. 84, with the following constants set by software.

Figure 0004309954
4個のイタレータが必要であるため、コンポジットプロセスは1画素当たりに1サイクルを要し、ALUの半分しか利用しない。コンポジットプロセスは一つのチャンネルだけで実行される。3チャンネル画像を互いにコンポジットするためには、コンポジッターは、各チャンネルに1回ずつの合計3回実行されなければならない。
Figure 0004309954
Since four iterators are required, the composite process takes one cycle per pixel and uses only half of the ALU. The composite process is performed on only one channel. In order to composite 3 channel images with each other, the compositor must be run a total of 3 times, once for each channel.

フルサイズの単一チャンネルをコンポジットするための所要時間は、0.015秒(1500*1000*1*10ns)であり、3チャンネル全てをコンポジットするために0.045秒を要する。 The time required for compositing a full-size single channel is 0.015 seconds (1500 * 1000 * 1 * 10 ns), and 0.045 seconds are required to composite all three channels.

255による除算を近似するため、257倍した後に65536で除算する。これは、1回の加算(256*x+x)と、その結果の最後の16ビットの無視(丸めの目的を除く)とによっても実現可能である。 In order to approximate the division by 255, it is multiplied by 257 and then divided by 65536. This can also be achieved by one addition (256 * x + x) and ignoring the last 16 bits of the result (except for rounding purposes).

図42に示されるように、コンポジットプロセスは、3個の順次読み出しイタレータ351−353と、1個の順次書き出しイタレータ355とを必要とし、乗算器ALUと共にアダーALUと共にアダーを使用するマイクロコードとして実装される。コンポジット時間は1画素当たり1サイクル(10ns)である。付随コンポジット処理と通常コンポジット処理は別々のマイクロコードを必要とするが、1画素当たりの平均時間は同じである。 As shown in FIG. 42, the composite process requires three sequential read iterators 351-353 and one sequential write iterator 355 and is implemented as microcode that uses an adder with an adder ALU along with a multiplier ALU. Is done. The composite time is one cycle (10 ns) per pixel. The accompanying composite processing and normal composite processing require separate microcodes, but the average time per pixel is the same.

コンポジット処理は単一チャンネルだけで実行される。一つの3チャンネル画像を互いにコンポジットするために、コンポジッターは、チャンネル毎に1回ずつ、併せて3回実行される。aチャンネルは各コンポジットに対して同一であるため、それは毎回読み出される必要がある。しかし、最良ケースでの4×32バイトのキャッシュラインの転送(読み出し又は書き込み)は320nsを要する。パイプラインは、平均で1画素コンポジット当たりに1サイクルを与え、32画素をコンポジットするために32サイクル、即ち、320ns(100MHz)を要するので、チャンネルは実質的に無制限で読み出される。したがって、全チャンネルは、
1500/32*1000*320ns=15040000ns=0.015秒
でコンポジットされる。
Composite processing is performed on a single channel only. In order to composite one 3-channel image with each other, the compositor is executed three times, once for each channel. Since the a channel is the same for each composite, it needs to be read each time. However, the transfer (reading or writing) of a 4 × 32 byte cache line in the best case takes 320 ns. Since the pipeline gives an average of one cycle per pixel composite and it takes 32 cycles, or 320 ns (100 MHz) to composite 32 pixels, the channel is read out indefinitely. Therefore, all channels
1500/32 * 1000 * 320 ns = 15040000 ns = 0.015 seconds are composited.

フルサイズの3チャンネル画像をコンポジットするための所要時間は0.045秒である。 The time required for compositing a full-size three-channel image is 0.045 seconds.

画像ピラミッド構築
ワーピング、タイリング、及びブラッシングのような幾つかの関数は、所定の画素のエリアの平均値を必要とする。所与の各エリアの値を計算するのではなく、これらの関数は、好ましくは、画像ピラミッドを利用する。既に図33に示されたように、画像ピラミッド360は、実質的に多重解像度画素マップである。原画像は1:1表現である。各次元での2:1によるサブサンプリングは、元のサイズの1/4の画像を生成する。このプロセスは画像全体が単一画素によって表現されるまで続く。
Some functions, such as image pyramid construction warping, tiling, and brushing, require an average value for an area of a given pixel. Rather than calculating the value for each given area, these functions preferably utilize an image pyramid. As already shown in FIG. 33, the image pyramid 360 is substantially a multi-resolution pixel map. The original image is a 1: 1 representation. Sub-sampling with 2: 1 in each dimension produces an image that is 1/4 the original size. This process continues until the entire image is represented by a single pixel.

画像ピラミッドは原画像から構築され、原画像によって占められたサイズの1/3(1/4+1/16+1/64+...)を使う。原画像が1500×1000である場合、対応した画像ピラミッドは約1/2MBである。 The image pyramid is constructed from the original image and uses 1/3 of the size occupied by the original image (1/4 + 1/16 + 1/64 + ...). If the original image is 1500 × 1000, the corresponding image pyramid is about ½ MB.

画像ピラミッドは、コンボルブのカーネルを各次元で2画素ずつ前進させるワン・イン・フォー入力画像に基づいて実行される3×3コンボルブによって構築することができる。3×3コンボルブは、単純な4画素の平均化よりも高い精度を生じ、異なるピラミッドレベルの座標の差が1レベル毎に1ビットだけシフトすることによって得られるという付加的な利点がある。 An image pyramid can be constructed by a 3 × 3 convolution that is performed on a one-in-four input image that advances the convolution kernel by two pixels in each dimension. The 3 × 3 convolve has the added advantage that it produces higher accuracy than a simple 4-pixel averaging, and the difference in coordinates of different pyramid levels is obtained by shifting one bit per level.

ピラミッド全体の構築は、ピラミッドの各レベルで1回ずつピラミッドレベル構築関数を呼び出すソフトウェアループに依拠している。 Building the entire pyramid relies on a software loop that calls the pyramid level building function once for each level of the pyramid.

ピラミッドの1レベルを生成するためのタイミングは、入力画像の解像度の(9/4)*(1/4)である。なぜならば、原画像の1/4のサイズの画像を生成しているからである。このようにして、1500×1000画像に対して、
ピラミッドのレベル1を生成するためのタイミング=9/4*750*500=843750サイクルであり、
ピラミッドのレベル2を生成するためのタイミング=9/4*375*250=210938サイクルであり、
ピラミッドのレベル3を生成するためのタイミング=9/4*188*125=52735サイクルであり、
以下同様に続く。
The timing for generating one level of the pyramid is (9/4) * (1/4) of the resolution of the input image. This is because an image having a size ¼ of the original image is generated. In this way, for a 1500 × 1000 image,
Timing to generate level 1 of the pyramid = 9/4 * 750 * 500 = 84750 cycles,
Timing to generate level 2 of the pyramid = 9/4 * 375 * 250 = 210938 cycles,
Timing to generate level 3 of the pyramid = 9/4 * 188 * 125 = 52735 cycles,
The same goes for the following.

総時間は、原画像1画素当たりに3/4サイクル(画像ピラミッドは原画像サイズの1/3であり、各画素は計算に9/4サイクルを要し、即ち、(1/3)*(9/4)=3/4)である。1500×1000画像の場合、(100MHz)で1125000サイクル、即ち、0.011秒である。このタイミングは単一色チャンネルに対するタイミングであり、3色チャンネルは0.034秒の処理時間を要する。 The total time is 3/4 cycles per pixel of the original image (the image pyramid is 1/3 of the original image size and each pixel requires 9/4 cycles to calculate, ie (1/3) * ( 9/4) = 3/4). In the case of a 1500 × 1000 image, there are 1125000 cycles at (100 MHz), that is, 0.011 seconds. This timing is for a single color channel, and the three color channel requires a processing time of 0.034 seconds.

汎用データ駆動型画像ワーパー
ACP31は、入力画像の画像ワーピング操作を実行可能である。画像ワーピングの原理は理論的に周知である。ワーピングのプロセスに関する一つの完全な教科書は、Geroge
Wolbergによる'&apos;Digital Image Warping'&apos;, IEEE Computer Society Press,
Los Alamitos,
California,
1990である。ワーピングプロセスは、Artcard9によって供給されたデータの一部を形成するワープマップを使用する。ワープマップは、必要条件に応じて任意的に寸法を決めることができ、入力画素の出力画素へのマッピングの情報を提供する。残念なことに、任意的に寸法を決められたワープマップの利用は、画像ワーパーによって解決されるべき多数の問題を生じる。
The general-purpose data-driven image warper ACP31 can execute an image warping operation for an input image. The principle of image warping is theoretically well known. One complete textbook on the warping process is Gerage
'Digital Image Warping' by Wolberg, IEEE Computer Society Press,
Los Alamitos,
California,
1990. The warping process uses a warp map that forms part of the data supplied by Artcard 9. The warp map can be arbitrarily sized according to the requirements and provides information on the mapping of input pixels to output pixels. Unfortunately, the use of an arbitrarily sized warp map results in a number of problems to be solved by the image warper.

図85を参照すると、A×B次元のワープマップ365は、ある大きさ(例えば、0から255の8ビット値)の配列値により構成され、この配列値は理論的な入力画像の座標を表現し、理論的な入力画像の座標は同じ配列座標インデックスを有する対応した「理論的な」出力画像へマップされる。残念ながら、出力画像、例えば、出力画像366は固有の次元C×Dを有し、これは、固有の次元E×Fを有する入力画像とは全く異なる。したがって、出力画像366が、出力画素毎に、対応した入力画像のエリア又は領域を決定できるように、ワープマップ365のマッピングを容易に行えるようにする必要がある。出力画素色データは、対応した入力画像のエリア又は領域から構築される。出力画像366内の各出力画素に対して、最初に、ワープマップ365から対応したワープマップ値を決定することが必要である。このため、出力画像画素がワープマップテーブル365内の小数位置にマッピングされるときに、周辺ワープマップ値をバイリニア補間することが必要である。このプロセスの結果は、ワープマップ365内の各データ値のサイズによって寸法が決められる「理論的な」画像内での入力画像画素の位置を与える。これらの値は、理論的な画像を対応した実際の入力画像367へマッピングするため再度スケーリングしなければならない。 Referring to FIG. 85, the A × B-dimensional warp map 365 is composed of array values of a certain size (for example, 8-bit values from 0 to 255), and these array values represent the coordinates of the theoretical input image. The coordinates of the theoretical input image are then mapped to the corresponding “theoretical” output image having the same array coordinate index. Unfortunately, the output image, eg, output image 366, has a unique dimension C × D, which is quite different from an input image that has a unique dimension E × F. Therefore, it is necessary to make it possible to easily map the warp map 365 so that the output image 366 can determine a corresponding area or region of the input image for each output pixel. The output pixel color data is constructed from the area or region of the corresponding input image. For each output pixel in the output image 366, it is first necessary to determine the corresponding warp map value from the warp map 365. For this reason, it is necessary to bilinearly interpolate the peripheral warp map values when the output image pixels are mapped to decimal positions in the warp map table 365. The result of this process gives the position of the input image pixel in the “theoretical” image that is dimensioned by the size of each data value in warp map 365. These values must be rescaled to map the theoretical image to the corresponding actual input image 367.

実際の値を決定するため、出力画像画素はエイリアシング効果を回避するように選ばれるべきであり、最終的な出力画像画素値に寄与する入力画像画素367の領域を決定するために隣接した出力画像画素を調べる必要がある。この点に関して、以下でより明らかにされるように、画像ピラミッドが利用される。 In order to determine the actual value, the output image pixel should be chosen to avoid aliasing effects, and the adjacent output image to determine the area of the input image pixel 367 that contributes to the final output image pixel value. It is necessary to examine the pixel. In this regard, an image pyramid is utilized, as will become more apparent below.

画像ワーパーは画像をワープさせるため以下の幾つかのタスクを実行する:
−出力画像サイズに一致するようにワープマップをスケーリングする;
−各出力画素に表現される入力画像画素の領域のスパンを決定する;
−入力画像ピラミッドからトライリニア補間によって最終的な出力画素値を計算する。
The image warper performs several tasks to warp an image:
Scaling the warp map to match the output image size;
-Determining the span of the region of input image pixels represented in each output pixel;
Calculate the final output pixel value by trilinear interpolation from the input image pyramid.

ワープマップスケーリング
前述の通り、データ駆動型ワープでは、ワープマップは、出力画素毎に、対応した入力画像マップの中心を記述することが必要である。前述のように単一ワープマップを用いる代わりに、インターリーブされたx及びy値情報を格納すると、X座標及びY座標を別個のチャンネルとして取り扱うことが可能である。
Warp Map Scaling As described above, in the data driven warp, the warp map needs to describe the center of the corresponding input image map for each output pixel. Instead of using a single warp map as described above, storing the interleaved x and y value information allows the X and Y coordinates to be treated as separate channels.

その結果として、好ましくは、二つのワープマップが設けられ、XワープマップはX座標のワーピングを表し、YワープマップはY座標のワーピングを示す。前述のように、ワープマップ365は、スケーリング中の画像とは異なる空間解像度でもよい(例えば、32×32ワープマップ365は、1500×1000画像366のワープを適切に記述する)。その上、ワープマップは、ワープ中の画像のサイズに対応した8又は16ビット値によって表現可能である。 As a result, preferably two warp maps are provided, the X warp map representing X coordinate warping and the Y warp map representing Y coordinate warping. As mentioned above, warp map 365 may have a different spatial resolution than the image being scaled (eg, 32 × 32 warp map 365 suitably describes the warp of 1500 × 1000 image 366). Moreover, the warp map can be represented by 8 or 16 bit values corresponding to the size of the image being warped.

所定のワープマップから入力画像空間に点を生成するために幾つかのステップが含まれる:
1.出力画像に対してワープマップ内に対応した位置を決定する;
2.次のステップのため、ワープマップから値をフェッチする(これは、ワープマップがほんの8ビット値である場合に、解像度ドメインにおけるスケーリングを必要とする);
3.実際の値を決定するためワープマップのバイリニア補間を行う;
4.入力画像ドメインに対応するように値をスケーリングする。
Several steps are included to generate points from a given warp map in the input image space:
1. Determine the corresponding position in the warp map for the output image;
2. Fetch values from the warp map for the next step (this requires scaling in the resolution domain if the warp map is only 8 bit values);
3. Bilinear interpolation of the warp map to determine the actual value;
4). Scale the value to correspond to the input image domain.

最初のステップは、出力画像における現在のX/Y座標にスケール倍率(XとYで異なる場合がある)を乗算することにより実行される。例えば、出力画像が1500×1000であるならば、ワープマップは150×100であり、XとYの両方は1/10によってスケーリングされている。 The first step is performed by multiplying the current X / Y coordinate in the output image by a scale factor (which may be different for X and Y). For example, if the output image is 1500 × 1000, the warp map is 150 × 100 and both X and Y are scaled by 1/10.

ワープマップから値をフェッチするためには、二つのルックアップテーブルにアクセスすることが必要である。一方のルックアップテーブルは、ルックアップテーブルから8又は16ビットのエントリーを読み出し、常に16ビット値を返す(元の値が8ビットしかない場合、上位8ビットをクリアする)。 In order to fetch values from the warp map, it is necessary to access two lookup tables. One lookup table reads an 8- or 16-bit entry from the lookup table and always returns a 16-bit value (if the original value has only 8 bits, the upper 8 bits are cleared).

パイプラインの次のステップは、参照されたワープマップ値をバイリニア補間することである。 The next step in the pipeline is to bilinearly interpolate the referenced warp map values.

最後に、バイリニア補間からの結果がスケーリングされ、ワープされるべき画像と同じドメインに収容される。このようにして、ワープマップのレンジが0から255である場合、Xを1500/255でスケーリングし、Yを1000/255でスケーリングする。 Finally, the result from bilinear interpolation is scaled and accommodated in the same domain as the image to be warped. Thus, if the warp map range is from 0 to 255, X is scaled by 1500/255 and Y is scaled by 1000/255.

補間プロセスは図86に示されているようなプロセスであり、以下の定数がソフトウェアによってセットされる。 The interpolation process is as shown in FIG. 86, and the following constants are set by software.

Figure 0004309954
以下のルックアップテーブルが使用される。
Figure 0004309954
The following lookup table is used.

Figure 0004309954
スパン計算
ワープマップ365からの点は入力画像367内の画素領域の中心の位置を示す。隣接した出力画像画素の入力画像画素の間の距離は領域のサイズを示し、この距離は、スパン計算によって近似することができる。
Figure 0004309954
The point from the span calculation warp map 365 indicates the position of the center of the pixel area in the input image 367. The distance between adjacent output image pixels to the input image pixels indicates the size of the region, and this distance can be approximated by span calculation.

図87を参照すると、ワープマップP1の所定の現在点に対して、同じライン上の前のポイントはP0であり、前のラインの同じ位置にあるポイントはP2である。P1とP0の間、並びに、P1とP2の間で、X及びYの絶対距離を決定する。X又はYの最大距離は、実際の形状を近似する正方形であるスパンになる。 Referring to FIG. 87, with respect to a predetermined current point of warp map P1, the previous point on the same line is P0, and the point at the same position on the previous line is P2. The absolute distance between X and Y is determined between P1 and P0 and between P1 and P2. The maximum distance of X or Y is a span that is a square that approximates the actual shape.

好ましくは、点は、垂直方向ストリップの出力順に処理され、P0はストリップ内の同じ線で先行する点であり、P1がストリップ内の最初の点であるとき、P0は、前のストリップの対応した線の最後の点を表す。P2は同一ストリップ内の前の線の点であるため、32エントリーの履歴バッファに保持され得る。スパン計算プロセスの原理は図88に示され、そのプロセスの詳細は図89に示されている。 Preferably, the points are processed in the output order of the vertical strip, P0 is the point preceding the same line in the strip, and when P1 is the first point in the strip, P0 is the corresponding point in the previous strip Represents the last point of the line. Since P2 is the point of the previous line in the same strip, it can be held in a 32-entry history buffer. The principle of the span calculation process is shown in FIG. 88, and details of the process are shown in FIG.

以下のDRAMのFIFOが使用される。 The following DRAM FIFOs are used:

Figure 0004309954
32ビット精度のスパン履歴が保持されるので、1500画素幅の画像がワープされる場合、12000バイトの一時記憶が必要になる。
Figure 0004309954
Since a span history with 32-bit accuracy is maintained, when an image having a width of 1500 pixels is warped, 12000 bytes of temporary storage is required.

スパン364の計算は、二つのアダーALU(一方はスパン計算用であり、もう一方はP0及びP2の履歴をループしカウントするためのものである)を使用し、以下のように7サイクルを要する。 The span 364 calculation uses two adder ALUs (one for span calculation and the other for looping and counting the history of P0 and P2) and requires 7 cycles as follows: .

Figure 0004309954
履歴バッファ365、366は、キャッシュ型のDRAMである。「前のライン」(P2履歴の場合)バッファ366は、32エントリーのスパン精度である。「前の点」(P0履歴の場合)バッファ365は、(ストリップの線の点1から31の計算のため)殆どの場合に使用される1個のレジスタを必要とし、DRAMにバッファされた履歴値の組はストリップの線の点0の計算に使用される。
Figure 0004309954
The history buffers 365 and 366 are cache type DRAMs. The “Previous Line” (for P2 history) buffer 366 has a span accuracy of 32 entries. The “previous point” (for P0 history) buffer 365 requires one register that is used in most cases (for the calculation of strip line points 1 to 31) and history buffered in DRAM. The set of values is used to calculate point 0 of the strip line.

スパン履歴の32ビット精度は、P2履歴を保持するため4本のキャッシュラインと、P0履歴のための2本のキャッシュラインと、を必要とする。P0の履歴は、32画素からなる8本の線毎に1回ずつ、(ImageHeight*4)バイトの一時記憶空間に書き込まれ、読み出される。このようにして、1500画素の高さの画像がワープされるとき、6000バイトの一時記憶が必要であり、全部で6本のキャッシュラインが必要である。 The 32-bit accuracy of span history requires 4 cache lines to hold the P2 history and 2 cache lines for the P0 history. The history of P0 is written to and read from the temporary storage space of (ImageHeight * 4) bytes once for every 8 lines of 32 pixels. Thus, when an image having a height of 1500 pixels is warped, 6000 bytes of temporary storage is required, and a total of 6 cache lines are required.

トライリニア補間
平均化されるべき入力画像からエリアの中心及びスパンを決定した後、ワーププロセスの最終部分は、出力画素の値を決定することである。単一の出力画素は、理論的に入力画像全体によって表現できるので、出力画素に寄与する入力画像の特定のエリアを実際に読み出し平均化するためには、非常に時間を消費する可能性がある。その代わりとして、入力画像の画像ピラミッドを使用することにより画素値を近似することができる。
After determining the center and span of the area from the input image to be trilinear interpolation averaged, the final part of the warping process is to determine the value of the output pixel. Since a single output pixel can theoretically be represented by the entire input image, it can be very time consuming to actually read and average a particular area of the input image that contributes to the output pixel. . Instead, pixel values can be approximated by using an image pyramid of the input image.

スパンが1以下である場合、所与の座標の周辺で原画像の画素を読み出し、バイリニア補間を実行するだけでよい。スパンが1よりも大きい場合、二つの適切なレベルの画像ピラミッドを読み出し、トライリニア補間を実行する必要がある。二つのレベルの画像ピラミッドの間にリニア補間を実行することは、厳密に正確ではないが、許容可能な結果を与える(それは結果画像にブラー効果が生じる側で判断を誤る)。 If the span is less than 1, it is only necessary to read out the pixels of the original image around the given coordinates and perform bilinear interpolation. If the span is greater than 1, it is necessary to read two appropriate levels of image pyramids and perform trilinear interpolation. Performing linear interpolation between the two levels of the image pyramid is not exactly accurate, but gives acceptable results (it misjudges on the side where the resulting image has a blur effect).

図90を参照すると、一般的には、あるスパン「s」が与えられた場合に、ln2s(370)及びln2s+1(371)によって与えられる画像ピラミッドレベルを読み出すことが必要である。Ln2sは、sの上位ビットセットを復号化するだけである。ピラミッドの二つのレベル370、371の各々で画素値の値を決定するためバイリニア補間を実行し、レベル間で補間を実行しなければならない。 Referring to FIG. 90, it is generally necessary to read the image pyramid levels given by ln 2 s (370) and ln 2 s + 1 (371) given a certain span “s”. is there. Ln 2 s only decodes the upper bit set of s. Bilinear interpolation must be performed to determine the value of the pixel value at each of the two levels 370, 371 of the pyramid, and interpolation must be performed between the levels.

図91に示されるように、最終的な出力値373を得るため、ピラミッドレベル間で補間を行う前に、最初に各画素ピラミッドレベルのX及びYに関して補間を行うことが必要である。 As shown in FIG. 91, to obtain the final output value 373, it is necessary to first interpolate X and Y for each pixel pyramid level before interpolating between the pyramid levels.

画像ピラミッドアドレスモードは、ピラミッドレベルs及びs+1上の(x,y)における画素座標に対するアドレスを生成する。各レベルの画像ピラミッドは、xの方向に連続した画素を格納する。したがって、xに関する読み出しはキャッシュヒットする可能性が高い。 The image pyramid address mode generates addresses for pixel coordinates at (x, y) on pyramid levels s and s + 1. Each level of the image pyramid stores consecutive pixels in the x direction. Therefore, reading about x is likely to cause a cache hit.

適度なキャッシュヒットのコヒーレンスは、出力画像の局所領域が典型的に入力画像と局所的にコヒーレントである(おそらく、スケールは異なるが、同じスケールでコヒーレントである)ときに獲得される。入力画像と出力画像との関係を知ることはできないが、出力画素は、キャッシュコヒーレンスを最大限に利用するため、(垂直ストリップイタレータによって)確実に垂直ストリップに書き込まれる。 Moderate cache hit coherence is obtained when the local region of the output image is typically locally coherent with the input image (perhaps at different scales but at the same scale). Although it is not possible to know the relationship between the input and output images, the output pixels are reliably written to the vertical strip (by the vertical strip iterator) to make the best use of cache coherence.

トライリニア補間は、パイプラインとして4個の乗算ALU及び4個全てのアダーALUを使用し、メモリアクセスの必要がない場合を想定すると、平均的に2サイクル程度で完了し得る。しかし、全ての補間値は画像ピラミッドから得られるので、補間速度はキャッシュコヒーレンスに完全に依存する(その他のユニットはワープマップスケーリング及びスパン計算を実行するためビジーであることは言うまでもない)。できるだけ多数のキャッシュラインを画像ピラミッド読み出しのために利用できるべきである。最良の速度は、2個の乗算ALUを使用して8サイクルである。 Trilinear interpolation uses four multiplication ALUs and all four adder ALUs as a pipeline, and can be completed in about two cycles on average assuming no memory access. However, since all the interpolated values are derived from the image pyramid, the interpolation speed depends entirely on cache coherence (it goes without saying that the other units are busy performing warp map scaling and span calculations). As many cache lines as possible should be available for image pyramid readout. The best speed is 8 cycles using 2 multiply ALUs.

出力画素は、二つのキャッシュラインを使用する垂直ストリップ書き込みイタレータによってDRAMに書き込まれる。この速度は、従って、1出力画素当たりに8サイクルの最小値で制限される。ワープマップのスケーリングに必要なサイクルが8サイクル以下であるならば、全体的な速度は変化しない。さもなければ、スループットはワープマップをスケーリングするために要する時間である。殆どの場合に、ワープマップは写真のサイズと適合するまで拡大される。 The output pixel is written to the DRAM by a vertical strip write iterator that uses two cache lines. This speed is therefore limited by a minimum of 8 cycles per output pixel. If the number of cycles required for scaling the warp map is 8 cycles or less, the overall speed does not change. Otherwise, throughput is the time required to scale the warp map. In most cases, the warp map is enlarged until it matches the size of the photo.

1画素当たりに必要なサイクル数が8サイクル以下のワープマップをスケーリングする場合、画像の1個のカラーコンポーネントを変換するための所要時間は0.12秒(1500*1000*8サイクル*1サイクル当たりに10ns)である。 When scaling a warp map with 8 cycles or less per pixel, the time required to convert one color component of the image is 0.12 seconds (1500 * 1000 * 8 cycles * per cycle) 10 ns).

ヒストグラムコレクタ
ヒストグラムコレクタは、入力として画像チャンネルを取得し、出力としてヒストグラムを生成するマイクロコードプログラムである。チャンネルの画素の各々は、レンジ0−255に収まる値をとる。その結果として、ヒストグラムテーブルには全部で256画素が存在し、各エントリーは32ビットであり、1500×1000の全画像のカウントを十分に収容することができる。
Histogram collector A histogram collector is a microcode program that acquires an image channel as input and generates a histogram as output. Each pixel of the channel takes a value that falls within the range 0-255. As a result, there are a total of 256 pixels in the histogram table, each entry is 32 bits, and can fully accommodate the count of all 1500 × 1000 images.

図92に示されるように、ヒストグラムは全画像の要約を表現するので、順次読み出しイタレータ378は入力として十分にである。ヒストグラム自体は、完全にキャッシュされ、32個のキャッシュライン(1K)を必要とする。 As shown in FIG. 92, the sequential readout iterator 378 is sufficient as an input because the histogram represents a summary of all images. The histogram itself is fully cached and requires 32 cache lines (1K).

マイクロコードは二つのパスを有し、初期化パスでは、全てカウントを0にセットし、次に、「カウント」ステージは、画像から読み出された各画素の適切なカウンタをインクリメントする。第1のステージは、アドレスユニットと単一のアダーALUとを必要とし、ヒストグラムテーブル377のアドレスを初期化する。 The microcode has two passes, with the initialization pass all setting the count to zero, then the “count” stage increments the appropriate counter for each pixel read from the image. The first stage requires an address unit and a single adder ALU and initializes the address of the histogram table 377.

Figure 0004309954
第2のステージは、画像からの実際の画素を処理し、4個のアダーALUを使用する。
Figure 0004309954
The second stage processes the actual pixels from the image and uses 4 adder ALUs.

Figure 0004309954
アダー2のサイクル2からの零フラグは、入力画素が同じである間、マイクロコードアドレス2に留まるため使用される。入力画素が変化したとき、新しいカウントはマイクロコードアドレス3に書き出され、処理はマイクロコードアドレス2で再開する。マイクロコードアドレス4は最後に使用され、それ以上読み出される画素は存在しない。
Figure 0004309954
The zero flag from cycle 2 of adder 2 is used to stay at microcode address 2 while the input pixels are the same. When the input pixel changes, a new count is written to microcode address 3 and processing resumes at microcode address 2. Microcode address 4 is used last and there are no more pixels to be read.

ステージ1は、256サイクル、即ち、2560nsを要する。ステージ2は、画素の値に応じて変わる。ルックアップテーブル置換のための最悪ケースの時間は、あらゆる画素がその近傍と同じではない場合に、1画像画素当たりに2サイクルである。単一カラーのルックアップに要する時間は0.03秒(1500×1000×1画素当たり2サイクル×1サイクル当たり10ns=30000000ns)である。3個のカラーコンポーネントに要する時間はこの量の3倍、即ち、0.09秒である。 Stage 1 requires 256 cycles, ie 2560 ns. Stage 2 changes according to the value of the pixel. The worst case time for lookup table replacement is 2 cycles per image pixel if every pixel is not the same as its neighbor. The time required for a single color lookup is 0.03 seconds (1500 × 1000 × 2 cycles per pixel × 10 ns per cycle = 30000000 ns). The time required for the three color components is three times this amount, ie 0.09 seconds.

色変換
色変換は、
ルックアップテーブル置換、及び
色空間変換
の二つの主要な方法で実現される。
Color conversion
It is implemented in two main ways: lookup table replacement and color space conversion.

ルックアップテーブル置換
図86に示されるように、画素の色を変換するための最も簡単な方法の一つは、任意に複雑な変換関数をルックアップテーブル380にエンコードすることである。画素のコンポーネントカラー値は、画素の新しいコンポーネント値をルックアップ381するため使用される。順次読み出しイタレータから読み出された画素毎に、その新しい値が新カラーテーブル380から読み出され、順次書き込みイタレータ383へ書き込まれる。入力画像は、メモリ帯域幅を効率的に利用するため、半分ずつ同時に処理される。以下のルックアップテーブルが使用される。
Lookup Table Replacement As shown in FIG. 86, one of the simplest ways to convert the color of a pixel is to encode an arbitrarily complex conversion function into the lookup table 380. The component color value of the pixel is used to look up 381 the new component value of the pixel. For each pixel read from the sequential read iterator, the new value is read from the new color table 380 and written to the write iterator 383 sequentially. The input images are processed in half at the same time in order to efficiently use the memory bandwidth. The following lookup table is used.

Figure 0004309954
総プロセスは、二つの順次読み出しイタレータ及び二つの順次書き込みイタレータを必要とする。二つの新カラーテーブルは、256バイト(1バイトからなる256個のエントリー)を保持するため、各々に8個のキャッシュラインが必要である。
Figure 0004309954
The total process requires two sequential read iterators and two sequential write iterators. Since the two new color tables hold 256 bytes (256 entries consisting of 1 byte), each requires 8 cache lines.

したがって、ルックアップテーブル置換に要する平均時間は1画像画素当たり1/2サイクルである。単一カラーのルックアップに要する時間は0.0075秒(1500×1000×1画素当たり1/2サイクル×1サイクル当たり10ns=7500000ns)である。三つのカラーコンポーネントのための所要時間はこの量の3倍、即ち、0.0225秒である。各カラーコンポーネントは、ソフトウェアの制御下で次々に処理される。 Therefore, the average time required for look-up table replacement is ½ cycle per image pixel. The time required for a single color lookup is 0.0075 seconds (1500 × 1000 × 1/2 cycle per pixel × 10 ns per cycle = 7500000 ns). The time required for the three color components is three times this amount, ie 0.0225 seconds. Each color component is processed one after another under software control.

色空間変換
色空間変換は、色空間の間を動くときに限り必要である。CCD画像はRGB色空間で撮影され、印刷はCMY色空間で行われ、一方、ACP31のクライアントは、Lab色空間で画像を処理する可能性が高い。入力色空間チャンネルの全ては、典型的に、各出力チャンネルのコンポーネント値を決定するために要求される。このような論理的プロセスが図94の385に示されている。
Color space conversion Color space conversion is necessary only when moving between color spaces. CCD images are taken in the RGB color space and printed in the CMY color space, while ACP31 clients are likely to process images in the Lab color space. All of the input color space channels are typically required to determine the component value for each output channel. Such a logical process is illustrated at 385 in FIG.

簡潔に言うと、Lab、RGB及びCMYの間の変換は、かなり簡単である。しかし、特定の装置の個別の色プロファイルは著しく変化し得る。その結果として、将来のCCD、インク、及びプリンタを可能にさせるため、ACP31は、色空間変換ルックアップテーブルからのトライリニア補間によって色空間変換を実行する。 In short, the conversion between Lab, RGB and CMY is fairly simple. However, the individual color profile of a particular device can vary significantly. As a result, the ACP 31 performs color space conversion by trilinear interpolation from the color space conversion lookup table to enable future CCDs, inks, and printers.

色コヒーレンスは、線ベースではなく、エリアベースである傾向がある。トライリニア補間ルックアップ中にキャッシュコヒーレンスを補助するため、画像を垂直ストリップで処理することが最良である。このようにして、読み出しイタレータ386−388及び書き出しイタレータ389は、垂直ストリップイタレータである。 Color coherence tends to be area-based rather than line-based. It is best to process the image with vertical strips to aid cache coherence during the trilinear interpolation lookup. Thus, the read iterator 386-388 and the write iterator 389 are vertical strip iterators.

トライリニア色空間変換
各出力カラーコンポーネントに対して、入力色空間を出力色空間へマッピングする単一の3次元テーブルが必要になる。例えば、CCD画像をRGBからLabへ変換するため、CCDの物理的特性に較正された3個のテーブル、即ち、
RGB->L
RGB->a
RGB->b
が必要になる。
Trilinear color space conversion For each output color component, a single three-dimensional table that maps the input color space to the output color space is required. For example, to convert a CCD image from RGB to Lab, three tables calibrated to the physical characteristics of the CCD, namely:
RGB-> L
RGB-> a
RGB-> b
Is required.

LabからCMYへ変換するため、インク/プリンタの物理的特性に較正された3個のテーブル、即ち、
Lab->C
Lab->M
Lab->Y
が必要になる。
Three tables calibrated to the physical characteristics of the ink / printer for the conversion from Lab to CMY, ie
Lab-> C
Lab-> M
Lab-> Y
Is required.

8ビット入力カラーコンポーネントは、変換テーブルへのインデックス付けのため、固定小数点数(3:5)として取り扱われる。整数の3ビットはインデックスを与え、小数の5ビットは補間として使用される。3ビットは8個の値を与えるので、3次元で512エントリー(8×8×8)が得られる。各エントリーのサイズは1ビットであり、1テーブル当たり512バイトが必要である。 The 8-bit input color component is treated as a fixed point number (3: 5) for indexing into the conversion table. The integer 3 bits give an index and the decimal 5 bits are used as interpolation. Since 3 bits give 8 values, 512 entries (8 × 8 × 8) are obtained in 3 dimensions. The size of each entry is 1 bit, and 512 bytes are required per table.

したがって、色空間変換プロセスは図95に示されるように実装され、以下のルックアップテーブルが使用される。 Therefore, the color space conversion process is implemented as shown in FIG. 95 and the following lookup table is used.

Figure 0004309954
トライリニア補間は、8個の値の間の補間を返す。ルックアップから各8ビット値を返すために1サイクルを要し、全部で8サイクルを要する。トライリニア補間は、1サイクル当たり2個の乗算ALUが使用されたとき、8サイクルを使用する。一般的なトライリニア補間情報はこの文書のALUセクションに記載されている。ルックアップテーブル用の512バイトは16個のキャッシュラインに詰め込まれる。
Figure 0004309954
Trilinear interpolation returns an interpolation between 8 values. One cycle is required to return each 8-bit value from the lookup, and a total of 8 cycles are required. Trilinear interpolation uses 8 cycles when 2 multiply ALUs per cycle are used. General trilinear interpolation information is described in the ALU section of this document. The 512 bytes for the lookup table are packed into 16 cache lines.

画像の単一のカラーコンポーネントを変換するための時間は0.105秒(1500*1000*7サイクル*1サイクル当たり10ns)である。3コンポーネントを変換するため、0.415秒を要する。都合良く、プリントアウト用の色空間変換は、プリントアウト中にオンザフライ方式で行われる。 The time to convert a single color component of the image is 0.105 seconds (1500 * 1000 * 7 cycles * 10 ns per cycle). It takes 0.415 seconds to convert 3 components. Conveniently, color space conversion for printout is performed on-the-fly during printout.

カラーコンポーネントが別々に変換される場合、それらは入力色空間コンポーネントを上書きしなければならない。なぜならば、入力色空間からの全てのカラーコンポーネントは各コンポーネントを変換するために必要になるからである。 If color components are converted separately, they must overwrite the input color space component. This is because all color components from the input color space are needed to convert each component.

補間を実行するために1個の乗算ユニットだけが使用されるので、Lab->CMY変換の全体を単一パスとして行うことが可能である。このためには、三つの垂直ストリップ読み出しイタレータと、三つの垂直ストリップ書き込みイタレータと、が必要であり、3個の変換テーブルに同時にアクセスする。その場合、入力画像へ書き戻し、余分なメモリを使用しないことも可能である。しかし、3個の変換テーブルへのアクセスは、各々に対するキャッシュ処理の1/3に相当し、プロセス全体では高いレイテンシーを生じることになる。 Since only one multiplication unit is used to perform the interpolation, it is possible to perform the entire Lab-> CMY transformation as a single pass. This requires three vertical strip read iterators and three vertical strip write iterators, which simultaneously access three translation tables. In that case, it is possible to write back to the input image and not use extra memory. However, access to the three conversion tables corresponds to 1/3 of the cache processing for each, and causes high latency in the entire process.

アフィン変換
写真を用いて画像をコンポジットする前に、画像を回転、スケーリング、及び並進することが必要である。画像が並進だけされている場合、直接的なサブピクセル平行移動関数を使用する方が高速になる。しかし、回転、拡大、及び並進は、単一のアフィン変換に組み込むことができる。
Before compositing an image using an affine transformation photograph, it is necessary to rotate, scale, and translate the image. If the image is only translated, it is faster to use a direct subpixel translation function. However, rotation, magnification, and translation can be incorporated into a single affine transformation.

汎用アフィン変換は、加速関数として組み込みことが可能である。アフィン変換は2次元に制限され、縮小される場合、入力画像はスケール関数によって予めスケーリングされるべきである。汎用アフィン変換を備えることにより、出力画像を同時に1ブロックずつ構築することが可能になり、画像に対して多数の変換を実行するために要する時間を削減できる。なぜならば、多数の変換の全てを同時に適用できるからである。 The general affine transformation can be incorporated as an acceleration function. The affine transformation is limited to two dimensions, and when it is reduced, the input image should be prescaled by a scale function. By providing the general-purpose affine transformation, it is possible to construct an output image one block at a time, and it is possible to reduce the time required to perform many transformations on the image. This is because all of the many transformations can be applied simultaneously.

変換行列はクライアントによって与えられる必要があり、行列は、望まれる変換の逆行列でなければならない。即ち、その行列を出力画素座標に適用することによって入力座標が得られる。 The transformation matrix must be provided by the client and the matrix must be the inverse of the desired transformation. That is, the input coordinates are obtained by applying the matrix to the output pixel coordinates.

2次元行列は、通常、以下の3×3配列、即ち、 A two-dimensional matrix is usually the following 3x3 array:

Figure 0004309954
によって表現される。
Figure 0004309954
Is represented by

第3列は常に[0,0,1]であるため、クライアントはそれを指定しなくてもよい。その代わりに、クライアントはa,b,c,d,e,fを指定する。 Since the third column is always [0, 0, 1], the client need not specify it. Instead, the client specifies a, b, c, d, e, and f.

左上画像画素の座標が(0,0)として表される入力画像内の座標(x,y)が与えられた場合、入力座標は、(ax+cy+e,bx+dy+f)によって指定される。入力座標が決定されると、入力画像は、その画素値に達するためサンプリングされる。入力画像画素のバイリニア補間は、計算された座標における画素の値を決定するため使用される。アフィン変換は平行線を保存するので、画像は、最高の平均入力画像キャッシュコヒーレンスを得るため32画素幅の出力垂直ストリップで処理される。 When the coordinates (x, y) in the input image in which the coordinates of the upper left image pixel are represented as (0, 0) are given, the input coordinates are specified by (ax + cy + e, bx + dy + f). Once the input coordinates are determined, the input image is sampled to reach that pixel value. Bilinear interpolation of the input image pixels is used to determine the value of the pixel at the calculated coordinates. Since the affine transform preserves parallel lines, the image is processed with a 32 pixel wide output vertical strip to obtain the highest average input image cache coherence.

3個の乗算ALUは、バイリニア補間を2サイクル内で実行するために必要である。乗算ALU1及び2は、線Y及び線Y+1のそれぞれについてXに関してリニア補間を実行し、乗算ALU3は、乗算ALU1及び2によって出力された値の間でYに関するリニア補間を実行する。 Three multiplication ALUs are required to perform bilinear interpolation within two cycles. Multiplications ALU1 and 2 perform linear interpolation on X for each of line Y and line Y + 1, and multiplication ALU3 performs linear interpolation on Y between the values output by multiplications ALU1 and 2.

Xに関して出力線を横切って右へ移動するとき、2個のアダーALUは、「a」を現在のX値に加算し、「b」を現在のY値に加算することによって、実際の入力画像座標を計算する。次の線(最大で32画素を処理した後の垂直ストリップ内の次の線、又は新しい垂直ストリップの最初の線)へ進んだとき、X及びYを所与のブロックに対する予め計算されたスタート座標値定数に更新する。 When moving to the right across the output line with respect to X, the two adder ALUs add the “a” to the current X value and the “b” to the current Y value to obtain the actual input image. Calculate the coordinates. When proceeding to the next line (the next line in the vertical strip after processing at most 32 pixels, or the first line of a new vertical strip), let X and Y be pre-computed start coordinates for a given block Update to a value constant.

入力座標を計算するプロセスは図96に示され、同図では、以下の定数がソフトウェアによってセットされる。 The process of calculating input coordinates is shown in FIG. 96, where the following constants are set by software.

画素計算
入力画像座標が得られると、入力画像をサンプリングする必要がある。ルックアップテーブルは、バイリニア補間の準備として指定された座標における値を返すため使用される。基本プロセスは図97に示され、以下のルックアップテーブルが使用される。
Once the pixel calculation input image coordinates are obtained, it is necessary to sample the input image. Lookup tables are used to return values at specified coordinates in preparation for bilinear interpolation. The basic process is shown in FIG. 97, and the following lookup table is used.

Figure 0004309954
アフィン変換は、全部で4個の乗算ALU及び全部で4個のアダーALUを必要とし、良好なキャッシュコヒーレンスがある場合、1出力画素当たり平均2サイクルでアフィン変換を実行できる。このタイミングは優れたキャッシュコヒーレンスを前提とし、この前提は画像に歪みが無い場合には成立する。最悪ケースでは、画像がかなり歪み、重要なVarkスクリプトが含まれている可能性は低い。
Figure 0004309954
The affine transformation requires a total of 4 multiplication ALUs and a total of 4 adder ALUs, and if there is good cache coherence, the affine transformation can be performed with an average of 2 cycles per output pixel. This timing is premised on excellent cache coherence, and this premise holds when there is no distortion in the image. In the worst case, it is unlikely that the image is significantly distorted and contains important Vark scripts.

128×128画像を変換するために要する時間は、0.00033秒(32768サイクル)である。これが4チャンネル(aチャンネルを含む)を備えたクリップ画像である場合、必要な総時間は0.00131秒(131072サイクル)である。 The time required to convert a 128 × 128 image is 0.00033 seconds (32768 cycles). If this is a clip image with 4 channels (including channel a), the total time required is 0.00131 seconds (131072 cycles).

垂直ストリップ書き込みイタレータは画素を出力するため必要である。読み出しイタレータは不要である。しかし、アフィン変換アクセラレータは、入力画像画素にアクセスするために要する時間によって制約されるので、できるだけ多数のキャッシュラインが入力画像からの画素の読み出しに割り付けられるべきである。少なくとも32が利用可能であり、好ましくは、64以上が利用可能である。 A vertical strip write iterator is needed to output the pixels. A read iterator is not required. However, since the affine transformation accelerator is constrained by the time it takes to access the input image pixels, as many cache lines as possible should be allocated for reading the pixels from the input image. At least 32 are available, preferably 64 or more are available.

スケーリング
スケーリングは、基本的に画像の再サンプリングである。画像の拡大はアフィン変換関数を用いて実行できる。縮小を含む一般化された画像のスケーリングは、ハードウェア加速型スケール関数によって行われる。スケーリングはX及びYに関して独立に行われるので、異なるスケール倍率を各次元で使用することができる。一般化されたスケールユニットは、位置合わせに関して、アフィン変換スケール関数と適合しなければならない。
Scaling Scaling is basically image resampling. Image enlargement can be performed using affine transformation functions. Generalized image scaling, including reduction, is performed by a hardware accelerated scale function. Since scaling is done independently with respect to X and Y, different scale factors can be used in each dimension. The generalized scale unit must be compatible with the affine transformation scale function for alignment.

一般化されたスケーリングプロセスは図98に示されている。Xに関するスケールは図99に示されるようにFantの再サンプリングアルゴリズムによって達成される。 A generalized scaling process is shown in FIG. The scale for X is achieved by Fant's resampling algorithm as shown in FIG.

以下の定数がソフトウェアによってセットされる。 The following constants are set by the software:

Figure 0004309954
以下のレジスタは一時変数を保持するため使用される。
Figure 0004309954
The following registers are used to hold temporary variables.

Figure 0004309954
Yに関するスケールプロセスは図100に示され、X画素の順番の処理を考慮するためFantの再サンプリングアルゴリズムの僅かに変更されたバージョンによっても実現される。
Figure 0004309954
The scale process for Y is shown in FIG. 100 and is also implemented by a slightly modified version of Fant's resampling algorithm to allow for processing of the order of X pixels.

以下の定数がソフトウェアによってセットされる。 The following constants are set by the software:

Figure 0004309954
以下のレジスタが一時変数を保持するため使用される。
Figure 0004309954
The following registers are used to hold temporary variables:

Figure 0004309954
以下のDRAM FIFOが使用される。
Figure 0004309954
The following DRAM FIFOs are used:

Figure 0004309954
画像モザイク処理
画像のモザイク処理はタイリングの一形態である。モザイク処理は、特別に設計された「タイル」を、水平方向及び垂直方向に複数回、第2の(通常はより大きい)画像空間へコピーする処理を含む。モザイク処理されたとき、小さいタイルは継ぎ目のないピクチャーを形成する。この一例は、レンガ壁の区画の小さいタイルである。それは、モザイク処理されたときに、完全なレンガ壁を形成するように設計される。尚、モザイク処理には、スケーリング、又はサブピクセル平行移動が含まれないことに注意すべきである。
Figure 0004309954
Image mosaic processing Mosaic processing of images is a form of tiling. Mosaic processing involves copying specially designed “tiles” multiple times in the horizontal and vertical directions to a second (usually larger) image space. When mosaicked, small tiles form a seamless picture. An example of this is a small tile in a brick wall section. It is designed to form a complete brick wall when mosaicked. Note that mosaic processing does not include scaling or sub-pixel translation.

モザイク処理を行うために最もキャッシュコヒーレントな方法は、画像をライン毎に順次に出力し、同じ入力画像のラインを、そのラインの区間の間、繰り返すことである。ラインが終了したとき、入力画像は次のラインへ進められるべきである(出力ラインをはさんで複数回それを繰り返すべきである)。 The most cache-coherent method for performing mosaic processing is to sequentially output an image line by line and repeat the same input image line during the section of the line. When a line ends, the input image should be advanced to the next line (it should be repeated multiple times across the output line).

モザイク関数の概要は図101の390に示されている。順次読み出しイタレータ392は入力タイルの単一ラインを連続して読み出すようにセットアップされる(スタートラインは0であり、エンドラインは1である)。各入力画素は、書き込みイタレータ393−395の三つ全てに書き込まれる。アダーALUのカウンタ397は、出力ライン中の画素数をカウントダウンし、ラインの最後にシーケンスを終了する。 An overview of the mosaic function is shown at 390 in FIG. The sequential read iterator 392 is set up to read continuously a single line of the input tile (start line is 0, end line is 1). Each input pixel is written to all three write iterators 393-395. The adder ALU counter 397 counts down the number of pixels in the output line and ends the sequence at the end of the line.

ラインの処理の最後に、小さいソフトウェアルーチンは、マイクロコード及び順次読み出しイタレータ(これは、FIFOをクリアし、タイルのライン2を繰り返す)を再始動する前に、順次読み出しイタレータのスタートライン及びエンドラインレジスタを更新する。書き込みイタレータ393−395は更新されず、出力画像の対応した部分へ書き込み続けるだけである。正味の効果として、タイルが出力ラインをはさんで1ライン繰り返され、タイルが垂直方向に繰り返される。 At the end of processing the line, a small software routine starts the start and end lines of the sequential read iterator before restarting the microcode and sequential read iterator (which clears the FIFO and repeats line 2 of the tile). Update registers. The write iterator 393-395 is not updated, it just keeps writing to the corresponding part of the output image. The net effect is that the tile is repeated one line across the output line, and the tile is repeated vertically.

このプロセスはメモリ帯域幅を完全には使用しない。なぜならば、入力画像におけるキャッシュコヒーレンスは優れているが、モザイク処理を他のサイズのタイルと共に機能させることができないからである。このプロセスは、1個のアダーALUを使用する。3個の書き込みイタレータ393−395の各々が、画像の1/3に書き込む(画像をタイルサイズの境界に分割する)ならば、モザイクプロセスの全体は1出力画像画素当たり1/3サイクルの平均速度で行われる。1500×1000の画像の場合、これは、0.005秒(5000000ns)と一致する。 This process does not use memory bandwidth completely. This is because the cache coherence in the input image is excellent, but mosaic processing cannot work with tiles of other sizes. This process uses one adder ALU. If each of the three write iterators 393-395 writes to 1/3 of the image (divides the image into tile size boundaries), the entire mosaic process will average a rate of 1/3 cycle per output image pixel. Done in For a 1500 × 1000 image, this corresponds to 0.005 seconds (5000000 ns).

サブピクセルトランスレータ
画像を背景とコンポジットする前に、X及びYの両方に関してサブピクセル量で画像を平行移動させることが必要である。サブピクセル平行移動は、各次元に1画素ずつ画像のサイズを増加することができる。画像の外側の領域の値は、定数値(例えば、黒色)又はエッジ画素繰り返しのようなクライアントによって決定される値である。典型的に、黒色を使用する方がよい。
Prior to compositing the subpixel translator image with the background, it is necessary to translate the image by subpixel amounts for both X and Y. Sub-pixel translation can increase the size of the image by one pixel in each dimension. The value of the area outside the image is a constant value (eg, black) or a value determined by the client such as edge pixel repetition. Typically it is better to use black.

サブピクセル平行移動プロセスは図102に示されている。所定の次元のサブピクセル平行移動は、
Pixelout = Pixelin *
(1-Translation) + Pixelin-1 *
Translation
によって定義される。
The subpixel translation process is illustrated in FIG. The sub-pixel translation of a given dimension is
Pixel out = Pixel in *
(1-Translation) + Pixel in-1 *
Translation
Defined by

これは、補間の形式、即ち、
Pixelout= Pixelin-1 +
(Pixelin - Pixelin-1)
* Translation
として表現することができる。
This is the form of interpolation, ie
Pixel out = Pixel in-1 +
(Pixel in -Pixel in-1 )
* Translation
Can be expressed as

単一の乗算ALU及び単一のアダーALUを組み合わせて使用する単一(又は平均)サイクル補間エンジンの実装は簡単である。X及びYの両方に関するサブピクセル平行移動は、二つの補間エンジンを必要とする。 Implementation of a single (or average) cycle interpolation engine that uses a combination of a single multiply ALU and a single adder ALU is straightforward. Sub-pixel translation for both X and Y requires two interpolation engines.

Yに関するサブピクセル平行移動を行うため、二つの順次読み出しイタレータ400、401が必要になり(一方は、同じ画像から他の画像よりも進んでいるラインを読み出す)、一つの順次書き込みイタレータ403が必要になる。 Two sequential read iterators 400 and 401 are required to perform Y sub-pixel translation (one reads lines that are ahead of other images from the same image), and one sequential write iterator 403 is required. become.

第1の補間エンジン(Yに関する補間)は、二つのストリームからのデータペアを受け取り、それらの間を線形に補間する。第2の補間エンジン(Xに関する補間)は、単一の1次元ストリームとしてそのデータを受け取り、値の間を線形に補間する。両方のエンジンは平均として1サイクルで補間を行う。 The first interpolation engine (interpolation with respect to Y) receives data pairs from the two streams and linearly interpolates between them. A second interpolation engine (interpolation with respect to X) receives the data as a single one-dimensional stream and linearly interpolates between the values. Both engines interpolate in one cycle on average.

各補間エンジン405、406は、平均的に1出力画素当たり1サイクルでサブピクセル平行移動を実行する能力を備えている。したがって、全体的な時間は1出力画素当たり1サイクルであり、2個の乗算ALUと2個のアダーALUが必要である。 Each interpolation engine 405, 406 has the ability to perform sub-pixel translation in one cycle per output pixel on average. Thus, the overall time is one cycle per output pixel, requiring two multiplication ALUs and two adder ALUs.

サブピクセル平行移動関数から32画素を出力するために要する時間は、平均で320ns(32サイクル)である。これは、DRAMへの完全な4個のキャッシュラインアクセスに十分な時間であり、3個の順次イタレータの使用はタイミング原価以内に十分に収まる。 The average time required to output 32 pixels from the sub-pixel translation function is 320 ns (32 cycles). This is sufficient time for a complete four cache line access to the DRAM, and the use of three sequential iterators is well within the timing cost.

画像をサブピクセル平行移動するために要する総時間は、したがって、出力画像の1画素当たり1サイクルである。サブピクセル平行移動されるべき典型的な画像は、サイズ128*128のタイルである。出力画像サイズは129*129である。このプロセスは、129*129*10ns=166410nsである。 The total time required to translate the image by subpixel is therefore one cycle per pixel of the output image. A typical image to be sub-pixel translated is a tile of size 128 * 128. The output image size is 129 * 129. This process is 129 * 129 * 10 ns = 166410 ns.

画像タイル貼り関数もサブピクセル平行移動アルゴリズムを使用するが、サブピクセル平行移動処理されたデータを書き出す必要はなく、そのデータを更に処理する。 The image tiling function also uses a sub-pixel translation algorithm, but it is not necessary to write out the sub-pixel translated data and further process the data.

画像タイルタイラー
画像をタイル貼りする上位レベルアルゴリズムはソフトウェアで実行される。タイルの配置が決定されると、適切な着色タイルを合成しなければならない。各タイルの画像への実際のコンポジット処理は、マイクロコード化されたALUによってハードウェアで行われる。タイルのコンポジット処理は、背景画像へのテクスチャ貼り付けとカラー貼り付けの両方を含む。ある種のケースでは、背景に加えられる実際のテクスチャ量と、予定されたテクスチャ量とを比較し、貼り付けられるカラーをスケーリングするためこれを使用することが望ましい。これらのケースでは、テクスチャを先に貼り付けることが必要である。
The upper level algorithm for tiling the image tile tiler image is implemented in software. Once the tile placement is determined, appropriate colored tiles must be synthesized. The actual compositing to each tile image is done in hardware by a microcoded ALU. The tile composite processing includes both texture pasting and color pasting to the background image. In certain cases, it may be desirable to compare the actual amount of texture added to the background with the planned amount of texture and use it to scale the color that is pasted. In these cases, it is necessary to paste the texture first.

カラー貼り付け機能及びテクスチャ貼り付け機能はある程度独立しているので、これらはサブ関数に分離される。 Since the color pasting function and the texture pasting function are somewhat independent, they are separated into sub-functions.

種々のテクスチャスタイル及びカラーリングスタイルのための4チャンネルタイルコンポジット当たりのサイクル数は以下の表に要約されている。 The number of cycles per 4-channel tile composite for various texture and coloring styles is summarized in the following table.

Figure 0004309954
タイルカラーリング及びコンポジット処理
タイルは、(タイル全体に)一定色を具備するか、又は入力画像から各画素値を取るようにセットされる。これらの両方のケースは、不透明度を拡大縮小するため、テクスチャ処理ステージからのフィードバックがある(シニングペイントと同様)。
Figure 0004309954
Tile coloring and composite processing tiles have a constant color (over the entire tile) or are set to take each pixel value from the input image. Both of these cases have feedback from the texture processing stage (similar to thinning paint) to scale the opacity.

4ケースに対するステップは以下のように要約できる:
−タイルの不透明度値をサブピクセル平行移動する;
−(テクスチャ貼り付けからのフィードバックが有効である場合)タイルの不透明度を選択的にスケーリングする;
−画素の色を(一定に、又は画像マップから)決定する;
−画素を背景画像上でコンポジットする。
The steps for the four cases can be summarized as follows:
-Translating tile opacity values by sub-pixels;
-Selectively scaling tile opacity (if feedback from texture pasting is enabled);
-Determine the color of the pixel (constantly or from an image map);
-Composite the pixels on the background image.

4ケースの各々は、関数を実行するために要する時間を最小限に抑えるため、別々に取り扱われる。単一カラーチャンネルのカラーコンポジット処理スタイル当たりの時間は以下の表に要約されている。 Each of the four cases is handled separately to minimize the time required to execute the function. The time per color composite processing style for a single color channel is summarized in the table below.

Figure 0004309954
一定色
この場合、タイルは、ソフトウェアによって決定された一定色を具備する。ACP31が一つのタイルを設置する間に、ソフトウェアは次のタイルの配置及びカラーリングを決定することができる。
Figure 0004309954
Constant color In this case, the tile has a constant color determined by the software. While ACP 31 installs one tile, the software can determine the placement and coloring of the next tile.

タイルの色は、タイル貼りされている画像をスケーリングした画像へのバイリニア補間によって決定することが可能である。スケーリングされた画像は、作成し、画像ピラミッドの所定の位置に保存することが可能であり、タイル演算の全体に対して1回だけ実行すればよい。サイズが128×128である場合、画像は、各次元に関して、128:1で縮小される。 The color of the tile can be determined by bilinear interpolation to a scaled image of the tiled image. A scaled image can be created and stored at a predetermined location in the image pyramid and need only be executed once for the entire tile operation. If the size is 128 × 128, the image is reduced by 128: 1 for each dimension.

フィードバック無し
タイルのテクスチャ処理からのフィードバックが無いとき、タイルは、指定された座標に設置されるだけである。タイル色は、画素の色毎に使用され、コンポジットのための不透明度は、タイルのサブピクセル平行移動処理された不透明度チャンネルから由来する。このケースでは、カラーチャンネル及びテクスチャチャンネルは、タイル貼りパスの間に完全に独立して処理可能である。
Without feedback from tile texture processing, tiles are only placed at the specified coordinates. The tile color is used for each pixel color, and the opacity for the composite comes from the tile sub-pixel translated opacity channel. In this case, the color and texture channels can be processed completely independently during the tiling pass.

プロセスの概要は図103に示されている。タイルのサブピクセル平行移動410は、1出力画素当たり1サイクルの平均時間の場合、2個の乗算ALU及び2個のアダーALUを使用して実行することができる。サブピクセル平行移動からの出力は、背景順次読み出しイタレータからの背景画像で一定タイル色412をコンポジット処理411する際に使用されるべきマスクである。 An overview of the process is shown in FIG. Tile sub-pixel translation 410 can be performed using two multiply ALUs and two adder ALUs for an average time of one cycle per output pixel. The output from the sub-pixel translation is a mask to be used when compositing 411 certain tile colors 412 with the background image from the background sequential read iterator.

コンポジット処理は、1コンポジット当たり1サイクルの平均時間の場合、1個の乗算ALU及び1個のアダーALUを用いて実行できる。したがって、必要条件は、3個の乗算ALU及び3個のアダーALUである。4個の順次イタレータ413−416が必要であり、それらの内容を読み書きするために320nsを要する。サブピクセル並行移動及びコンポジットのために要する1画素当たりの平均サイクル数の場合、バッファを読み書きするための十分な時間がある。 Composite processing can be performed using one multiplication ALU and one adder ALU for an average time of one cycle per composite. Thus, the prerequisites are 3 multiplication ALUs and 3 adder ALUs. Four sequential iterators 413-416 are required and 320 ns is required to read and write their contents. For the average number of cycles per pixel required for subpixel translation and compositing, there is sufficient time to read and write the buffer.

フィードバック付き
タイルのテクスチャ処理からのフィードバックがあるとき、タイルは指定された座標に配置される。タイル色は、画素の色毎に使用され、コンポジットのための不透明度は、フィードバックパラメータによってスケーリングされたサブピクセル平行移動処理された不透明度チャンネルから由来する。このようにして、テクスチャ値は、カラー値が貼り付けられる前に計算しなければならない。
When there is feedback from the texture processing of the tile with feedback, the tile is placed at the specified coordinates. The tile color is used for each pixel color, and the opacity for the composite comes from the sub-pixel translated opacity channel scaled by the feedback parameter. In this way, the texture value must be calculated before the color value is pasted.

プロセスの概要は図97に示されている。タイルのサブピクセル平行移動は、1出力画素当たり1サイクルの平均時間の場合、2個の乗算ALU及び2個のアダーALUを使用して実行することができる。サブピクセル平行移動からの出力は、フィードバック順次読み出しイタレータ420から読み出されたフィードバックに応じてスケーリングされるべきマスクである。このフィードバックはスケーラ(1個の乗算ALU)421へ送られる。 An overview of the process is shown in FIG. The sub-pixel translation of the tile can be performed using two multiply ALUs and two adder ALUs for an average time of one cycle per output pixel. The output from the subpixel translation is a mask to be scaled according to the feedback read from the feedback sequential read iterator 420. This feedback is sent to the scaler (one multiplication ALU) 421.

コンポジット処理426は、1コンポジット当たり1サイクルの平均時間の場合、1個の乗算ALU及び1個のアダーALUを用いて実行できる。したがって、必要条件は、4個の乗算ALU及び4個のアダーALUである。プロセス全体は、平均的に1サイクル内で完了可能であるが、ボトルネックはメモリアクセスである。なぜならば、5個の順次イタレータが必要になるからである。十分なバッファリングが行われる場合、平均時間は1画素当たり1.25サイクルである。 The composite processing 426 can be executed using one multiplication ALU and one adder ALU in the case of an average time of one cycle per composite. Therefore, the necessary conditions are 4 multiplication ALUs and 4 adder ALUs. The entire process can be completed on average in one cycle, but the bottleneck is memory access. This is because five sequential iterators are required. If sufficient buffering is performed, the average time is 1.25 cycles per pixel.

入力画像からの色
タイルの画素に着色する一つの方法は、入力画像の画素から色を取り出すことである。ここでも、コンポジット処理には、テクスチャ処理からのフィードバック付きとフィードバック無しの二つの可能性がある。
One way to color the pixels of the color tile from the input image is to extract the color from the pixels of the input image. Again, there are two possibilities for composite processing, with and without feedback from texture processing.

フィードバック無し
この場合、タイル色は、入力画像内の対応する画素から簡単にもたらされる。コンポジット処理用の不透明度は、サブピクセルシフトされたタイルの不透明度チャンネルに由来する。
No feedback In this case, the tile color is simply derived from the corresponding pixel in the input image. The opacity for compositing comes from the opacity channel of the subpixel shifted tile.

プロセスの概要は図105に示されている。タイルのサブピクセル平行移動425は、1出力画素当たり1サイクルの平均時間の場合、2個の乗算ALU及び2個のアダーAL
Uを使用して実行することができる。サブピクセル平行移動からの出力は、(入力画像428から読み出された)タイルの画素色を背景画像429とコンポジット処理426する際に使用されるべきマスクである。このフィードバックは、スケーラ(1個の乗算ALU)431へ送られる。
An overview of the process is shown in FIG. The sub-pixel translation 425 of the tile is 2 multiplication ALUs and 2 adders AL for an average time of 1 cycle per output pixel.
Can be performed using U. The output from the subpixel translation is a mask to be used when compositing 426 the pixel color of the tile (read from the input image 428) with the background image 429. This feedback is sent to the scaler (one multiplication ALU) 431.

コンポジット処理434は、1コンポジット当たり1サイクルの平均時間の場合、1個の乗算ALU及び1個のアダーALUを用いて実行できる。したがって、必要条件は、3個の乗算ALU及び3個のアダーALUである。プロセス全体は平均して1サイクル以内に完了可能であるが、ボトルネックはメモリアクセスである。なぜならば、5個の順次イタレータが必要になるからである。十分なバッファリングが行われる場合、平均時間は1画素当たり1.25サイクルである。 The composite processing 434 can be executed using one multiplication ALU and one adder ALU in the case of an average time of one cycle per composite. Thus, the prerequisites are 3 multiplication ALUs and 3 adder ALUs. The entire process can be completed on average within one cycle, but the bottleneck is memory access. This is because five sequential iterators are required. If sufficient buffering is performed, the average time is 1.25 cycles per pixel.

フィードバック付き
この場合、タイル色は、やはり入力画像内の対応する画素から簡単にもたらされるが、コンポジット処理用の不透明度は、テクスチャ処理パス中に実際に適用されたテクスチャ高さの相対的な量による影響を受ける。このプロセスは図106に示されている。
In this case with feedback, the tile color is still simply derived from the corresponding pixel in the input image, but the opacity for composite processing is the relative amount of texture height actually applied during the texture processing pass. Affected by. This process is illustrated in FIG.

タイルのサブピクセル平行移動431は、1出力画素当たり1サイクルの平均時間の場合、2個の乗算ALU及び2個のアダーALUを使用して実行することができる。サブピクセル平行移動からの出力は、フィードバック順次読み出しイタレータ432から読み出されたフィードバックに応じてスケーリング431されるべきマスクである。 The tile sub-pixel translation 431 can be performed using two multiplication ALUs and two adder ALUs for an average time of one cycle per output pixel. The output from the sub-pixel translation is a mask to be scaled 431 according to the feedback read from the feedback sequential read iterator 432.

コンポジット処理は、1コンポジット当たり1サイクルの平均時間の場合、1個の乗算ALU及び1個のアダーALUを用いて実行できる。 Composite processing can be performed using one multiplication ALU and one adder ALU for an average time of one cycle per composite.

したがって、必要条件は、4個の乗算ALU及び3個のアダーALUである。プロセス全体は平均して1サイクル以内に完了可能であるが、ボトルネックはメモリアクセスである。なぜならば、6個の順次イタレータが必要になるからである。十分なバッファリングが行われる場合、平均時間は1画素当たり1.5サイクルである。 Thus, the prerequisites are 4 multiplication ALUs and 3 adder ALUs. The entire process can be completed on average within one cycle, but the bottleneck is memory access. This is because six sequential iterators are required. If sufficient buffering is performed, the average time is 1.5 cycles per pixel.

タイルテクスチャ処理
各タイルはそのテクスチャチャンネルによって定義される表面テクスチャを有する。テクスチャは、サブピクセルへ移行移動され、次に、出力画像に貼り付けられる。テクスチャコンポジット処理には、
テクスチャ配置と、
25%背景+タイルのテクスチャと、
平均高さアルゴリズムと、
の3種類のスタイルがある。
Tile Texture Processing Each tile has a surface texture defined by its texture channel. The texture is moved to subpixels and then pasted into the output image. For texture compositing,
Texture placement,
25% background + tile texture,
An average height algorithm;
There are three types of styles.

更に、平均高さアルゴリズムはカラーコンポジット処理のためのフィードバックパラメータを節約する。 In addition, the average height algorithm saves feedback parameters for color composite processing.

テクスチャコンポジット処理スタイル毎に要する時間は以下の表に要約される。 The time required for each texture composite processing style is summarized in the table below.

Figure 0004309954
テクスチャ置換
このケースでは、タイルからのテクスチャは、図107に示されるように、画像のテクスチャチャンネルを置き換える。タイルのテクスチャのサブピクセル平行移動436は、1出力画素当たり1サイクルの平均時間で、2個の乗算ALU及び2個のアダーALUを使用して実行できる。サブピクセル平行移動からの出力は、順次書き込みイタレータ437へそのまま供給される。
Figure 0004309954
Texture Replacement In this case, the texture from the tile replaces the texture channel of the image, as shown in FIG. The tile texture sub-pixel translation 436 can be performed using two multiplying ALUs and two adder ALUs with an average time of one cycle per output pixel. The output from the sub-pixel translation is sequentially supplied to the writing iterator 437 as it is.

テクスチャ置換コンポジット処理に要する時間は1画素当たり1サイクルである。テクスチャ値の100%が常に背景に貼り付けられるので、フィードバックは無い。したがって、チャンネルを特定の順序で処理する必要はない。 The time required for texture replacement composite processing is one cycle per pixel. Since 100% of the texture value is always pasted to the background, there is no feedback. Thus, there is no need to process the channels in a specific order.

25%背景+タイルのテクスチャ
この例では、タイルからのテクスチャは既存テクスチャ値の25%に加えられる。新しい値は元の値以上でなければならない。その上、テクスチャチャンネルは8ビットしかないので、新しいテクスチャ値は255でクリップされる。利用されるプロセスは図108に示されている。
25% Background + Tile Texture In this example, the texture from the tile is added to 25% of the existing texture value. The new value must be greater than or equal to the original value. Moreover, since the texture channel is only 8 bits, the new texture value is clipped at 255. The process utilized is shown in FIG.

タイルのテクスチャのサブピクセル平行移動440は、1出力画素当たり1サイクルの平均時間で、2個の乗算ALU及び2個のアダーALUを使用して実行できる。サブピクセル平行移動440からの出力は、アダー441へ供給され、背景テクスチャ値の1/4
442に加算される。最小値及び最大値関数444は、サブピクセル平行移動のために使用されない2個のアダーによって設けられ、出力は順次書き込みイタレータ445に書き込まれる。
The tile texture sub-pixel translation 440 can be performed using two multiplying ALUs and two adder ALUs with an average time of one cycle per output pixel. The output from the subpixel translation 440 is fed to the adder 441 and is ¼ of the background texture value.
442 is added. The minimum and maximum value functions 444 are provided by two adders that are not used for sub-pixel translation, and the output is written to the write iterator 445 sequentially.

このスタイルのテクスチャコンポジット処理のために要する時間は1画素当たり1サイクルである。テクスチャ値の100%は、(たとえ、255でクリッピングされたとしても)背景に貼り付けられたと考えられるので、フィードバックは無い。したがって、チャンネルを特定の順序で処理する必要はない。 The time required for this style of texture composite processing is one cycle per pixel. There is no feedback because 100% of the texture value is considered pasted on the background (even if it was clipped at 255). Thus, there is no need to process the channels in a specific order.

平均高さアルゴリズム
このテクスチャ貼り付けアルゴリズムでは、タイルに基づいて平均高さが計算され、各画像の高さは平均高さと比較される。画素の高さが平均よりも小さい場合、ストローク高さが背景高さに加えられる。画素の高さが平均以上である場合、ストローク高さが平均高さに加えられる。このようにして、背景ピークはストロークを細くする。この高さは、背景がストローク貼り付けを0まで細くすることを避けるため、最小限の量で増加するように拘束される(しかし、最小限の量は0になり得る)。高さは、テクスチャチャンネルが8ビット解像度であるため、255で切り取られる。
Average Height Algorithm In this texture pasting algorithm, the average height is calculated based on the tiles, and the height of each image is compared to the average height. If the pixel height is less than average, the stroke height is added to the background height. If the pixel height is above average, the stroke height is added to the average height. In this way, the background peak narrows the stroke. This height is constrained to increase by a minimum amount (but the minimum amount can be zero) to prevent the background from thinning the stroke pasting to zero. The height is clipped at 255 because the texture channel is 8-bit resolution.

貼り付けられたテクスチャと貼り付けられる予測量との差のフィードバックが存在し得る。フィードバック量は、タイルの色の貼り付けの際に倍率として使用可能である。 There may be feedback of the difference between the pasted texture and the predicted amount pasted. The feedback amount can be used as a magnification when the tile color is pasted.

両方のケースで、平均テクスチャは、ソフトウェアによって提供され、スケーリングされたテクスチャマップに関するバイレベル補間を実行することにより計算される。ソフトウェアは、現在のタイルが貼り付けられている間に、次のタイルの平均テクスチャ高さを決定する。ソフトウェアは、付加する最小限の厚さを与え、この最小限の厚さは、典型的に、タイル貼り付けプロセスの全体で一定である。 In both cases, the average texture is calculated by performing bi-level interpolation on the scaled texture map provided by the software. The software determines the average texture height of the next tile while the current tile is being pasted. The software provides a minimum thickness to add, and this minimum thickness is typically constant throughout the tiling process.

フィードバック無し
フィードバックが無い場合、テクスチャは、図109に示されるように、背景テクスチャに貼り付けられるだけである。
Without feedback, the texture is only pasted to the background texture, as shown in FIG.

4個の順次イタレータが必要であり、これは、プロセスが1サイクルの間でパイプライン化できるならば、メモリの高速性が遅れないために十分であることを意味する。 Four sequential iterators are required, which means that if the process can be pipelined in one cycle, it is sufficient that the high speed of the memory is not delayed.

タイルのテクスチャのサブピクセル平行移動450は、1出力画素当たり1サイクルの平均時間で、2個の乗算ALU及び2個のアダーALUを使用して実行できる。最小値及び最大値関数451、452は、1サイクル以内に全演算を完了するため、別個のアダーALUを必要とする。テクスチャのサブピクセル平行移動によって既に2が使用されているので、1サイクル平均時間のために十分な残り時間が無い。 Tile texture sub-pixel translation 450 can be performed using two multiplying ALUs and two adder ALUs with an average time of one cycle per output pixel. The minimum and maximum value functions 451 and 452 require a separate adder ALU to complete all operations within one cycle. Since 2 is already used by the sub-pixel translation of the texture, there is not enough remaining time for one cycle average time.

したがって、1画素のテクスチャを処理するための平均時間は2サイクルである。フィードバックが存在せず、コンポジット処理のカラーチャンネルの順序は無関係であることに注意する必要がある。 Therefore, the average time for processing one pixel texture is two cycles. Note that there is no feedback and the order of the color channels in the composite process is irrelevant.

フィードバック付き
これは、概念的にはフィードバック無しの場合と同じであるが、但し、標準的なテクスチャ貼り付けアルゴリズムの処理の他に、実際に貼り付けられたテクスチャの割合を記録しなければならない。この割合は、引き続きタイルの色を背景画像にコンポジット処理するための倍率として使用可能である。フローチャートは図110に示され、以下のルックアップテーブルが使用される。
With feedback, this is conceptually the same as without feedback, except that in addition to the processing of the standard texture pasting algorithm, the percentage of texture actually pasted must be recorded. This ratio can continue to be used as a magnification for compositing the tile color into the background image. The flowchart is shown in FIG. 110, and the following lookup table is used.

Figure 0004309954
ソフトウェアで設けられた1/Nテーブル460の256個のエントリーの各々は16ビットであり、連続して保持するため16個のキャッシュラインが必要である。
Figure 0004309954
Each of the 256 entries of the 1 / N table 460 provided by the software is 16 bits, and 16 cache lines are required to hold them continuously.

タイルのテクスチャのサブピクセル平行移動461は、1出力画素当たり1サイクルの平均時間で、2個の乗算ALU及び2個のアダーALUを使用して実行できる。最小値関数462及び最大値関数463の各々は、1サイクル以内に全演算を完了するため、別個のアダーALUを必要とする。テクスチャのサブピクセル平行移動によって既に2が使用されているので、1サイクル平均時間のために十分な残り時間が無い。 The tile texture sub-pixel translation 461 can be performed using two multiplying ALUs and two adder ALUs with an average time of one cycle per output pixel. Each of the minimum value function 462 and maximum value function 463 requires a separate adder ALU to complete the entire operation within one cycle. Since 2 is already used by the sub-pixel translation of the texture, there is not enough remaining time for one cycle average time.

したがって、1画素のテクスチャを処理するための平均時間は2サイクルである。フィードバックデータエリア(タイルサイズの画像チャンネル)のために十分な空間を割り付けるべきである。テクスチャは、タイルの色が貼り付けられる前に貼り付けられるべきである。なぜならば、フィードバックがタイルの不透明度をスケーリングするため使用されるからである。 Therefore, the average time for processing one pixel texture is two cycles. Sufficient space should be allocated for the feedback data area (tile-sized image channel). The texture should be applied before the tile color is applied. This is because feedback is used to scale the opacity of the tile.

CCD画像インターポレータ
ISI83(図3)によってCCDから獲得される像は750×500画素である。像がISIによって撮影されたときのカメラの向きは、画像の上部が「上」に対応するように、画素を0、90、180又は270度回転させるために使用される。全ての画素は、(最大で3というよりも)R、G又はBカラーコンポーネントだけを有するので、これらが回転しているという事実は、画素値を解釈する際に考慮されなければならない。カメラの向きに応じて、2×2画素ブロックの各々は、図111に示されたコンフィギュレーションの何れかを有する。
The image acquired from the CCD by the CCD image interpolator ISI 83 (FIG. 3) is 750 × 500 pixels. The orientation of the camera when the image was taken by ISI is used to rotate the pixel by 0, 90, 180 or 270 degrees so that the top of the image corresponds to “up”. Since all pixels have only R, G or B color components (rather than a maximum of 3), the fact that they are rotating must be considered when interpreting the pixel values. Depending on the orientation of the camera, each 2 × 2 pixel block has one of the configurations shown in FIG.

CCD撮影された像を処理のために有用な形式に変換するために、CCD撮影された像に以下の幾つかの処理を行うことが必要である:
−CCD像の低サンプルレートカラーコンポーネントのアップ補間(画素の正しい向きを解釈);
RGBから内部色空間への色変換;
−750×500から1500×1000へ内部空間画像をスケーリング;
−プレーナーフォーマットで像を書き込み。
In order to convert a CCD captured image into a form useful for processing, it is necessary to perform some processing on the CCD captured image:
-Up-interpolation of the low sample rate color component of the CCD image (interpreting the correct orientation of the pixels);
Color conversion from RGB to internal color space;
Scaling the internal space image from 750 × 500 to 1500 × 1000;
-Write images in planar format.

像のチャンネル全体は、ワーピングを可能にさせるため、同時に利用できることが必要である。小規模メモリモデル(8MB)の場合、一時的オブジェクトとして全解像度で単一のチャンネルを保持するための空間しかない。このため、色変換は単一のカラーチャンネルへの変換である。このプロセスに関する制約要因は色変換である。なぜならば、色変換は、RGBから内部色空間へのトライリニア補間を含み、このトライリニア補間は、1チャンネル当たり0.026ns(750×500×1画素当たり7サイクル×1サイクル当たり10ns=26250000ns)を要するプロセスだからである。 The entire image channel must be available at the same time to allow warping. In the small memory model (8 MB), there is only space for holding a single channel at full resolution as a temporary object. For this reason, color conversion is conversion to a single color channel. The limiting factor for this process is color conversion. This is because color conversion includes trilinear interpolation from RGB to the internal color space, and this trilinear interpolation is 0.026 ns per channel (750 × 500 × 7 cycles per pixel × 10 ns per cycle = 26250,000 ns). Because it is a process that requires

内部色空間画像をスケーリングする前に色変換を実行することが重要である。なぜならば、これは、スケーリングされる画素数(したがって、全体のプロセス時間)を4の倍率で削減するからである。 It is important to perform color conversion before scaling the internal color space image. This is because the number of scaled pixels (and hence the overall process time) is reduced by a factor of four.

全ての変換に対する必要条件がALUスキームに当てはまる訳ではない。変換は、したがって、以下の二つのフェーズに分解される:
フェーズ1:CCD像の低サンプルレートカラーコンポーネントのアップ補間(画素の正しい向きを解釈);
RGBから内部色空間への色変換;
プレーナーフォーマットでの像の書き込み;
フェーズ2:750×500から1500×1000へ内部空間画像をスケーリング。
Not all conversion requirements apply to the ALU scheme. The transformation is therefore broken down into two phases:
Phase 1: Up-interpolation of low sample rate color components of CCD image (interpret correct pixel orientation);
Color conversion from RGB to internal color space;
Writing images in planar format;
Phase 2: Scale internal space image from 750 × 500 to 1500 × 1000.

スケール関数の分離は、小さい色変換後の画像は大きい画像と同時にメモリ内に存在すべきであることを意味する。フェーズ1からの出力(0.5MB)は、通常、画像ピラミッド(1MB)のために確保されたメモリエリアに安全に書き込まれる。フェーズ2からの出力は、一般的な拡大されたCCD像である。スケーリングの分離によって、更に、スケーリングをアフィン変換によって実現することが可能になり、これは、簡単な1:2の拡大ではない様々なCCD解像度を許容する。 The separation of the scale function means that the small color converted image should exist in memory at the same time as the large image. The output from Phase 1 (0.5 MB) is usually safely written to the memory area reserved for the image pyramid (1 MB). The output from Phase 2 is a typical enlarged CCD image. Scaling separation also allows scaling to be achieved by affine transformation, which allows for various CCD resolutions that are not simple 1: 2 magnification.

フェーズ1:低サンプルレートカラーコンポーネントのアップ補間
3カラーコンポーネント(R、G及びB)の各々は、所与の画素に対して色変換を実行するためアップ補間される必要がある。色変換は7サイクルを使用するので、補間を実行するため1画素当たりに7サイクルがある。
Phase 1: Up-interpolation of low sample rate color components Each of the three color components (R, G, and B) needs to be up-interpolated to perform color conversion for a given pixel. Since color conversion uses 7 cycles, there are 7 cycles per pixel to perform the interpolation.

Gの補間は簡単であり、図112に示されている。向きに応じて、実際の画素値Gは、
奇数ライン上の奇数画素及び偶数ライン上の偶数画素と、偶数ライン上の奇数画素及び奇数ライン上の偶数画素との間で交互に代わる。両方のケースで、リニア補間が要求される全てである。Rコンポーネント及びBコンポーネントの補間は、図113及び図113に示されるようにもっと複雑である。なぜならば、水平方向及び垂直方向において、同図から分かるように、3行の画素に同時にアクセスすることが要求されるので、3個の順次読み出しイタレータが必要であり、各順次読み出しイタレータは単一行によってオフセットされる。その上、各行のためのラッチを用いて、同じ行の前の画素へアクセスする。
The interpolation of G is simple and is shown in FIG. Depending on the orientation, the actual pixel value G is
It alternates between odd pixels on odd lines and even pixels on even lines and odd pixels on even lines and even pixels on odd lines. In both cases, linear interpolation is all that is required. The interpolation of R and B components is more complex as shown in FIGS. This is because, in the horizontal direction and the vertical direction, as can be seen from the figure, it is required to access three rows of pixels at the same time, so three sequential read iterators are required, and each sequential read iterator is a single row. Offset by In addition, the latch for each row is used to access the previous pixel in the same row.

したがって、各画素は、CCDからの1個のコンポーネントと、他の2個のアップ補間されたコンポーネントと、を格納する。一方のコンポーネントがバイリニア補間されているとき、他方はリニア補間されている。補間係数は定数0.5であるため、補間は、加算及び1ビット右シフトによって(1サイクル以内に)計算することが可能であり、係数0.5のバイリニア補間は、3回の加算及び2ビット右シフト(3サイクル)によって計算可能である。必要な総サイクル数は、単一の乗算ALUを使用した場合4である。 Thus, each pixel stores one component from the CCD and the other two up-interpolated components. When one component is bilinearly interpolated, the other is linearly interpolated. Since the interpolation factor is a constant 0.5, the interpolation can be calculated (within 1 cycle) by addition and 1-bit right shift, and bilinear interpolation with a factor of 0.5 is 3 additions and 2 It can be calculated by bit shift right (3 cycles). The total number of cycles required is 4 when using a single multiplying ALU.

図115は、回転0の偶数ライン偶数画素(EL,EP)及び奇数ライン奇数画素(OL,EP)のケースを示し、図116は、回転0の偶数ライン奇数画素(EL,OP)及び奇数ライン偶数画素(OL,OP)のケースを示している。他の回転は、これらの2個の表現の少し異なる形式である。 FIG. 115 shows the case of even-numbered even pixels (EL, EP) and odd-numbered odd pixels (OL, EP) with rotation 0, and FIG. 116 shows even-numbered odd-numbered pixels (EL, OP) and odd-numbered lines with rotation 0. The case of even pixels (OL, OP) is shown. Other rotations are a slightly different form of these two representations.

色変換
RGBからLabへの色空間変換は、汎用色空間変換関数に関して説明された方法と同じ方法を使用して実現され、1画素当たり8サイクルを要するプロセスである。フェーズ1の処理は図117を参照して説明される。
Color conversion RGB to Lab color space conversion is a process that takes 8 cycles per pixel, implemented using the same method as described for the general color space conversion function. The processing of phase 1 will be described with reference to FIG.

RGBのアップ補間は4サイクル(1個の乗算ALU)を必要とするが、色空間の変換は、ルックアップ転送時間のため、1画素当たり8サイクル(2個の乗算ALU)を必要とする。 RGB up-interpolation requires 4 cycles (1 multiplication ALU), but color space conversion requires 8 cycles per pixel (2 multiplications ALU) due to lookup transfer time.

フェーズ2
画像スケーリング
このフェーズは、CCD解像度(750×500)から作業用写真解像度(1500×1000)への画像のアップ補間と関係する。スケーリングは、1:2の縮尺のアフィン変換を実行させることにより行われる。汎用アフィン変換のタイミングは1出力画素当たり2サイクルであり、本ケースでは、0.03秒のスケーリング時間の経過を意味する。
Phase 2
Image Scaling This phase involves the up-interpolation of the image from the CCD resolution (750 × 500) to the working photographic resolution (1500 × 1000). Scaling is performed by performing an affine transformation with a 1: 2 scale. The timing of general-purpose affine transformation is 2 cycles per output pixel, and in this case, it means that a scaling time of 0.03 seconds has elapsed.

画像照明
画像が処理された後、画像を一つ以上の光源によって照明することができる。光源は以下の何れの型でもよい:
1.指向性型−無限の距離があるので、単一方向へ平行光を投じる;
2.オムニ型−全方向へ非焦点光を投じる;
3.スポット型−特定の目標点へ焦点ビームを投光する。スポット光に関連した円錐及び半影部が存在する。
After the image illumination image is processed, the image can be illuminated by one or more light sources. The light source can be any of the following types:
1. Directional type-because there is an infinite distance, it throws parallel light in a single direction;
2. Omni type-throws unfocused light in all directions;
3. Spot type—projects a focused beam to a specific target point. There are cones and penumbras associated with spot light.

シーンは、反射角を変化させるため関連したバンプマップを有する。周辺光も選択的に照明されたシーンに存在する。 The scene has an associated bump map to change the reflection angle. Ambient light is also present in selectively illuminated scenes.

加速された照明のプロセスでは、単一の光源によって一つの画像チャンネルを照明することに関心がある。多数の光源を、1光源当たりに1パスの多数のパスとして、単一の画像チャンネルに適用することが可能である。多数のチャンネルは、バンプマップがある場
合も無い場合も、同時に一つずつ処理可能である。
In the accelerated illumination process, one is interested in illuminating one image channel with a single light source. Multiple light sources can be applied to a single image channel as multiple passes, one pass per light source. Multiple channels can be processed one at a time, with or without a bump map.

ある画素における法線表面ベクトル(N)は、もし存在するならば、バンプマップから計算される。バンプマップが存在しない場合、デフォルト法線ベクトルは、画像面に垂直、即ち、N=[0,0,1]である。 The normal surface vector (N) at a pixel is calculated from the bump map, if present. If no bump map exists, the default normal vector is perpendicular to the image plane, ie N = [0, 0, 1].

ビューイングベクトルVは、常に、画像平面に垂直、即ち、V=[0,0,1]である。 The viewing vector V is always perpendicular to the image plane, ie V = [0, 0, 1].

指向性光源の場合、画素から光源への光源ベクトル(L)は、画像全体中で一定であり、画像全体に対して1回計算される。(有限の距離にある)オムニ光源の場合、光源ベクトルは、画素毎に独立に計算される。 In the case of a directional light source, the light source vector (L) from pixel to light source is constant throughout the image and is calculated once for the entire image. In the case of an omni light source (at a finite distance), the light source vector is calculated independently for each pixel.

周辺光の画素の反射は、IakaOdに従って計算される。 The ambient light pixel reflection is calculated according to I a k a O d .

光源の画素の散乱及び鏡面反射は、Phongモデル:
fattIp[kdOd(N・L) + ksOs(R・V)n]
に従って計算される。
Light source pixel scattering and specular reflection, Phong model:
f att I p [k d O d (N ・ L) + k s O s (R ・ V) n ]
Calculated according to

光源が無限大である場合、光源強度は画像全体に亘って一定である。 When the light source is infinite, the light source intensity is constant over the entire image.

各光源は1画素当たりに3個の寄与度、即ち、
周辺光寄与度
散光寄与度
鏡面寄与度
を有する。
Each light source has three contributions per pixel, ie
Ambient light contribution degree Diffuse contribution degree Specular contribution degree

光源は以下の変数を用いて定義される。 The light source is defined using the following variables:

Figure 0004309954
同じ反射係数(k,k,k)がカラーコンポーネント毎に使用される。
Figure 0004309954
The same reflection coefficient (k a, k s, k d) are used per color component.

所与の画素の値は、周辺光寄与と、各光の拡散寄与及び鏡面寄与の合計との和に一致する。 The value of a given pixel corresponds to the sum of the ambient light contribution and the sum of the diffuse and specular contributions of each light.

照明計算のサブプロセス
散光寄与度を計算するため、様々なその他の計算が必要である。それらの計算の中には、
1/ΔX


N・L
R・V
att
fcp
の計算が含まれる;
サブプロセスは、
周辺光
散光
鏡面
の寄与度を計算するためにも定義される。
Various other calculations are needed to calculate the light calculation subprocess diffuse contribution. Among those calculations are:
1 / ΔX
N
L
N ・ L
R ・ V
f att
f cp
Calculation of;
The subprocess is
It is also defined to calculate the contribution of the ambient light diffuse mirror surface.

サブプロセスは、光源の全体的な照度を計算するために使用できる。4個の乗算ALUしか存在しないので、特定のタイプの光源に対するマイクロコードは、性能のため適切に混ぜられたサブプロセスを含み得る。 The sub-process can be used to calculate the overall illumination of the light source. Since there are only four multiplying ALUs, the microcode for a particular type of light source may contain sub-processes that are properly mixed for performance.

1/√Xの計算
Vark照明モデルはベクトルを使用する。殆どの場合に、正規化の目的のため、ベクトルの長さの逆数を計算することが重要である。長さの逆数を計算するためには、1/([x]の平方根)の計算が必要である。
The 1 / √X calculation Vark illumination model uses vectors. In most cases, it is important to calculate the reciprocal of the length of the vector for normalization purposes. In order to calculate the reciprocal of the length, it is necessary to calculate 1 / (square root of [x]).

論理的に、このプロセスは、図118に示されるような入力及び出力を有するプロセスとして表現可能である。図119を参照すると、この計算は、推定値をルックアップし、次に、以下の関数:
Vn+1 = 1/2 Vn(3-XVn 2)
を1回繰り返すことによって行うことが可能である。
Logically, this process can be expressed as a process with inputs and outputs as shown in FIG. Referring to FIG. 119, this calculation looks up the estimate and then the following function:
V n + 1 = 1/2 V n (3-XV n 2 )
Can be performed by repeating the above once.

繰り返しの回数は、要求される精度に応じる。このケースでは、16ビットの精度が必要である。したがって、テーブルは、8ビットの精度であり、1回の繰り返しだけが必要である。以下の定数はソフトウェアによってセットされる。 The number of repetitions depends on the required accuracy. In this case, 16 bits of accuracy are required. Therefore, the table is 8 bits accurate and only needs to be repeated once. The following constants are set by software.

Figure 0004309954
以下のルックアップテーブルが使用される。
Figure 0004309954
The following lookup table is used.

Figure 0004309954
Nの計算
Nは表面法線ベクトルである。バンプマップが存在しない場合、Nは一定である。バンプマップが存在する場合、Nは画素毎に計算しなければならない。
Figure 0004309954
Calculation of N N is the surface normal vector. If no bump map exists, N is constant. If a bump map exists, N must be calculated for each pixel.

バンプマップ無し
バンプマップが無いとき、固定法線Nは、以下の性質、即ち、
N=[X,Y,Z]=[0,0,1]
||N||=1
1/||N||=1
正規化されたN=N
を有する。
When there is no bump map, the fixed normal N has the following properties:
N = [X N , Y N , Z N ] = [0, 0, 1]
|| N || = 1
1 / || N || = 1
Normalized N = N
Have

これらの性質は、具体的に法線ベクトル及び1/||N||を計算する代わりに使用することが可能であり、他の計算を最適化することができる。 These properties can be used specifically instead of calculating the normal vector and 1 / || N ||, and other calculations can be optimized.

バンプマップ有り
図120に示されるように、バンプマップが存在する場合、Nは、X次元とY次元のバンプマップ値を比較することによって計算される。図120は、同じ行及び列における画素に関して画素P1に対するNの計算を示しているが、P1自体での値も含まれる。Nの計算は、スケール倍率(X及びYで同じ倍率)で乗算することにより、解像度に依存しないようにされる。このプロセスは、図121に示されるような入力及び出力(ZNは常に1である)を有するプロセスとして表現できる。
With bump map as shown in FIG. 120, if a bump map exists, N is calculated by comparing the X and Y dimensional bump map values. FIG. 120 shows the calculation of N for pixel P1 for pixels in the same row and column, but the value at P1 itself is also included. The calculation of N is made independent of resolution by multiplying by the scale factor (same factor for X and Y). This process can be expressed as a process with inputs and outputs (ZN is always 1) as shown in FIG.

は常に1である。X及びYは未だ正規化されていない(なぜならば、Z=1である)。Nの正規化は、N.Lが計算されるまで遅延されるので、1/||N||による乗算は、3回ではなく1回である。 Z N is always 1. X N and Y N are not yet normalized (since Z N = 1). The normalization of N. Because L is delayed until L is calculated, the multiplication by 1 / || N || is once, not three.

Nを計算する実際のプロセスは図122に示されている。 The actual process of calculating N is shown in FIG.

以下の定数がソフトウェアによってセットされる。 The following constants are set by the software:

Figure 0004309954
Lの計算
指向性光
光源が無限遠であるとき、光源は実効的な一定光ベクトルLを有する。Lは、
L=[X, Y, Z
||L||=1
1/||L||=1
のようにソフトウェアによって正規化され、計算される。
Figure 0004309954
When the L computationally directional light source is at infinity, the light source has an effective constant light vector L. L is
L = [X L, Y L , Z L]
|| L || = 1
1 / || L || = 1
Is normalized and calculated by the software.

これらの性質は、具体的にL及び1/||L||を計算する代わりに使用することが可能であり、他の計算を最適化することができる。このプロセスは図123に示されている。 These properties can be used specifically instead of calculating L and 1 / || L ||, and other calculations can be optimized. This process is illustrated in FIG.

オムニ光及びスポット光
光源が無限遠ではないとき、Lは現在点Pから光源PLまでのベクトルである。P=[X
, 0]であるため、Lは、
L=[X, Y, Z
=X−XPL
=Y−YPL
=−ZPL
によって与えられる。1/||L||を乗算することにより、X、Y、及びZの各々を正規化する。(後で正規化の際に使用される)1/||L||の計算は、
V=X +Y +Z
を計算し、次に、
V−1/2
を計算することによって実行される。
When the omni light and the spot light source are not at infinity, L is a vector from the current point P to the light source PL. P = [X P ,
Y P , 0], so that L is
L = [X L, Y L , Z L]
X L = X P -X PL
Y L = Y P −Y PL
Z L = −Z PL
Given by. Each of X L , Y L , and Z L is normalized by multiplying by 1 / || L ||. The calculation of 1 / || L || (used later for normalization) is
V = X L 2 + Y L 2 + Z L 2
And then
V- 1 / 2
It is executed by calculating

このケースでは、Lの計算は、図124に示されるような入力及び出力を有するプロセスとして表現可能である。 In this case, the calculation of L can be expressed as a process with inputs and outputs as shown in FIG.

及びYPは照度が計算されている画像の座標である、Zは常に0である。 X P and YP are the coordinates of image intensity is computed, Z P is always zero.

Lを計算する実際のプロセスは図125に示されている。 The actual process of calculating L is shown in FIG.

以下の定数がソフトウェアによってセットされる。 The following constants are set by the software:

Figure 0004309954
N.Lの計算
ベクトルNとベクトルLの内積の計算は、
+Y+Z
によって定義される。
Figure 0004309954
N. The calculation of the inner product of the calculation vector N of L and the vector L is
X N X L + Y N Y L + Z N Z L
Defined by

バンプマップ無し
バンプマップが無いとき、Nは一定[0,0,1]である。したがって、N.LはZに簡約化される。
When there is no bump map without bump map, N is constant [0, 0, 1]. Therefore, N.I. L is simplified into Z L.

バンプマップ有り
バンプマップが存在するとき、内積を直接計算する必要がある。正規化されたNコンポーネントを取り込むのではなく、正規化されていないNと正規化されたLの内積を得た後に正規化を行う。Lは、(一定であるとき)ソフトウェアによって正規化されるか、又はL計算プロセスによって正規化される。このプロセスは図126に示されている。
When there is a bump map with a bump map, the inner product must be calculated directly. Rather than fetching the normalized N component, normalization is performed after obtaining the inner product of the unnormalized N and the normalized L. L is normalized by software (when constant) or is normalized by the L calculation process. This process is illustrated in FIG.

Nは、1になるように定義されているので、入力として不要である。しかし、その代わりに、結果を正規化するために1/||N||が必要とされる。N.Lを計算する実際の一プロセスは、図127に示されている。 Since Z N is defined to be 1, it is not necessary as an input. Instead, however, 1 / || N || is required to normalize the result. N. One actual process for calculating L is shown in FIG.

R・Vの計算
R・Vは鏡面寄与度の計算への入力として必要である。V=[0,0,1]であるため、Zコンポーネントだけが必要である。したがって、R・Vは、
R・V=2ZN(N.L)−Z
に簡約化される。
R · V calculation R · V is required as an input to the specular contribution calculation. Since V = [0, 0, 1], only the Z component is required. Therefore, R · V is
R · V = 2Z N (N.L) −Z L
To be simplified.

加えて、非正規化Z=1であるため、正規化Z=1/||N||である。 In addition, since denormalized Z N = 1, normalized Z N = 1 / || N ||.

バンプマップ無し
最も簡単な実装は、Nが一定(即ち、バンプマップ無し)のときである。N及びVは定数であるため、N.L及びR・Vは、
V=[0, 0,
1]
N=[0, 0,
1]
L=[X, Y, Z
N.L=Z
R・V=2Z(N.L)−Z
=2Z−Z
=Z
として簡単化される。
The simplest implementation without a bump map is when N is constant (ie, no bump map). Since N and V are constants, N.V. L and R · V are
V = [0, 0,
1]
N = [0, 0,
1]
L = [X L, Y L , Z L]
N. L = Z L
R · V = 2Z N (N.L) −Z L
= 2Z L -Z L
= Z L
As simplified.

Lが一定(指向性光源)であるとき、正規化Zは、R・Vが要求されるときに、定数の形で与えることができる。Lが変化するとき(オムニ光及びスポット光のとき)、正規化Zはオンザフライ方式で計算しなければならない。それは、L計算プロセスの出力として獲得される。 When L is constant (directional light source), the normalized Z L can be given in the form of a constant when R · V is required. When L changes (for omni and spot lights), the normalized Z L must be calculated on-the-fly. It is obtained as the output of the L calculation process.

バンプマップ有り
Nが一定ではないとき、R・Vを計算するプロセスは、一般化された式、即ち、
R・V=2Z(N.L)−Z
を実施するだけである。入力及び出力は図128に示され、実際の実装は図129に示されている。
When N with bump map is not constant, the process of calculating R · V is a generalized equation:
R · V = 2Z N (N.L) −Z L
Just implement. Inputs and outputs are shown in FIG. 128 and the actual implementation is shown in FIG.

減衰定数の計算
指向性光
光源が無限遠であるとき、光の強度は画像一面で変化しない。したがって、減衰定数fattは1である。この定数は、無限遠光源の照明計算を最適化するために使用可能である。
Calculation of attenuation constant When the directional light source is at infinity, the light intensity does not change across the image. Therefore, the attenuation constant f att is 1. This constant can be used to optimize the illumination calculation of the infinity light source.

オムニ光及びスポット光
光源が無限遠ではないとき、光の強度は次式、
att=f+f/d+f/d
に従って変化する。
When the omni light and the spot light source are not at infinity, the light intensity is
f att = f 0 + f 1 / d + f 2 / d 2
Changes according to

係数f、f及びfを適切にセットすることにより、光強度を一定に、距離に関して線形に、或いは、距離の平方によって減衰させることができる。 By appropriately setting the coefficients f 0 , f 1 and f 2 , the light intensity can be attenuated constant, linearly with respect to distance, or by square of distance.

d=||L||であるため、fattの計算は、図130に示されるような入力及び出力を有するプロセスとして表現可能である。 Since d = || L ||, the calculation of f att can be expressed as a process having inputs and outputs as shown in FIG.

attを計算する実際のプロセスは図131に定義される。 The actual process of calculating f att is defined in FIG.

以下の定数がソフトウェアによってセットされる。 The following constants are set by the software:

Figure 0004309954
円錐及び半影ファクタの計算
指向性光及びオムニ光
これらの二つの光源は集光されないので、円錐又は半影を持たない。円錐−半影スケーリングファクタfcpは1である。この定数は、指向性光源及びオムニ光源の照明計算を最適化するために使用できる。
Figure 0004309954
Calculation of cone and penumbra factor Directional light and omni light These two light sources are not condensed and therefore do not have a cone or penumbra. The cone-penumbra scaling factor f cp is 1. This constant can be used to optimize illumination calculations for directional and omni sources.

スポット光
スポット光は特定の目標点(PT)に集光する。スポット光の強度は、像の特定の点が円錐内にあるか、半影にあるか、又は円錐/半影領域の外側にあるかによって変化する。
Spot light Spot light is focused on a specific target point (PT). The intensity of the spotlight varies depending on whether a particular point in the image is in the cone, penumbra or outside the cone / penumbra area.

図132を参照すると、半影一に対するfcpのグラフが示されている。円錐の内部470でfcpは1であり、半影の外部471でfcpは0である。円錐のエッジから半影の終わりまで、光強度は3次関数472に従って変化する。 Referring to FIG. 132, a graph of f cp for the penumbra is shown. At the inside 470 of the cone, f cp is 1, and at the outside 471 of the penumbra, f cp is 0. From the edge of the cone to the end of the penumbra, the light intensity varies according to a cubic function 472.

半影475及び円錐476の計算のための様々なベクトルが図133及び図134に示されている。 Various vectors for the calculation of penumbra 475 and cone 476 are shown in FIGS.

図134に示されているように1次元に関して像の表面を調べることにより、3個の角A、B及びCが定義される。Aは、目標点479と光源478と円錐の終端480の間の角度である。Cは、目標点479と光源478と半影の終端481の間の角度である。これらの両方は所与の光源に対して一定である。Bは、目標点479と光源478と計算対象一482の間の角度であり、像上で計算される点毎に変化する。 By examining the surface of the image in one dimension as shown in FIG. 134, three corners A, B and C are defined. A is the angle between target point 479, light source 478 and cone end 480. C is an angle between the target point 479, the light source 478, and the penumbra end 481. Both of these are constant for a given light source. B is an angle between the target point 479, the light source 478, and the calculation object 482, and changes for each point calculated on the image.

ここで、レンジAからCを0から1に正規化し、Bが、次式、
(B−A)/(C−A)
によってその角度レンジの間に収まる距離を見つける。
Here, ranges A to C are normalized from 0 to 1, and B is given by
(BA) / (CA)
Find the distance that fits between that angular range.

そのレンジは0から1のレンジに丸められ、この値は、fcpの3次近似のためのルックアップとして使用される。 The range is rounded to a range of 0 to 1, and this value is used as a lookup for a third order approximation of f cp .

したがって、fattの計算は、図135に示されるような入力及び出力を有するプロセスとして表現可能であり、fcpを計算する実際のプロセスは図136に示され、以下の定数がソフトウェアによってセットされる。 Thus, the calculation of f att can be expressed as a process with inputs and outputs as shown in FIG. 135, the actual process of calculating f cp is shown in FIG. 136, and the following constants are set by software: The

Figure 0004309954
以下のルックアップテーブルが使用される。
Figure 0004309954
The following lookup table is used.

Figure 0004309954
周辺光寄与の計算
像に当てられる光の数とは無関係に、周辺光寄与が各画素に対して1回ずつ実行され、バンプマップには依存しない。
Figure 0004309954
Regardless of the number of lights applied to the ambient light contribution calculation image, the ambient light contribution is performed once for each pixel and is independent of the bump map.

周辺光計算プロセスは図131に示されるような入力及び出力を備えたプロセスとして表現可能である。このプロセスを実装するためには、図138に示されるように入力画像からの各画素(O)を定数値(I)によって乗算することが必要であり、以下の定数がソフトウェアによってセットされる。 The ambient light calculation process can be expressed as a process having inputs and outputs as shown in FIG. To implement this process, it is necessary to multiply each pixel (O d ) from the input image by a constant value (I a k a ) as shown in FIG. Set.

Figure 0004309954
散光寄与の計算
表面に当てられた各光は拡散照明を生じる。拡散照明は、次式、
散光=k(N.L)
によって表される。2種類の実装形態を考えることができる。
Figure 0004309954
Each light applied to the diffuse contribution calculation surface produces diffuse illumination. Diffuse lighting is:
Diffuse = k d O d (N.L)
Represented by Two types of implementations can be considered.

実装例1−定数N及びL
N及びLの両方が定数であるとき(指向性光でバンプマップが無いとき)、
N.L=Z
である。したがって、
散光=k
である。
Implementation example 1-constants N and L
When both N and L are constants (when there is no bump map with directional light),
N. L = Z L
It is. Therefore,
Diffuse = k d O d Z L
It is.

だけが変数であるため、散光寄与を計算する実際のプロセスは図139に示されるようなものであり、以下の定数がソフトウェアによってセットされる。 Since only O d is a variable, the actual process of calculating the diffuse contribution is as shown in FIG. 139 and the following constants are set by the software.

Figure 0004309954
実装例2−非定数N及びL
N又はLの何れかが非定数であるとき(ビットマップ、又はオムニ光若しくはスポット光からの照明であるとき)、散光計算は、次式、
散光=k(N.L)
に従って直接実行される。
Figure 0004309954
Implementation Example 2-Non-constant N and L
When either N or L is non-constant (when it is a bitmap or illumination from omni or spot light), the diffuse calculation is:
Diffuse = k d O d (N.L)
Will be executed directly according to.

散光計算プロセスは図140に示されるような入力を備えたプロセスとして表現可能である。N.Lは、N.L計算プロセスを使用して計算するか、又は定数として与えられる。散光寄与を計算する実際のプロセスは図141に示されるようなプロセスであり、以下の定数がソフトウェアによってセットされる。 The diffuse calculation process can be expressed as a process with inputs as shown in FIG. N. L is N. Calculated using the L calculation process or given as a constant. The actual process of calculating the diffuse contribution is as shown in FIG. 141, and the following constants are set by software.

Figure 0004309954
鏡面寄与の計算
表面に当てられた各光は鏡面照明を生ずる。鏡面照明は、次式、
鏡面光= k(R・V)
によって表される。ここで、
=ksc+(1−ksc)I
である。
Figure 0004309954
Each light applied to the specular contribution calculation surface results in specular illumination. The specular lighting is:
Specular light = k s O s (R · V) n
Represented by here,
O s = k sc O d + (1-k sc) I p
It is.

鏡面光計算プロセスは二つの実装形態がある。 There are two implementations of the specular light calculation process.

実装例1−定数N及びL
第1の実装例は、N及びLの両方が定数であるとき(指向性光でバンプマップ無し)である。N、L及びVは一定であるので、N.L及びR・Vも一定である:
V=[0, 0,
1]
N=[0, 0,
1]
L=[X, Y, Z
N.L=Z
R・V=2Z(N.L)−Z
=2Z−Z
=Z
このようにして、鏡面光計算は、
鏡面光=k
=k (ksc+(1−ksc)I
=ksc +(1−ksc)I
として簡略化される。
Implementation example 1-constants N and L
The first mounting example is when both N and L are constants (directional light and no bump map). N, L and V are constant, so L and R · V are also constant:
V = [0, 0,
1]
N = [0, 0,
1]
L = [X L, Y L , Z L]
N. L = Z L
R · V = 2Z N (N.L) −Z L
= 2Z L -Z L
= Z L
In this way, the specular light calculation is
Specular light = k s O s Z L n
= K s Z L n (k sc O d + (1−k sc ) I p )
= K s k sc Z L n O d + (1−k sc ) I p k s Z L n
As simplified.

鏡面光計算ではOだけが変数であるため、鏡面光寄与の計算は、図142に示されるような入力及び出力を備えたプロセスとして表現可能であり、鏡面光寄与を計算する実際のプロセスは図143に示され、以下の定数がソフトウェアによってセットされる。 Since only O d is a variable in the specular light calculation, the calculation of the specular light contribution can be expressed as a process with inputs and outputs as shown in FIG. 142, and the actual process of calculating the specular light contribution is As shown in FIG. 143, the following constants are set by the software.

Figure 0004309954
実装例2−非定数N及びL
この実装例は、N又はLの何れかが一定ではないとき(ビットマップ、又はオムニ光若しくはスポット光からの照明であるとき)である。これは、R・Vを与える必要があることを意味し、R・Vを計算しなければならない。
Figure 0004309954
Implementation Example 2-Non-constant N and L
This implementation example is when either N or L is not constant (when it is a bitmap, or illumination from omni or spot light). This means that R · V needs to be given, and R · V n must be calculated.

鏡面光計算プロセスは、図144に示されるような入力及び出力を備えたプロセスとして表現可能である。図145は、鏡面光寄与を計算する実際のプロセスを表し、以下の定数がソフトウェアによってセットされる。 The specular light calculation process can be expressed as a process having inputs and outputs as shown in FIG. FIG. 145 represents the actual process of calculating the specular light contribution and the following constants are set by the software.

Figure 0004309954
以下のルックアップテーブルが使用される。
Figure 0004309954
The following lookup table is used.

Figure 0004309954
周辺光が唯一の照明であるとき
周辺光寄与が唯一の光源である場合、このプロセスは非常に簡単である。なぜならば、図146に示されているようなプロセス全体で周辺光を加える必要がないからである。像は、垂直方向に二つの区画に分割し、周辺光ロジックを複製することにより、半分の各々を同時に処理することが可能である(このようにして、全部で2個の乗算ALU及び4個の順次イタレータを使用する)。したがって、タイミングは、周辺光を適用する1画素当たり1/2サイクルである。
Figure 0004309954
This process is very simple if the ambient light contribution is the only light source when the ambient light is the only illumination. This is because it is not necessary to add ambient light throughout the process as shown in FIG. The image can be processed simultaneously in half by dividing the image vertically into two sections and replicating the ambient light logic (in this way a total of two multiplying ALUs and four Use sequential iterators). Therefore, the timing is ½ cycle per pixel to which ambient light is applied.

典型的な照明のケースは、一つ以上の光によって照らされるシーンである。これらのケースでは、周辺光計算は非常に手軽であるため、周辺光計算は各光源の処理と共に収容される。処理されるべき最初の光は、正確なI設定値を持つべきであり、後続の光は、Iの値を0にすべきである(多重の周辺光寄与を避けるため)。 A typical lighting case is a scene illuminated by one or more lights. In these cases, the ambient light calculation is so easy that the ambient light calculation is accommodated with each light source process. The first light to be processed should have a correct I a k a set value, the subsequent light, to avoid I a k value of a should be 0 (multiple ambient light contribution ).

周辺光が別個のパスとして(第1のパスではなく)処理されるならば、周辺光を現在の計算値に加えることが必要である(同じアドレスへの読み書きが必要である)。プロセスの概要は図147に示されている。 If the ambient light is processed as a separate path (rather than the first pass), it is necessary to add the ambient light to the current calculated value (reading and writing to the same address is required). An overview of the process is shown in FIG.

このプロセスは、3個の像イタレータと1個の乗算ALUを使用し、平均で1画素当たり1サイクルを要する。 This process uses 3 image iterators and 1 multiplication ALU, and on average takes 1 cycle per pixel.

無限光源
無限光源のケースでは、像全体で一定の光源強度が得られる。L及びfattの両方は定数である。
Infinite light source In the case of an infinite light source, a constant light source intensity is obtained for the entire image. Both L and f att are constants.

バンプマップ無し
バンプマップが無いとき、一定法線ベクトルN[0,0,1]が存在する。照明の複雑さは、N、L及びfattが一定であることによって著しく軽減される。バンプマップ無しの単一の指向性光を当てるプロセスは図147に示され、以下の定数がソフトウェアによってセットされる。
When there is no bump map without a bump map, there is a constant normal vector N [0, 0, 1]. Illumination complexity is significantly reduced by keeping N, L and f att constant. The process of shining a single directional light without a bump map is shown in FIG. 147 and the following constants are set by software.

Figure 0004309954
単一の無限光源の場合、図148に示されるような論理演算を実行することが求められ、ここで、KからKは以下の値をもつ定数である。
Figure 0004309954
In the case of a single infinite light source, it is required to perform a logical operation as shown in FIG. 148, where K 1 to K 4 are constants having the following values.

Figure 0004309954
このプロセスは、K、K及びKが定数であるため簡単化することができる。基本的に(乗算ALUのうちの3個を使用する)鏡面光寄与と散光寄与の計算が複雑であるため、周辺光計算を4番目の乗算ALUとして安全に加えることが可能である。処理される第1の無限光源は、真の周辺光パラメータIを備え、後続の全ての無限光は、Iに0をセットすることができる。周辺光計算は実質的に無くなる。
Figure 0004309954
This process can be simplified because K 2 , K 3 and K 4 are constants. Basically, the calculation of specular and diffuse light contributions (using three of the multiplication ALUs) is complex, so the ambient light calculation can be safely added as the fourth multiplication ALU. The first infinite light source to be processed comprises the true ambient light parameter I a k a and all subsequent infinite lights can set I a k a to zero. Ambient light calculations are virtually eliminated.

無限光源が照射される第1の光である場合、他の光源による既存の寄与度を取り込む必要はなく、その状況は図149に示され、定数は以下の値をとる。 In the case of the first light emitted from the infinite light source, it is not necessary to take in existing contributions from other light sources, the situation is shown in FIG. 149, and the constant takes the following values.

Figure 0004309954
無限光源が照射される第1の光ではない場合、先行して処理された光によって生成された既存の寄与度を取り込む必要があり(同じ定数が当てはまる)、状況は図148に示されている。
Figure 0004309954
If the infinite light source is not the first light to be illuminated, it is necessary to capture the existing contribution generated by the previously processed light (the same constant applies) and the situation is shown in FIG. .

第1のケースでは、2個の順次イタレータ490、491が必要であり、第2のケースでは、3個の順次イタレータ490、491、492が必要である(余分のイタレータは先行の光の寄与度を読み出すために必要である)。両方のケースで、バンプマップ無しの無限光源の適用は1画素当たり1サイクルを要し、オプションとして周辺光の適用が含まれる。 In the first case, two sequential iterators 490, 491 are necessary, and in the second case, three sequential iterators 490, 491, 492 are necessary (the extra iterator is the contribution of the preceding light). Is needed to read In both cases, the application of an infinite light source without a bump map requires one cycle per pixel and optionally includes the application of ambient light.

バンプマップ有り
バンプマップが存在するとき、法線ベクトルNは画素毎に計算することが必要であり、一定光源ベクトルLに適用される。1/||N||はR・Vを計算するために使用され、R・Vは鏡面光計算2プロセスへの入力として要求される。以下の定数がソフトウェアによってセットされる。
When there is a bump map with a bump map, the normal vector N needs to be calculated for each pixel and is applied to the constant light source vector L. 1 / || N || is used to calculate R · V, which is required as an input to the specular light calculation 2 process. The following constants are set by the software:

Figure 0004309954
バンプマップ順次読み出しイタレータ490は、バンプマップの現在ラインを読み出す役割を担う。現在ラインは、Xに関するスロープを決定するため入力として与えられる。バンプマップ順次読み出しイタレータ491、492は、現在ラインの上下のラインを読み出す役割を担う。それらはYに関するスロープを決定するため入力を提供する。
Figure 0004309954
The bump map sequential read iterator 490 plays a role of reading the current line of the bump map. The current line is given as input to determine the slope for X. The bump map sequential read iterators 491 and 492 serve to read lines above and below the current line. They provide an input to determine the slope for Y.

オムニ光
オムニ光源のケースでは、光ベクトルL及び減衰定数fattは像の中で画素毎に変化する。したがって、L及びfattの両方は画素毎に計算しなければならない。
In the case of an omni light omni light source, the light vector L and the attenuation constant f att vary from pixel to pixel in the image. Therefore, both L and f att must be calculated for each pixel.

バンプマップ無し
バンプマップが無いとき、一定法線ベクトルN[0,0,1]が存在する。Lは画素毎に計算しなければならないが、N.L及びR・Vの両方は、Zに簡単化される。バンプナップが無いとき、オムニ光の適用は図149に示されるように計算され、以下の定数がソフトウェアによってセットされる。
When there is no bump map without a bump map, there is a constant normal vector N [0, 0, 1]. L must be calculated for each pixel. Both L and R · V is simplified to Z L. When there is no bumpup, the application of omni light is calculated as shown in FIG. 149 and the following constants are set by the software.

Figure 0004309954
このアルゴリズムは、オプションとして、先行の光源からの寄与を取り込み、周辺光計算を含む。周辺光は1回だけ取り込めばよい。他の全ての光パスに対して、周辺光計算プロセスにおける適切な定数は0にセットされるべきである。
Figure 0004309954
This algorithm optionally incorporates contributions from previous light sources and includes ambient light calculations. Ambient light need only be captured once. For all other light paths, the appropriate constant in the ambient light calculation process should be set to zero.

図示されるようなアルゴリズムは全部で19回の乗算/累算を必要とする。ルックアップのために必要な時間は、Lの計算中の1サイクルと、鏡面光寄与計算中の4サイクルである。したがって、5サイクルの処理時間が実現可能な最良のものである。その関数のためにALUを最適にマイクロコード化できない場合には、必要な時間は6サイクルまで増加する。オムニ光を関連したビットマップの無い像へ適用するための速度は1画素当たり6サイクルである。 The algorithm as shown requires a total of 19 multiplications / accumulations. The time required for the lookup is one cycle during the calculation of L and four cycles during the specular light contribution calculation. Therefore, the processing time of 5 cycles is the best that can be realized. If the ALU cannot be optimally microcoded for that function, the required time increases to 6 cycles. The speed for applying omni light to an image without an associated bitmap is 6 cycles per pixel.

バンプマップ有り
オムニ光が関連したバンプマップを備えた像に照射されるとき、N、L、N.L及びR・Vの計算は全てが必要である。オムニ光を関連したバンプマップを備えた像に適用するプロセスは図150に示され、以下の定数がソフトウェアによってセットされる。
When omni light with bump map is illuminated onto an image with an associated bump map, N, L, N. All calculations of L and R · V are necessary. The process of applying omni light to an image with an associated bump map is shown in FIG. 150, with the following constants set by software.

Figure 0004309954
このアルゴリズムは、オプションとして、先行の光源からの寄与を取り込み、周辺光計算を含む。周辺光は1回だけ取り込むことが必要である。他の全ての光パスに対し、周辺光計算プロセス内の適切な定数は0にセットされるべきである。
Figure 0004309954
This algorithm optionally incorporates contributions from previous light sources and includes ambient light calculations. Ambient light needs to be captured only once. For all other light paths, the appropriate constant in the ambient light calculation process should be set to zero.

図示されるようなアルゴリズムは全部で32回の乗算/累算を必要とする。ルックアップのために要する時間は、LとNの両方の計算中に1サイクルずつと、鏡面光寄与計算のための4サイクルである。しかし、NとLのために必要なルックアップは同じである(したがって、2個のLUが3個のLUを実装する)。8サイクルの処理時間が適切である。その関数のためのALUを最適にマイクロコード化できない場合、必要な時間は9サイクルまで延長される。オムニ光を関連したビットマップ付きの像に適用する速度は1画素当たり9サイクルである。 An algorithm as shown requires a total of 32 multiplications / accumulations. The time required for the lookup is one cycle during both L and N calculations and four cycles for specular light contribution calculations. However, the lookups required for N and L are the same (thus two LUs implement three LUs). A processing time of 8 cycles is appropriate. If the ALU for the function cannot be optimally microcoded, the required time is extended to 9 cycles. The rate at which omni light is applied to the associated bitmapped image is 9 cycles per pixel.

スポット光
スポット光はオムニ光と類似しているが、減衰定数fattが、目標の周りに効率的に光を集める円錐/半影ファクタfcpによって変更されている点が相違する。
Spot light spot light is similar to omni light, except that the attenuation constant f att is modified by a cone / penumbra factor f cp that efficiently collects light around the target.

バンプマップ無し
バンプマップが無いとき、一定法線ベクトルN[0,0,1]が存在する。Lは画素毎に計算しなければならないが、N.L及びR・Vの両方は、Zに簡単化される。図151は、像へのスポット光の照射の説明図であり、以下の定数がソフトウェアによってセットされる。
When there is no bump map without a bump map, there is a constant normal vector N [0, 0, 1]. L must be calculated for each pixel. Both L and R · V is simplified to Z L. FIG. 151 is an explanatory diagram of spot light irradiation on an image, and the following constants are set by software.

Figure 0004309954
このアルゴリズムは、オプションとして、先行の光源からの寄与を取り込み、周辺光計算を含む。周辺光は1回だけ取り込めばよい。他の全ての光パスに対して、周辺光計算プロセスにおける適切な定数は0にセットされるべきである。
Figure 0004309954
This algorithm optionally incorporates contributions from previous light sources and includes ambient light calculations. Ambient light need only be captured once. For all other light paths, the appropriate constant in the ambient light calculation process should be set to zero.

図示されるようなアルゴリズムは全部で30回の乗算/累算を必要とする。ルックアップのために必要な時間は、Lの計算中の1サイクルと、鏡面光寄与計算中の4サイクルと、円錐/半影計算における2組の4サイクルルックアップである。 The algorithm as shown requires a total of 30 multiplications / accumulations. The time required for the lookup is one cycle during the calculation of L, four cycles during the specular light contribution calculation, and two sets of four cycle lookups in the cone / penumbra calculation.

バンプマップ有り
スポット光が関連したバンプマップを備えた像に照射されるとき、N、L、N.L及びR・Vの計算は全てが必要である。単一のスポット光を関連したバンプマップを備えた像に適用するプロセスは図152に示され、以下の定数がソフトウェアによってセットされる。
When spotlight with bump map is irradiated onto an image with an associated bump map, N, L, N. All calculations of L and R · V are necessary. The process of applying a single spot light to an image with an associated bump map is shown in FIG. 152, with the following constants set by software.

このアルゴリズムは、オプションとして、先行の光源からの寄与を取り込み、周辺光計算を含む。周辺光は1回だけ取り込むことが必要である。他の全ての光パスに対し、周辺光計算プロセス内の適切な定数は0にセットされるべきである。図示されるようなアルゴリズムは全部で41回の乗算/累算を必要とする。 This algorithm optionally incorporates contributions from previous light sources and includes ambient light calculations. Ambient light needs to be captured only once. For all other light paths, the appropriate constant in the ambient light calculation process should be set to zero. The algorithm as shown requires a total of 41 multiplications / accumulations.

プリントヘッド44
図153は、論理的に8セグメントにより構成され、各々がページの一部分に2層のシアン、マゼンタ、及びイエローを印刷する単一のプリントヘッドの論理的レイアウトの説明図である。
Print head 44
FIG. 153 is an explanatory diagram of the logical layout of a single printhead that is logically composed of 8 segments, each printing two layers of cyan, magenta, and yellow on a portion of the page.

印刷用セグメントのローディング
何かを印刷する前に、プリントヘッドの8セグメントの各々は、最終出力画像における以下の相対的な行に対応した6行のデータがロードされなければならない:
行0=ラインN、イエロー、偶数ドット0、2、4、6,8、...
行1=ラインN+8、イエロー、奇数ドット1、3、5、7、...
行2=ラインN+10、マゼンタ、偶数ドット0、2、4、6,8、...
行3=ラインN+18、マゼンタ、奇数ドット1、3、5、7、...
行4=ラインN+20、シアン、偶数ドット0、2、4、6,8、...
行5=ラインN+28、シアン、奇数ドット1、3、5、7、...
各セグメントは、ページの異なる部分にドットを印刷する。各セグメントは、1色の750ドット、即ち、ある行に375個の偶数ドットと、別の行に375個の奇数ドットを印刷する。8個のセグメントは、位置に対応したドットを含む。
Printing Segment Loading Before printing anything, each of the eight segments of the printhead must be loaded with six rows of data corresponding to the following relative rows in the final output image:
Row 0 = Line N, yellow, even dots 0, 2, 4, 6, 8,. . .
Row 1 = Line N + 8, yellow, odd dots 1, 3, 5, 7,. . .
Row 2 = Line N + 10, magenta, even dots 0, 2, 4, 6, 8,. . .
Line 3 = Line N + 18, magenta, odd dots 1, 3, 5, 7,. . .
Row 4 = Line N + 20, cyan, even dots 0, 2, 4, 6, 8,. . .
Line 5 = Line N + 28, cyan, odd dots 1, 3, 5, 7,. . .
Each segment prints a dot on a different part of the page. Each segment prints 750 dots of one color, that is, 375 even dots on one line and 375 odd dots on another line. The eight segments include dots corresponding to the positions.

Figure 0004309954
各ドットは、プリントヘッドセグメントに1ビットで表現される。データは、データをセグメントのBitValue(ビット値)ピンに置くことによって、同時に1ビットだけロードされ、BitClock(ビットクロック)に従ってそのセグメントのシフトレジスタへクロック供給されなければならない。データは単一のレジスタにロードされるので、ビットをローディングする順序は正しい筈である。データは10MHzの最大レートでプリントヘッドにクロック供給することができる。
Figure 0004309954
Each dot is represented by 1 bit in the printhead segment. Data must be loaded one bit at a time by placing the data on the segment's BitValue pin and clocked to the segment's shift register according to the BitClock. Since the data is loaded into a single register, the order of loading bits should be correct. Data can be clocked into the printhead at a maximum rate of 10 MHz.

全てのビットがロードされると、ビットはプリントヘッド出力バッファへ並列に転送され、印刷の準備が完了する。この転送はセグメントのParallelXferClockピン上の1個のパルスによって実行される。 When all bits are loaded, the bits are transferred in parallel to the printhead output buffer and ready for printing. This transfer is performed by one pulse on the segment's ParallelXferClock pin.

印刷制御
電力を節約するため、プリントヘッドの全てを必ずしも同時に印刷しなくてもよい。制御ラインの組は、特定のドットの印刷を可能にさせる。ACPのような外部コントローラは、速度及び/又は電力の必要条件に応じて、同時に印刷されるドット数、並びに、プリントパルスの間隔を変更することが可能である。
In order to save print control power, it is not necessary to print all of the print heads simultaneously. A set of control lines allows the printing of specific dots. An external controller such as ACP can change the number of dots printed at the same time, as well as the interval between print pulses, depending on speed and / or power requirements.

各セグメントは、5本のNozzelSelect(ノズル選択)ラインを含み、ノズル選択ラインは1行当たり32組のノズルを選択するため復号化される。各行には375個のノズルがあるので、各組には12個のノズルがある。更に、色の偶数行と奇数行に1本ずつの、2本のBankEnable(バンクイネーブル)ラインが設けられる。最後に、各セグメントは、Cカラー、Mカラー及びYカラーの各々に1本ずつの、3本のColorEnable(カラーイネーブル)ラインを含む。あるColorEnableライン上のパルスは、カラーの指定行の指定されたノズルに印刷を行わせる。パルスは、典型的に、2
sの間隔である。
Each segment includes five NozzleSelect (nozzle selection) lines, which are decoded to select 32 sets of nozzles per row. Since there are 375 nozzles in each row, there are 12 nozzles in each set. In addition, two Bank Enable (bank enable) lines are provided, one for each even and odd color row. Finally, each segment includes three Color Enable (color enable) lines, one for each of the C, M and Y colors. A pulse on a ColorEnable line causes a designated nozzle in a designated row of color to print. The pulse is typically 2
The interval of s.

全てのセグメントが、NozzelSelectラインと、BankEnableラインと、ColorEnableライン(プリントヘッドへ外部から配線されている)の同じ組によって制御される場合、以下の事項が成立する。 If all segments are controlled by the same set of NozzelSelect lines, BankEnable lines, and ColorEnable lines (wired externally to the printhead), the following holds:

奇数バンク及び偶数バンクの両方が同時に印刷をする場合(両方のBankEnableビットがセットされている場合)、1セグメント当たり24個のノズル、即ち、全部で192個のノズルが同時に発射し、5.7ワットを消費する。 If both odd and even banks print simultaneously (if both BankEnable bits are set), 24 nozzles per segment, ie a total of 192 nozzles fire simultaneously, 5.7 Consume watts.

奇数バンクと偶数バンクが独立に印刷をする場合、1セグメント当たり12個のノズルだけが、即ち、全部で96個が同時に発射し、2.85ワットを消費する。 If the odd and even banks print independently, only 12 nozzles per segment, ie a total of 96 fired simultaneously, consuming 2.85 watts.

印刷ヘッドインタフェース62
印刷ヘッドインタフェース62は、ACPをプリントヘッドに接続し、データと適切な信号の両方を外部プリントヘッドへ供給する。プリントヘッドインタフェース62は、VLIWプロセッサ74と、CPU上で実行されるソフトウェアアルゴリズムの両方と協働して動作し、約2秒のうちに写真を印刷する。
Print head interface 62
A printhead interface 62 connects the ACP to the printhead and provides both data and appropriate signals to the external printhead. The printhead interface 62 operates in conjunction with both the VLIW processor 74 and software algorithms running on the CPU to print a photo in about 2 seconds.

プリントヘッドインタフェースへの入出力の概要は図154に示されている。アドレス及びデータバスがCPUによって使用され、プリントヘッドインタフェースの種々のレジスタのアドレスを指定する。単一のBitClock出力ラインは、プリントヘッド上の8セグメントの全てに繋がる。8本のDataBits(データビット)ラインは、1本ずつが各セグメントに接続され、(BitClockパルスに基づいて)プリントヘッドの8セグメントへ同時にクロックインされる。例えば、同時に、ドット0はセグメント0へ転送され、ドット750はセグメント1へ転送され、ドット1500はセグメント2へ転送され、以下同様である。 An overview of input and output to the printhead interface is shown in FIG. An address and data bus is used by the CPU to specify the addresses of the various registers of the printhead interface. A single BitClock output line leads to all 8 segments on the printhead. Eight DataBits (data bit) lines are connected to each segment, one at a time, and clocked in simultaneously to the eight segments of the printhead (based on the BitClock pulse). For example, simultaneously, dot 0 is transferred to segment 0, dot 750 is transferred to segment 1, dot 1500 is transferred to segment 2, and so on.

VLIW出力FIFOは、ディザ処理された2レベルC、M及びYの6000×9000解像度印刷画像を、8本のDataBitsラインへ出力するために正しい順序で格納する。ParallelXferClockは、プリントヘッドの8セグメントの各々へ接続されるので、単一パルスによって、全てのセグメントがそれぞれのビットを同時に転送する。最後に、NozzleSelectライン、BankEnableライン及びColorEnableラインが8セグメントの各々へ接続され、プリントヘッドインタフェースは、C、M及びYドロップパルスの間隔、並びに、各パルスで印刷されるドロップの数を制御できるようになる。プリントヘッドインタフェースのレジスタは、0から6μsのパルス間隔、典型的に2μsの間隔を指定することができる。 The VLIW output FIFO stores dithered 2-level C, M, and Y 6000 × 9000 resolution print images in the correct order for output to 8 DataBits lines. Since the ParallelXferClock is connected to each of the eight segments of the printhead, a single pulse causes all segments to transfer their respective bits simultaneously. Finally, the NozzleSelect line, BankEnable line and ColorEnable line are connected to each of the 8 segments so that the printhead interface can control the spacing of the C, M and Y drop pulses and the number of drops printed with each pulse. become. The printhead interface registers can specify pulse intervals from 0 to 6 μs, typically 2 μs.

画像印刷
画像がArtcamのユーザの管理下に置かれる前に、以下の2フェーズ、即ち、
1.印刷されるべき画像の準備
2.準備された画像の印刷
を行うことが必要である。
Before an image print image is placed under the control of an Artcam user, the following two phases:
1. 1. Preparation of an image to be printed It is necessary to print the prepared image.

画像の準備は1回だけ実行すればよい。画像印刷は必要に応じて何回で実行できる。 The image preparation needs to be executed only once. Image printing can be performed as many times as necessary.

画像準備
印刷用の画像の準備には、
1.写真画像の印刷画像への変換
2.プリンタの向きの出力に揃えるために印刷画像(内部色空間)の回転
3.(必要に応じて)圧縮されたチャンネルのアップ補間
4.内部色空間から特定のプリンタ及びインクに適したCMY色空間への色変換が含まれる。
Image preparation To prepare an image for printing,
1. 1. Conversion of photographic image to printed image 2. Rotate printed image (internal color space) to align with printer orientation output 3. Up-interpolation of compressed channels (if necessary) It includes color conversion from the internal color space to a CMY color space suitable for specific printers and inks.

画像準備の最後に、4.5MBの正しく向きを決められた1000×1500CMY色空間画像の印刷準備が完了する。 At the end of the image preparation, preparation for printing a 4.5 MB correctly oriented 1000 × 1500 CMY color space image is completed.

写真画像の印刷画像への変換
写真画像を印刷画像へ変換するためには、画像処理を実行するためVarkスクリプトを実行することが必要である。このスクリプトは、デフォルト画像強調スクリプト、又は現在挿入中のArtcardから取り出されたVarkスクリプトである。Varkスクリプトは、CPUによって実行され、VLIWベクトルプロセッサによって実行される関数で加速される。
Conversion of a photographic image into a print image In order to convert a photographic image into a print image, it is necessary to execute a Vark script in order to execute image processing. This script is a default image enhancement script or a Vark script extracted from the currently inserted Artcard. The Vark script is executed by the CPU and accelerated with a function executed by the VLIW vector processor.

印刷画像の回転
メモリ内の画像は、最初、上端が上向きになるように方向を合わされる。これにより、Vark処理を簡単にすることができる。画像が印刷される前に、画像は、プリントロールの向きと揃えられなければならない。再アライメントは1回だけ実行すればよい。印刷画像の引き続くプリントは、予め適切に回転されているであろう。
The image in the print image rotation memory is initially oriented so that the top edge is upward. Thereby, the Vark process can be simplified. Before the image is printed, the image must be aligned with the orientation of the print roll. Realignment need only be performed once. Subsequent prints of the printed image will have been properly rotated beforehand.

適用されるべき変換は、ユーザがArtcamの「撮像」ボタンを押したときに、CCDからの捕捉中に適用された変換の単に逆変換である。元の回転が0であるならば、変換は不要である。元の回転が+90度であるならば、印刷前に−90度(270度と同じである)回転する必要がある。この回転を適用するために使用される方法は、Vark加速されたアフィン変換関数である。アフィン変換エンジンは、各カラーチャンネルを独立に回転させるため呼び出される。カラーチャンネルは元の位置で回転できないことに注意する必要がある。その代わりに、カラーチャンネルは、拡大された単一チャンネル(1.5MB)のために先に使用されたスペースを利用することが可能である。 The transformation to be applied is simply the inverse of the transformation applied during capture from the CCD when the user presses the “Camera” button on Artcam. If the original rotation is 0, no conversion is necessary. If the original rotation is +90 degrees, it must be rotated -90 degrees (same as 270 degrees) before printing. The method used to apply this rotation is the Vark accelerated affine transformation function. The affine transformation engine is called to rotate each color channel independently. Note that the color channel cannot be rotated in its original position. Instead, the color channel can utilize the space previously used for the enlarged single channel (1.5 MB).

図155は、Lab画像の回転の一例の説明図であり、aチャンネル及びbチャンネルは4:1に圧縮されている。Lチャンネルは、不要になったスペース(単一チャンネルエリア)へ回転させられ、次に、aチャンネルは、Lの後に残された空きスペースに回転させられ、最後に、bを回転させることができる。三つのチャンネルを回転するために要する総時間は0.09秒である。これは、最初の画像印刷の前に許容可能な時間の経過である。後続のプリントは、このオーバーヘッドを生じない。 FIG. 155 is an explanatory diagram of an example of rotation of the Lab image. The a channel and the b channel are compressed to 4: 1. The L channel is rotated to the space that is no longer needed (single channel area), then the a channel is rotated to the empty space left after L, and finally b can be rotated. . The total time required to rotate the three channels is 0.09 seconds. This is an acceptable time lapse before the first image print. Subsequent prints do not incur this overhead.

アップ補間及び色変換
Lab画像は、印刷前にCMYへ変換しなければならない。Lab画像のaチャンネル及びbチャンネルが圧縮されているかどうかに応じて、様々な処理が行われる。Lab画像が圧縮されているならば、aチャンネル及びbチャンネルは色変換が行われる前に伸長されなければならない。Lab画像が圧縮されていないならば、色変換は唯一の必要なステップである。Lab画像は、(aチャンネル及びbチャンネルが圧縮されているならば)アップ補間し、CMY画像へ変換される。スケール及び色変換を組み合わせた単一のVLIWプロセスを使用することができる。
Up-interpolation and color conversion Lab images must be converted to CMY before printing. Various processes are performed depending on whether the a channel and the b channel of the Lab image are compressed. If the Lab image is compressed, the a and b channels must be decompressed before color conversion is performed. If the Lab image is not compressed, color conversion is the only necessary step. The Lab image is up-interpolated (if the a and b channels are compressed) and converted to a CMY image. A single VLIW process combining scale and color conversion can be used.

色変換を実行するために使用される方法は、Vark加速型色変換関数である。アフィン変換エンジンは、各カラーチャンネルを独立に回転させるため呼び出し可能である。カラーチャンネルはそのままの位置で回転できない。その代わりに、カラーチャンネルは拡大された単一チャンネル(1.5MB)のために先に使用されたスペースを利用することが可能である。 The method used to perform the color conversion is a Vark accelerated color conversion function. The affine transformation engine can be called to rotate each color channel independently. The color channel cannot be rotated as it is. Instead, the color channel can take advantage of the space previously used for the enlarged single channel (1.5 MB).

画像印刷処理
画像印刷処理は、正しい向きに置かれた1000×1500CMY画像を取り込み、外部プリントヘッドへ送信されるべきデータ及び信号を生成することに関係する。このプロセスは、VLIWプロセス及びプリントヘッドインタフェースと協働するCPUを必要とする。
Image Printing Process The image printing process involves capturing a 1000 × 1500 CMY image that is placed in the correct orientation and generating data and signals to be transmitted to an external printhead. This process requires a CPU that cooperates with the VLIW process and the printhead interface.

Artcam内の画像の解像度は1000×1500である。印刷された画像は、6000×9000ドットの解像度があり、非常に簡単な関係:1画素=6×6=36ドットが得られる。図156に示されるように、各ドットは16.6μmであるため、6×6平方ドットは100平方μmである。各ドットは2レベルであるため、出力をディザ処理する必要がある。 The resolution of the image in Artcam is 1000 × 1500. The printed image has a resolution of 6000 × 9000 dots and a very simple relationship: 1 pixel = 6 × 6 = 36 dots is obtained. As shown in FIG. 156, since each dot is 16.6 μm, a 6 × 6 square dot is 100 square μm. Since each dot has two levels, it is necessary to dither the output.

画像は約2秒で印刷されるべきである。9000行のドットの場合、これは、各行を印刷する間の時間が222μsの時間であることを意味する。プリントヘッドインタフェースは、この時間内に6000ドットを生成しなければならず、平均して1ドット毎に37nsである。しかし、各ドットは3色により構成されるので、プリントヘッドインタフェースは、約12ns内に、即ち、ACPの1クロックサイクル(100MHzで10ns)のうちに各カラーコンポーネントを生成しなければならない。一つのVLIWプロセスは、印刷されるべき次の6000ドットのラインを計算する役割を担う。奇数と偶数のC、M及びYドットは、6種類の1000×1500画像ラインからの入力をディザ処理することによって生成される。第2のVLIWプロセスは、先に計算された6000ドットのラインを取り込み、1回の転送でプリントヘッドインタフェースからプリントヘッドへ転送されるべき8個のセグメントのための8ビットのデータを正確に生成する役割がある。 The image should be printed in about 2 seconds. In the case of 9000 rows of dots, this means that the time between printing each row is 222 μs. The printhead interface must generate 6000 dots within this time, averaging 37 ns per dot. However, since each dot is composed of three colors, the printhead interface must generate each color component within approximately 12 ns, ie within one ACP clock cycle (10 ns at 100 MHz). One VLIW process is responsible for calculating the next 6000 dot line to be printed. Odd and even C, M, and Y dots are generated by dithering input from six different 1000 × 1500 image lines. The second VLIW process takes the previously calculated 6000 dot line and accurately generates 8 bits of data for 8 segments to be transferred from the printhead interface to the printhead in one transfer. Have a role to play.

CPUプロセスは、プリントライン毎に3回ずつ(1カラーコンポーネント当たり1回ずつ=2秒間に27000回)第1のVLIWプロセス3内のレジスタを更新し、第2のVLIWプロセス内のレジスタをプリントライン毎に1回ずつ(2秒間に9000回)更新する。CPUは、これを行うために、VLIWプロセスよりも1ラインだけ先に進んでいる。 The CPU process updates the register in the first VLIW process 3 three times for each print line (one per color component = 27,000 times per second), and prints the register in the second VLIW process to the print line Update once every time (9000 times in 2 seconds). The CPU has advanced one line ahead of the VLIW process to do this.

最後に、プリントヘッドインタフェースは、VLIW出力FIFOから8ビットデータを取り込み、それをそのままプリントヘッドへ出力し、BitClock信号を適切に生成する。全てのデータの転送が終わった後、ParallelXferClock信号が次のプリントラインのデータをロードするため生成される。データのプリントヘッドへの転送と連動して、別個のタイマーが、プリントヘッドインタフェース内部レジスタによって指定されたNozzleSelectライン、ColorEnableライン及びBankEnableラインを使用して、プリントヘッドの異なるプリントサイクルのための信号を生成する。 Finally, the print head interface takes 8-bit data from the VLIW output FIFO, outputs it as it is to the print head, and appropriately generates a BitClock signal. After all the data has been transferred, a ParallelXferClock signal is generated to load the next print line data. In conjunction with the transfer of data to the printhead, separate timers use the NozzleSelect, ColorEnable, and BankEnable lines specified by the printhead interface internal registers to signal for different printhead print cycles. Generate.

更に、CPUは、印刷プロセス中にパラレルインタフェースを介して種々のモーター及び裁断機を制御する。 In addition, the CPU controls various motors and cutters via a parallel interface during the printing process.

C、M及びYドット生成
このプロセスへの入力は、印刷のため正しい向きに置かれた1000×1500CMY画像である。この画像は圧縮されていない。図157に示されるように、VLIWマイクロコードプログラムは、CMY画像を取り込み、プリントヘッドインタフェースによって要求された、ディザ処理されるC、M及びY画素を生成する。
C, M and Y dot generation The input to this process is a 1000x1500 CMY image that is oriented in the correct direction for printing. This image is not compressed. As shown in FIG. 157, the VLIW microcode program takes a CMY image and generates the dithered C, M and Y pixels required by the printhead interface.

このプロセスは、三つのカラーコンポーネントの各々に対して1回ずつの3回実行される。このプロセスは、並列に実行される二つのサブプロセスを含未、一方は奇数ドットを生成し、他方は偶数ドットを生成する。各サブプロセスは入力画像から1画素を取り込み、3個の出力ドットを生成する(なぜならば、1画素=6出力ドットであり、各サブプロセスは偶数ドットと奇数ドットの何れかに関連しているからである)。1個の出力ドットが1サイクル毎に生成されるが、入力画素は3サイクル毎に1回だけ読み出される。 This process is performed three times, once for each of the three color components. This process does not include two subprocesses running in parallel, one produces odd dots and the other produces even dots. Each subprocess takes one pixel from the input image and generates three output dots (because 1 pixel = 6 output dots, and each subprocess is associated with either even or odd dots. From). One output dot is generated every cycle, but the input pixel is read only once every three cycles.

元のディザセルは64×64形のセルであり、各エントリーは8ビットである。この元のセルは、奇数セルと偶数セルに分割されるので、各々は64の高さのままであるが、32エントリーの幅しかない。偶数ディザセルは、元のディザセル画素0、2、4等を格納し、一方、奇数ディザセルは、元のディザセル画素1、3、5等を格納する。ディザセルはラインを超えて繰り返されるので、2個のディザセルの各々の単一の32バイトラインは、ライン全体の間に必要であり、したがって、完全にキャッシュすることができる。単一のプロセスラインのうちの奇数ライン及び偶数ラインは、8ドットラインだけ離して交互にされるので、奇数ディザセルの8ライン毎に回転させることが好都合である。したがって、奇数ディザセルと偶数ディザセルの両方に同じオフセットを使用することが可能である。この結果として、偶数ディザセルのラインは元のディザセルのラインLの偶数エントリーに対応し、奇数ディザセルのラインは元のディザセルのラインL+8の奇数エントリーに対応する。 The original dither cell is a 64 × 64 type cell, and each entry is 8 bits. This original cell is divided into odd and even cells, so each remains 64 heights, but only 32 entries wide. Even dither cells store the original dither cell pixels 0, 2, 4, etc., while odd dither cells store the original dither cell pixels 1, 3, 5, etc. Since the dither cell is repeated across the line, a single 32-byte line for each of the two dither cells is required during the entire line and can therefore be fully cached. Since odd and even lines of a single process line are alternated by 8 dot lines, it is advantageous to rotate every 8 lines of odd dither cells. Thus, it is possible to use the same offset for both odd and even dither cells. As a result, the even dither cell line corresponds to the even entry of the original dither cell line L, and the odd dither cell line corresponds to the odd entry of the original dither cell line L + 8.

このプロセスは、カラーコンポーネントの各々に対して1回ずつの3回実行される。CPUソフトウェアルーチンは、奇数ライン及び偶数ライン用の順次読み出しイタレータがプリントヘッドに対応した正しい画像ラインを確実に指定しなければならない。例えば、1組の18000ドット(3組の6000ドット)を生成するため、
・イエロー偶数ドットライン=0、したがって、入力イエロー画像ライン=0/6=0
・イエロー奇数ドットライン=8、したがって、入力イエロー画像ライン=8/6=1
・マゼンタ偶数ドットライン=10、したがって、入力マゼンタ画像ライン=10/6=1
・マゼンタ奇数ドットライン=18、したがって、入力マゼンタ画像ライン=18/6=3
・シアン偶数ドットライン=20、したがって、入力シアン画像ライン=20/6=3
・シアン奇数ドットライン=28、したがって、入力シアン画像ライン=28/6=4
である。この後に続く入力画像ラインの組は、
・Y=[0,1], M=[1,3], C=[3,4]
・Y=[0,1], M=[1,3], C=[3,4]
・Y=[0,1], M=[2,3], C=[3,5]
・Y=[0,1], M=[2,3], C=[3,5]
・Y=[0,2], M=[2,3], C=[4,5]
である。
This process is performed three times, once for each of the color components. The CPU software routine must ensure that the sequential read iterator for odd and even lines specifies the correct image line corresponding to the printhead. For example, to generate a set of 18000 dots (3 sets of 6000 dots)
Yellow even dot line = 0, so input yellow image line = 0/6 = 0
Yellow odd dot line = 8, therefore, input yellow image line = 8/6 = 1
Magenta even dot line = 10, so input magenta image line = 10/6 = 1
Magenta odd dot line = 18, so input magenta image line = 18/6 = 3
Cyan even dot line = 20, so input cyan image line = 20/6 = 3
Cyan odd dot line = 28, so input cyan image line = 28/6 = 4
It is. The subsequent set of input image lines is
・ Y = [0,1], M = [1,3], C = [3,4]
・ Y = [0,1], M = [1,3], C = [3,4]
・ Y = [0,1], M = [2,3], C = [3,5]
・ Y = [0,1], M = [2,3], C = [3,5]
・ Y = [0,2], M = [2,3], C = [4,5]
It is.

しかし、ディザセルデータはカラーコンポーネント毎に更新しなくてもよい。3カラーのディザセルは同じになるが、コンポーネント毎に2ドットラインずつオフセットしている。 However, the dither cell data need not be updated for each color component. The three-color dither cells are the same, but are offset by two dot lines for each component.

ディザ処理された出力は順次書き込みイタレータに書き込まれ、奇数及び偶数のディザ処理されたドットは2個の別々の出力に書き込まれる。同じ2個の書き込みイタレータが3個の全てのカラーコンポーネントに対して使用されるので、それらは、奇数及び偶数ドットの分割の範囲内で連続的である。 The dithered output is written sequentially to the write iterator, and the odd and even dithered dots are written to two separate outputs. Since the same two write iterators are used for all three color components, they are continuous within the division of the odd and even dots.

1組のドットがプリントラインに対して生成される間に、先に生成されたドットの組が、次のセクションで説明されるような第2のVLIWプロセスによって併合される。 While a set of dots is generated for a print line, the previously generated set of dots is merged by a second VLIW process as described in the next section.

併合8ビットドット出力生成
このプロセスは、図158に示されるように、1ラインのディザ処理されたドットを取り込み、VLIW出力FIFOを介してプリントヘッドインタフェースへ出力するための8ビットのデータストリームを生成する。このプロセスは、ライン全体が準備されることを必要とする。なぜならば、このプロセスは、ディザ処理されたラインの殆どを同時に準ランダムアクセスする必要があるからである。以下の定数がソフトウェアによってセットされる。
Merge 8-bit dot output generation This process captures a line of dithered dots and generates an 8-bit data stream for output to the printhead interface via the VLIW output FIFO, as shown in FIG. To do. This process requires that the entire line be prepared. This is because this process requires quasi-random access to most of the dithered lines simultaneously. The following constants are set by the software:

Figure 0004309954
順次読み出しイタレータは、前に生成されたドットのラインを指定し、イタレータのレジスタは単一カラーコンポーネントへのアクセスを制限するためセットアップされている。後続の画素の間の距離は375であり、あるラインと次のラインとの間の距離は1バイトになるように与えられる。その結果として、8個のエントリーが「ライン」毎に読み出される。単一の「ライン」は、プリントヘッドへロードされる8ビットに対応する。画像の「ライン」総数は375にセットされる。少なくとも8個のキャッシュラインを順次読み出しイタレータに割り当てることにより、完全なキャッシュコヒーレンスが維持される。8ビットをカウントする代わりに、8個のマイクロコードステップが暗黙的にカウントを行う。
Figure 0004309954
Sequential readout iterators specify a previously generated line of dots, and the iterator registers are set up to limit access to a single color component. The distance between subsequent pixels is 375, and the distance between one line and the next is given to be 1 byte. As a result, 8 entries are read for each “line”. A single “line” corresponds to 8 bits loaded into the printhead. The total number of “lines” in the image is set to 375. Full cache coherence is maintained by assigning at least eight cache lines to sequential read iterators. Instead of counting 8 bits, 8 microcode steps implicitly count.

生成プロセスは、最初に、偶数ドットから全てのエントリーを読み出し、8個のエントリーを1バイトに合成し、その1バイトをVLIW出力FIFOへ出力する。3000個の全部の偶数ドットが読み出された後、3000個の奇数ドットが読み出され、処理される。ソフトウェアルーチンは、1カラーコンポーネント毎に1回ずつ、即ち、1ライン毎に3回ずつ奇数及び偶数の順次読み出しイタレータのドットのアドレスを更新しなければならない。二つのVLIWプロセスは、全部で8個のALUとVLIW出力FIFOを必要とする。CPUが上述のように二つのプロセスでレジスタを更新できる限り、VLIWプロセッサは、プリンタに追従するために十分な速さでディザ処理された画像ドットを生成し得る。 The generation process first reads all entries from the even dots, combines 8 entries into 1 byte, and outputs the 1 byte to the VLIW output FIFO. After all 3000 even dots have been read, 3000 odd dots are read and processed. The software routine must update the dot addresses of the odd and even sequential iterators once per color component, ie, three times per line. The two VLIW processes require a total of 8 ALUs and VLIW output FIFOs. As long as the CPU can update the register in two processes as described above, the VLIW processor can generate dithered image dots fast enough to follow the printer.

データカードリーダー
図159は、読み出すためArtcard9を挿入することができるカードリーダー500の一形態を示す図である。図158は図159のリーダーの分解斜視図である。カードリーダーはコンピュータシステムに相互連結され、CCD読み出し機構35を含む。カードリーダーは、挿入されたArtcard9を挟むピンチローラー506及び507を含む。一方のローラー、例えば、ローラー506は、二つのローラー506及び507の間のカード9を一様な速度で前進させるためのArtcardモーター37によって駆動される。Artcard9は、一連のLEDライト512の上を通過させられ、一連のLEDライトは、半円形の断面を有する透明なプラスチックモールド514内に収容される。この断面は、例えば、LED512からの光を、カード9がLED512の傍を通過するときに、カード9の表面に集める。その表面から、光は、約480dpiの解像度に構成された高解像度リニアCCD34へ反射される。Artcard9の表面は、約1600dpiのレベルまでエンコードされているので、リニアCCD34は、約3倍の乗数でArtcard表面をスーパーサンプルする。Artcard9は、リニアCCD34が1インチ当たり約4800回の読み出しのレートでArtcardの移動方向にスーパーサンプルできるような速度で更に駆動される。走査されたArtcardのCCDデータはArtcardリーダーからACP31へ送られ処理される。光センサにより構成できるセンサ49は、カード13の有無を検出するために機能する。
Data Card Reader FIG. 159 shows one form of card reader 500 into which Artcard 9 can be inserted for reading. FIG. 158 is an exploded perspective view of the reader of FIG. The card reader is interconnected to the computer system and includes a CCD readout mechanism 35. The card reader includes pinch rollers 506 and 507 that sandwich the inserted Artcard 9. One roller, for example roller 506, is driven by an Artcard motor 37 for advancing the card 9 between the two rollers 506 and 507 at a uniform speed. Artcard 9 is passed over a series of LED lights 512, which are housed in a transparent plastic mold 514 having a semi-circular cross section. This cross-section, for example, collects light from the LED 512 on the surface of the card 9 as the card 9 passes by the LED 512. From that surface, the light is reflected to a high resolution linear CCD 34 configured with a resolution of about 480 dpi. Since the surface of Artcard 9 is encoded to a level of about 1600 dpi, linear CCD 34 supersamples the Artcard surface with a multiplier of about three times. The Artcard 9 is further driven at such a speed that the linear CCD 34 can supersample in the direction of movement of the Artcard at a rate of about 4800 readings per inch. The scanned Artcard CCD data is sent from the Artcard reader to the ACP 31 for processing. A sensor 49 that can be configured by an optical sensor functions to detect the presence or absence of the card 13.

CCDリーダーは、下側基板516と、透明な成形されたプラスチックを含む上側基板514と、を有する。二つの基板の間に、半導体製造プロセスによって製作された薄く長いリニアCCDアレイを含むリニアCCDアレイ34が挿入される。 The CCD reader has a lower substrate 516 and an upper substrate 514 comprising a transparent molded plastic. A linear CCD array 34 including a thin and long linear CCD array manufactured by a semiconductor manufacturing process is inserted between the two substrates.

図160を参照すると、CCDリーダーユニットの一構成例の部分断面斜視側面図が示されている。一連のLED、例えば、LED512は、カード9がCCDリーダー34の表面を通過するときに発光するように動作する。放出された光は、上側基板523の一部分を透過する。この基板は、LED512から放出された光を、カード9上の表面上の点、例えば、点532に集めるように湾曲した周囲を有する部分、例えば、部分529を含む。焦点が合わされた光は、点532から、CCDアレイ34の方へ反射される。誇張されて示された一連のマイクロレンズ、例えば、マイクロレンズ534は、上側基板523の表面に形成される。マイクロレンズ523は、表面全体から受光した光を、CCDアレイ34の感光部に入射する光を検知するCCDリーダー34の表面上の点に対応した下の焦点536に集めるように作用する。 Referring to FIG. 160, a partial cross-sectional perspective side view of one configuration example of the CCD reader unit is shown. A series of LEDs, for example LED 512, operates to emit light when the card 9 passes the surface of the CCD reader 34. The emitted light is transmitted through a part of the upper substrate 523. The substrate includes a portion having a curved periphery, such as a portion 529, to collect light emitted from the LED 512 at a point on the surface of the card 9, such as the point 532. The focused light is reflected from the point 532 toward the CCD array 34. A series of microlenses shown exaggerated, for example, microlenses 534 are formed on the surface of the upper substrate 523. The microlens 523 acts to collect light received from the entire surface at a lower focal point 536 corresponding to a point on the surface of the CCD reader 34 that detects light incident on the photosensitive portion of the CCD array 34.

上記の装置には多数の改良が考えられる。例えば、リニアCCD34上の感知デバイスは千鳥状でもよい。対応したマイクロレンズ34は、千鳥状のCCDセンサに対応するように、光を千鳥状の一連のスポットへ集光させるために相応に形成することができる。 Numerous improvements are conceivable for the above apparatus. For example, the sensing device on the linear CCD 34 may be staggered. Corresponding microlenses 34 can be correspondingly formed to focus the light into a series of staggered spots, corresponding to a staggered CCD sensor.

読み出しを助けるため、Artcard9のデータ表面エリアは、図38を参照して既に説明したように、チェッカー盤のようなパターンで変調させてもよい。その他の形態の高周波変調も実現可能である。 To aid reading, the data surface area of Artcard 9 may be modulated with a checkerboard-like pattern, as already described with reference to FIG. Other forms of high frequency modulation are possible.

Artcardプリンタが記憶装置Artcard上のデータをプリントアウトするものとして提供できることは明らかである。したがって、Artcardシステムは、Artcam装置の外部に情報を配信する一般的な形態として利用することが可能である。Artcardプリンタは、Artcardを高品質印刷面にプリントアウトすることが可能であり、多数のArtcardを同じ用紙に印刷し、後で分離することができる。Artcard9の第2の面には、引き続く記憶のために、Artcard9に記憶されたファイル等に関する情報を印刷することができる。 It is clear that the Artcard printer can be provided as a printout of the data on the storage device Artcard. Therefore, the Artcard system can be used as a general form for distributing information to the outside of the Artcam device. Artcard printers can print out Artcards on a high quality print surface, and can print multiple Artcards on the same paper and later separate them. On the second side of Artcard 9, information relating to a file or the like stored in Artcard 9 can be printed for subsequent storage.

したがって、Artcardシステムは、CD−ROM、磁気ディスク等の他の形態の記憶装置の代わりに使用するために適した簡単化された形態の記憶装置を可能にさせる。Artcard9は、大量生産可能であり、そのため、再分配用に実質的に低価格の形態で生産できる。 Thus, the Artcard system allows for a simplified form of storage device suitable for use in place of other forms of storage devices such as CD-ROMs, magnetic disks and the like. Artcard 9 can be mass produced and can therefore be produced in a substantially low cost form for redistribution.

プリントロール
図162には、Artcamのプリントロール42及びプリントヘッド部が示されている。用紙/フィルム611は、連続した「ウェブのような」プロセスで、印刷機構15へ送られ、印刷機構15は、更なるピンチローラー616−619、及びプリントヘッド44を含む。
Print Roll FIG. 162 shows Artcam's print roll 42 and print head section. The paper / film 611 is fed to the printing mechanism 15 in a continuous “web-like” process, which includes additional pinch rollers 616-619 and a print head 44.

ピンチローラー613は、駆動機構(図示せず)に連結され、プリントローラー613の回転時に、フィルム611の形態の「用紙」は、印刷機構615の中へ通され、ピクチャー出力スロット6から出される。回転式裁断機構(図示せず)は、要求された写真サイズで用紙611のロールを切断するために利用される。 The pinch roller 613 is coupled to a drive mechanism (not shown), and when the print roller 613 rotates, “paper” in the form of film 611 is passed through the print mechanism 615 and out of the picture output slot 6. A rotary cutting mechanism (not shown) is used to cut the roll of paper 611 at the requested photo size.

したがって、プリンタロール42は、写真用にイメージ化されたピクチャーを印刷する印刷機構615に「用紙」611を供給する役割を果たすことが明白である。 Thus, it is clear that the printer roll 42 serves to supply “paper” 611 to a printing mechanism 615 that prints a picture imaged for photography.

図163には、プリントロール42の分解斜視図が示されている。プリントロール42は、ピンチローラー612、613の動作の下で出力される出力プリンタ用紙611を含む。 FIG. 163 shows an exploded perspective view of the print roll 42. The print roll 42 includes output printer paper 611 that is output under the operation of pinch rollers 612 and 613.

次に、図164には、「用紙」フィルムロールが除かれた図163のプリントロール42のより完全な分解斜視図が示されている。プリントロール42は、インク貯蔵セクション620、用紙ロールセクション622、623、及び外側ケーシングセクション626、627からなる三つの主要部品を含む。 Next, FIG. 164 shows a more complete exploded perspective view of the print roll 42 of FIG. 163 with the “paper” film roll removed. The print roll 42 includes three main parts, an ink storage section 620, a paper roll section 622, 623, and an outer casing section 626, 627.

最初にインク貯蔵セクション620を参照すると、インクリザーバ又はインク供給セクション633が設けられている。印刷用インクは、三つのブラダー型の容器630から632に収容される。プリンタロール42は、フルカラー出力インクを提供するものとする。したがって、第1のインクリザーバ又はブラダー容器630はシアン色インクを収容する。第2のリザーバ631はマゼンタ色インクを収容し、第3のリザーバ632はイエロー色インクを収容する。リザーバ630から632の各々は、容積寸法が異なっているかもしれないが、実質的に同じ容積サイズを有するように設計される。 Referring initially to the ink storage section 620, an ink reservoir or ink supply section 633 is provided. Printing ink is contained in three bladder-type containers 630 to 632. The printer roll 42 shall provide full color output ink. Accordingly, the first ink reservoir or bladder container 630 contains cyan ink. The second reservoir 631 contains magenta ink, and the third reservoir 632 contains yellow ink. Each of the reservoirs 630-632 is designed to have substantially the same volume size, although the volume dimensions may be different.

インク貯蔵セクション621、633は、カバー624と共に、プラスチックセクションから製作することが可能であり、ヒートシール、紫外線照射等を用いて一体的にできるように設計される。サイズが等しくされたインクリザーバ630から632の各々は、対応したインクチャンネル639から641に連結され、リザーバ630から632より対応したインク出力ポート635から637へのインクの流れを可能にさせる。インクリザーバ632はインクチャンネル641及び出力ポート637を具備し、インクリザーバ631はインクチャンネル640及び出力ポート636を具備し、インクリザーバ630はインクチャンネル639及び出力ポート7637を具備する。 The ink storage sections 621 and 633 can be manufactured from a plastic section together with the cover 624, and are designed to be integrated using heat sealing, ultraviolet irradiation, or the like. Each of the equal sized ink reservoirs 630 to 632 is coupled to a corresponding ink channel 639 to 641 to allow ink flow from the reservoir 630 to 632 to the corresponding ink output port 635 to 637. The ink reservoir 632 includes an ink channel 641 and an output port 637, the ink reservoir 631 includes an ink channel 640 and an output port 636, and the ink reservoir 630 includes an ink channel 639 and an output port 7637.

動作中に、インクリザーバ630から632は、対応したインクで充たされ、セクション633はセクション621に接合される。インク貯蔵セクション630から632は、折り畳み可能なブラダーでもよく、インクがインクチャンネル639−641を行き来できるようにさせ、インク出力ポート635から637と流体的に連通される。更に、必要に応じて、空気取り入れ口が設けられ、インクチャンネルリザーバ630から632に関連した圧力を要求通りに維持することができる。 During operation, ink reservoirs 630-632 are filled with corresponding ink and section 633 is joined to section 621. The ink storage sections 630 to 632 may be foldable bladders, allowing ink to traverse the ink channels 639-641 and in fluid communication with the ink output ports 635 to 637. Further, if desired, an air intake can be provided to maintain the pressure associated with the ink channel reservoirs 630-632 as required.

キャップ624は、空気圧取り入れ口からアクセス可能な加圧型キャビティを形成するため、インク貯蔵セクション620に接合することができる。 The cap 624 can be joined to the ink storage section 620 to form a pressurized cavity accessible from the pneumatic intake.

インク貯蔵セクション621、633及び624は、一体的なユニットとして一つに連結され、プリンタロールセクション622、623の内側へ挿入できるように設計される。プリンタロールセクション622、623は、対応したメス型部分(図示せず)と結合するオス型部分645から647を用いてスナップフィットによって一体的に結合されるように設計される。同様に、メス型部分654から656は、対応したオス型部分660から662と結合するように設計される。用紙ロールセクション622、623は、したがって、一体的にスナップで留められるように設計される。ロール内のフィルムの一端は、二つのセクション622、623が一つに接合されたとき、二つのセクション622、623の間で締め付けられる。プリントフィルムは、必要に応じて、プリントロールセクション622、625上で回転させることができる。 The ink storage sections 621, 633 and 624 are designed to be connected together as an integral unit and inserted into the printer roll sections 622, 623. The printer roll sections 622, 623 are designed to be joined together by snap fit using male sections 645-647 that couple with corresponding female sections (not shown). Similarly, female portions 654-656 are designed to mate with corresponding male portions 660-662. The paper roll sections 622, 623 are thus designed to be snapped together. One end of the film in the roll is clamped between the two sections 622, 623 when the two sections 622, 623 are joined together. The print film can be rotated on the print roll sections 622, 625 as required.

前述の通り、インク貯蔵セクション620、621、633、624は、用紙ロールセクション622、623の内側に挿入できるように設計される。プリンタロールセクション622、623は、オンデマンドでフィルムを与えるため、静止したインク貯蔵セクション621、633及び624の周りで回転することができる。 As described above, the ink storage sections 620, 621, 633, 624 are designed to be inserted inside the paper roll sections 622, 623. Printer roll sections 622, 623 can rotate around stationary ink storage sections 621, 633, and 624 to provide film on demand.

外側ケーシングセクション626及び627は、更に、プリントロールセクション622、623の周りで結合できるように設計される。更に、ピンチローラー、例えば、612、613のそれぞれの端は、カバー626、627内で対応したキャビティ、例えば、670に留められるように設計され、ローラー613は、プリントフィルムを供給し、プリントロールから排出するため外部(図示せず)から駆動される。 Outer casing sections 626 and 627 are further designed to be coupled around print roll sections 622, 623. In addition, each end of a pinch roller, e.g., 612, 613, is designed to be fastened to a corresponding cavity, e.g., 670, in the cover 626, 627, and the roller 613 feeds the print film from It is driven from the outside (not shown) for discharging.

最後に、キャビティ677は、プリントロール42に関連した情報を記憶するためのシリコンチップ集積回路型装置53を挿入し案内するため、インク貯蔵セクション620、621に設けることが可能である。 Finally, a cavity 677 can be provided in the ink storage section 620, 621 for inserting and guiding a silicon chip integrated circuit type device 53 for storing information related to the print roll 42.

図155及び図164に示されるように、プリントロール42は、Artcamカメラ装置に挿入され、カップリングユニット680と結合するように設計され、カップリングユニット680は、シリコンチップ53との配線を行うコネクタパッド681を含む。更に、コネクタ680は、インク供給ポート635から637との4個の接続用のエンドコネクタを含む。インク供給ポートは、次に、インク供給ライン、例えば、682へ接続され、インク供給ラインは、次に、プリントヘッド供給ポート、例えば、687へ相互連結され、必要に応じてインクをプリントヘッド44へ流す。 As shown in FIGS. 155 and 164, the print roll 42 is designed to be inserted into the Artcam camera device and coupled to the coupling unit 680, and the coupling unit 680 is a connector for wiring with the silicon chip 53. A pad 681 is included. Further, the connector 680 includes four end connectors for connection with the ink supply ports 635 to 637. The ink supply port is then connected to an ink supply line, eg, 682, which in turn is interconnected to a printhead supply port, eg, 687, to pass ink to the printhead 44 as needed. Shed.

ロールを形成するため利用される「メディア」611は、適当な画像を上に印刷するために設計された様々な材料により構成することが可能である。例えば、不透明な回転可能なプラスチック材料が利用され、透明なプラスチックシートを使用することにより透明性が使用され、メタリックシートフィルムの利用によってメタリック印刷が行われ得る。更に、プリンタロール42内に布を利用し、布に画像を印刷することも可能であるが、適当な剛性又は適当な裏当てを有する材料だけが利用できることに注意する必要がある。 The “media” 611 used to form the roll can be composed of a variety of materials designed to print an appropriate image on top. For example, an opaque, rotatable plastic material can be utilized, transparency can be used by using a transparent plastic sheet, and metallic printing can be performed by utilizing a metallic sheet film. In addition, it is possible to utilize a fabric in the printer roll 42 and print an image on the fabric, but it should be noted that only materials with suitable stiffness or suitable backing can be utilized.

印刷メディアがプラスチックであるとき、インクを定着させ、吸収する層でその印刷メディアを覆うことが可能である。更に、幾つかのタイプの印刷メディア、例えば、不透明白色マット、透明フィルム、艶消し透明フィルム、3次元立体印刷用のレンチキュラーアレイフィルム、金属化フィルム、格子又はホログラムのようなエンボス方式の光学的に可変のデバイス、裏面に予め印刷が施されたメディア、及び磁気記録層を含むメディア、を使用できる。金属泊を利用するとき、金属泊は、ポリマーベースをもつことが可能であり、薄い(数ミクロンの)アルミニウム又はその他の金属の蒸着層で覆われ、次に、インクプリンタ機構を介してインクを受容するように適合した透明な保護層で覆われる。 When the print media is plastic, it is possible to cover the print media with a layer that fixes and absorbs ink. In addition, some types of printing media such as opaque white mats, transparent films, matte transparent films, lenticular array films for three-dimensional solid printing, metallized films, gratings or holograms of embossing optically. Variable devices, media pre-printed on the back side, and media including a magnetic recording layer can be used. When utilizing metal stays, the metal stays can have a polymer base and are covered with a thin (a few microns) aluminum or other metal deposition layer, and then the ink is passed through an ink printer mechanism. Covered with a transparent protective layer adapted to accept.

使用されるプリントロール42は、カメラ装置の内部に挿入され、要求に応じて画像の印刷用のインク及び用紙を提供できるように設計される。インク出力ポート635から637は、カメラ装置内の対応したポートと適合する。ピンチローラー672、673は、カメラ装置の制御下で用紙をカメラ装置へ供給できるように作動される。 The print roll 42 used is inserted into the camera device and is designed to provide ink and paper for printing an image as required. Ink output ports 635 to 637 are compatible with corresponding ports in the camera device. The pinch rollers 672 and 673 are operated so that paper can be supplied to the camera device under the control of the camera device.

図164に示されるように、実装されたシリコンチップ53は、プリントロール42の一方の端に挿入される。図165では、認証チップ53がより詳細に示され、この認証チップ53は、チップ53からチップが挿入されている対応したカメラへ詳細を通信する4本の通信リード線680から683を含む。 As shown in FIG. 164, the mounted silicon chip 53 is inserted into one end of the print roll 42. In FIG. 165, the authentication chip 53 is shown in more detail, which includes four communication leads 680-683 that communicate details from the chip 53 to the corresponding camera in which the chip is inserted.

図165を参照すると、チップは、小型集積回路687をエポキシに入れ、ボンディングリード線、例えば、688を外部通信リード線680から683へ繋ぐことにより、単独で作成され得る。集積チップ687は、約400平方ミクロンであり、スクライブ境界は100ミクロンである。続いて、チップは、プリントロール42のキャビティの適切な表面に貼り付けられる。図165の装置の分解図である図166には、ボンディングパッド681、682に相互連結された集積回路67が示されている。 Referring to FIG. 165, a chip can be made alone by placing a miniature integrated circuit 687 in epoxy and bonding bonding leads, eg, 688, to external communication leads 680-683. The integrated chip 687 is about 400 square microns and the scribe boundary is 100 microns. Subsequently, the chip is applied to the appropriate surface of the cavity of the print roll 42. FIG. 166, which is an exploded view of the device of FIG. 165, shows an integrated circuit 67 interconnected to bonding pads 681,682.

図164Aから164Eにおいて、参照番号1100は、全体的にプリントカートリッジ1100を示す。プリントカートリッジ1100は、本発明によれば、インクカートリッジ1102を含む。 In FIGS. 164A through 164E, reference numeral 1100 generally indicates the print cartridge 1100. The print cartridge 1100 includes an ink cartridge 1102 according to the present invention.

プリントカートリッジ1100はハウジング1104を含む。図2により詳細に示されているように、ハウジング1104は、上側成形部品1106及び下側成形部品1108によって画成される。成形部品1106及び1108は、クリップ1110によって挟まれる。ハウジング1104はラベル1112によって被われ、ラベル1112はカートリッジ1100に魅力的な外観を与える。ラベル1112は、ユーザがカートリッジ1100を使えるようにするための情報を搭載する。 Print cartridge 1100 includes a housing 1104. As shown in more detail in FIG. 2, the housing 1104 is defined by an upper molded part 1106 and a lower molded part 1108. Molded parts 1106 and 1108 are sandwiched between clips 1110. The housing 1104 is covered by a label 1112 that gives the cartridge 1100 an attractive appearance. The label 1112 carries information for enabling the user to use the cartridge 1100.

ハウジング1104はチャンバー1114を画成し、チャンバー内にインクカートリッジ1102が収まる。インクカートリッジ1102は、ハウジング1104のチャンバー1114に固定して担持される。 The housing 1104 defines a chamber 1114 in which the ink cartridge 1102 is contained. The ink cartridge 1102 is fixedly supported on the chamber 1114 of the housing 1104.

フォーマーに巻き付けられたフィルム/メディア1118のロール1126を含むプリントメディア1116の補給品はハウジング1104のチャンバー1114に収容される。フォーマー1120は、インクカートリッジ1102に摺動自在に収容され、インクカートリッジに対して回転自在である。 A supply of print media 1116, including a roll 1126 of film / media 1118 wound around the former, is contained in a chamber 1114 of the housing 1104. The former 1120 is slidably accommodated in the ink cartridge 1102, and is rotatable with respect to the ink cartridge.

図164Bに示されるように、上側成形部品1106及び下側成形部品1108は一体としてクリップされ、出口スロット1122が画成され、用紙1118の舌状部は出口スロットを通して排出される。 As shown in FIG. 164B, the upper molded part 1106 and the lower molded part 1108 are clipped together, an exit slot 1122 is defined, and the tongue of the paper 1118 is ejected through the exit slot.

カートリッジ1100はローラー組立体1124を含み、ローラー組立体1124は、用紙1118がロール1126から供給されるときに用紙1118のカールを取り除くために役立ち、スロット1122を介して用紙1118を押し出すために役立つ。ローラー組立体1124は、駆動ローラー1128と、2個の従動ローラー1130と、を含む。従動ローラー1130は、リブ1132に回転自在に支持され、リブ1132は、ハウジング1104の下側成形部品1108のフロア1134から盛り上がっている。ローラー1130は、駆動ローラー1128と一体となって、用紙1118がハウジング1104から排出されるときに、用紙1118の速度及び位置を制御するため、用紙1118に正のトラクションを与える。ローラー1130は、ポリスチレンのような適当な合成プラスチック材料の射出成形部品である。この点に関して、上側成形部品1106及び下側成形部品1108は、同様に、ポリスチレンのような適当な合成プラスチック材料の射出成形部品である。 The cartridge 1100 includes a roller assembly 1124 that serves to decurl the paper 1118 as the paper 1118 is fed from the roll 1126 and to push the paper 1118 through the slot 1122. The roller assembly 1124 includes a driving roller 1128 and two driven rollers 1130. The driven roller 1130 is rotatably supported by the rib 1132, and the rib 1132 rises from the floor 1134 of the lower molded part 1108 of the housing 1104. Roller 1130 is integral with drive roller 1128 to provide positive traction to paper 1118 to control the speed and position of paper 1118 as paper 1118 is ejected from housing 1104. Roller 1130 is an injection molded part of a suitable synthetic plastic material such as polystyrene. In this regard, the upper molded part 1106 and the lower molded part 1108 are similarly injection molded parts of a suitable synthetic plastic material such as polystyrene.

駆動ローラー1128は、ハウジング1104の上側成形部品1106及び下側成形部品1108の各々の側壁に画成された合わせリセス1138及び1140の間に回転自在式に係留されている駆動シャフト1136を含む。駆動ローラー1128の反対側の端1142は、ハウジング1140の上側成形部品1106と下側成形部品1108に適当な構成(図示せず)で回転自在に保持されている。 The drive roller 1128 includes a drive shaft 1136 that is rotatably anchored between mating recesses 1138 and 1140 defined in the respective side walls of the upper molded part 1106 and the lower molded part 1108 of the housing 1104. The opposite end 1142 of the drive roller 1128 is rotatably held by the upper molding part 1106 and the lower molding part 1108 of the housing 1140 with an appropriate configuration (not shown).

駆動ローラー1128は、ツーショット射出成形部品であり、高衝撃ポリスチレン製のシャフト1136を含み、シャフト1136の上に、エラストマ又はゴムローラー部分1144の形をした軸受手段が成形されている。これらの部分1144は、用紙1118を確実に係止し、用紙1118がカートリッジ1100から供給されるときに、用紙1118の滑りを防止する。 The drive roller 1128 is a two-shot injection molded part that includes a high impact polystyrene shaft 1136 on which a bearing means in the form of an elastomer or rubber roller portion 1144 is molded. These portions 1144 securely lock the paper 1118 and prevent the paper 1118 from slipping when the paper 1118 is fed from the cartridge 1100.

ハウジング1104から突起するローラー1128の端は、十字形構造体1146(図164A)の形をした係合体を有し、この十字形構造体は、プリントカートリッジ1100が取り付けられるカメラのような装置のプリントヘッド組立体の歯車付き駆動インタフェース(図示せず)と結合する。この構造体は、用紙1118がプリントヘッドに供給される速度を、プリントヘッドによる印刷と確実に同期させるので、インクが用紙1118上で正確に位置合わせされることを保証する。 The end of the roller 1128 protruding from the housing 1104 has an engagement body in the shape of a cruciform structure 1146 (FIG. 164A), which is printed on a device such as a camera to which the print cartridge 1100 is mounted. Coupled with a geared drive interface (not shown) of the head assembly. This structure ensures that the ink is accurately aligned on the paper 1118 because it reliably synchronizes the speed at which the paper 1118 is fed to the printhead with printing by the printhead.

インクカートリッジ1102は、直円柱押出成形部品の形をした容器1148を含む。この容器1148は、ポリスチレンのような適当な合成プラスチック材料から押出成形される。 The ink cartridge 1102 includes a container 1148 that is in the form of a right cylindrical extruded part. The container 1148 is extruded from a suitable synthetic plastic material such as polystyrene.

本発明の好適な実施形態において、プリントカートリッジ1100が共に使用されるプリントヘッドは、多色プリントヘッドである。したがって、容器1148は、複数の、より詳細には、4個のコンパートメント、即ち、リザーバ1150に分割される。各リザーバ1150は、異なる色、又は異なるタイプのインクを収容する。一実施形態では、リザーバ1150に収容されるインクは、シアンインク、マゼンタインク、イエローインク、及びブラックインクである。本発明の他の実施形態では、3種類の有色インクであるシアンインク、マゼンタインク及びイエローインクがリザーバ1150のうちの3個に収容され、4番目のリザーバ1150は、赤外線スペクトルだけで可視化されるインクを収容する。 In a preferred embodiment of the present invention, the print head with which the print cartridge 1100 is used is a multicolor print head. Accordingly, the container 1148 is divided into a plurality, more specifically four compartments, or reservoirs 1150. Each reservoir 1150 contains a different color or type of ink. In one embodiment, the ink stored in the reservoir 1150 is cyan ink, magenta ink, yellow ink, and black ink. In another embodiment of the present invention, three types of colored inks, cyan ink, magenta ink, and yellow ink are contained in three of the reservoirs 1150, and the fourth reservoir 1150 is visualized only in the infrared spectrum. Contains ink.

図164C及び164Dに明瞭に示されているように、容器1148の一端は、エンドキャップ1152によって閉じられる。エンドキャップ1152は複数の開口1154が画成されている。開口1154は各リザーバ1150と関連付けられているので、エンドキャップ1152が設けられた容器1148の端でリザーバ1150内は大気圧で維持される。 As clearly shown in FIGS. 164C and 164D, one end of the container 1148 is closed by an end cap 1152. The end cap 1152 has a plurality of openings 1154 defined therein. Since the opening 1154 is associated with each reservoir 1150, the interior of the reservoir 1150 is maintained at atmospheric pressure at the end of the container 1148 provided with the end cap 1152.

シール構造体1156は、エンドキャップ1152が設けられている端側で容器1148に設けられる。シール構造体1156は、各リザーバ1150に摺動自在に受容されたゲル状材料からなる四分円形ペレット1158を含む。ペレット1158のゲル状材料は、熱硬化性ゴムと炭化水素からなる化合物である。炭化水素は白色鉱物油である。熱硬化性ゴムは、ペレット1158が通常の動作温度でその形状を維持し、同時に、ペレット1158がその関連したリザーバ1150内で摺動できるように、鉱物油に十分な剛性を与える共重合体である。適当な熱硬化性ゴムは、シェル石油会社によって「Karton」(登録商標)の名前で販売されている熱硬化性ゴムである。共重合体は、ゲルのような粘度を各ペレット1158に与えるために十分な量でその化合物内に存在する。典型的に、共重合体は、使用されるタイプに応じて、約3%から20%の重量パーセントの量で存在するであろう。 The seal structure 1156 is provided in the container 1148 on the end side where the end cap 1152 is provided. Seal structure 1156 includes a quadrant pellet 1158 made of a gel material slidably received in each reservoir 1150. The gel material of the pellet 1158 is a compound composed of a thermosetting rubber and a hydrocarbon. Hydrocarbons are white mineral oils. Thermoset rubber is a copolymer that gives the mineral oil sufficient rigidity so that the pellet 1158 maintains its shape at normal operating temperatures while at the same time the pellet 1158 can slide within its associated reservoir 1150. is there. A suitable thermosetting rubber is the thermosetting rubber sold under the name “Kalton” ® by the Shell Petroleum Company. The copolymer is present in the compound in an amount sufficient to give each pellet 1158 a gel-like viscosity. Typically, the copolymer will be present in an amount of about 3% to 20% weight percent, depending on the type used.

使用中に、この化合物は加熱され、その結果として流体になる。各リザーバ1150に特定のタイプのインクが詰められると、溶融状態の化合物は各リザーバ1150に注入され、化合物はペレット1158を形成するため固まる。ペレット1158の裏側の大気圧、即ち、エンドキャップ1152と向かい合うペレットの端における大気圧は、インクがリザーバ1150から引き出されるときに、自動注油式であるペレット1148が容器1148の反対側へ向かって滑ることを保証する。ペレット1158は、逆さにされた容器からインクが出て空になることを止め、リザーバ1150内のインクが汚れることを妨げ、リザーバ1150内のインクが乾燥することを妨げる。更に、ペレット1158は、リザーバ1150からのインクの漏れを防止するため疎水性である。 In use, the compound is heated, resulting in a fluid. As each reservoir 1150 is filled with a particular type of ink, the molten compound is injected into each reservoir 1150 and the compound sets to form pellets 1158. The atmospheric pressure at the back of the pellet 1158, ie, the atmospheric pressure at the end of the pellet facing the end cap 1152, causes the self-lubricated pellet 1148 to slide toward the opposite side of the container 1148 when the ink is withdrawn from the reservoir 1150. Guarantee that. The pellet 1158 stops the ink from emptying out of the inverted container, prevents the ink in the reservoir 1150 from becoming dirty, and prevents the ink in the reservoir 1150 from drying out. Furthermore, the pellet 1158 is hydrophobic to prevent ink leakage from the reservoir 1150.

容器1148の反対側の端は、インク鍔成形部品1160によって閉じられる。成形部品1160に支持されたバッフル1162は、エラストマーシール成形部品1164を受容する。疎水性であるエラストマーシール成形部品1164は、内部にシーリング幕1166が画成されている。各シーリング幕1166にはスリット1168が設けられているので、プリントヘッド組立体からの合わせピン(図示せず)は、スリット1168を通して挿入可能であり、容器1148のリザーバ1150と流体的に連通される。中空突起1170は、インク鍔成形部品1160の反対側から突起する。各突起1170は、関連したリザーバ1150とぴったり合うように成形され、インク鍔成形部品を容器1148の端に位置決めする。 The opposite end of the container 1148 is closed by an ink fountain molded part 1160. A baffle 1162 supported on the molded part 1160 receives an elastomer seal molded part 1164. A sealing curtain 1166 is defined in an elastomer seal molded part 1164 which is hydrophobic. Each sealing curtain 1166 is provided with a slit 1168 so that alignment pins (not shown) from the printhead assembly can be inserted through the slit 1168 and are in fluid communication with the reservoir 1150 of the container 1148. . The hollow protrusion 1170 protrudes from the opposite side of the ink fountain molded part 1160. Each protrusion 1170 is shaped to fit snugly with the associated reservoir 1150 to position the ink fountain molded part at the end of the container 1148.

図164Cを参照すると、インク鍔成形部品1160は、キャリア又は隠し板成形部品1172によって正しい位置に維持される。隠し板成形部品1172には、四つ葉のクローバー形状の窓1174が画成され、この窓1174を介して、エラストマーシール成形部品1164へアクセスすることができる。隠し板成形部品1172は、ハウジング1104の上側成形部品1106と下側成形部品1108との間に係留される。隠し板成形部品1174と、ハウジング1104の上側成形部品1106及び下側成形部品1108のそれぞれの内面から延びるウェブ1176及び1178は、コンパートメント1180を画成する。エアーフィルタ1182はコンパートメント1180に収容され、端部成形部品1174によって正しい位置に保たれる。エアーフィルタ1182はプリントヘッド組立体と協働する。エアーは、プリントヘッド組立体のノズルガードの至る所へ吹き付けられ、ノズルガードのクリーニングを行う。このエアーは、隠し板1172内の入口側開口1184に収容されたピン(図示せず)を用いてエアーフィルタ1182を通して引き出すことによって濾過される。 Referring to FIG. 164C, the ink fountain molded part 1160 is maintained in the correct position by the carrier or concealed board molded part 1172. The hidden plate molding part 1172 defines a four-leaf clover-shaped window 1174 through which the elastomer seal molding part 1164 can be accessed. The hidden plate molded part 1172 is anchored between the upper molded part 1106 and the lower molded part 1108 of the housing 1104. The hidden plate molded part 1174 and the webs 1176 and 1178 extending from the respective inner surfaces of the upper molded part 1106 and the lower molded part 1108 of the housing 1104 define a compartment 1180. The air filter 1182 is housed in the compartment 1180 and is held in place by the end molded part 1174. Air filter 1182 cooperates with the printhead assembly. Air is blown all over the nozzle guard of the print head assembly to clean the nozzle guard. This air is filtered by drawing it through the air filter 1182 using a pin (not shown) accommodated in the inlet side opening 1184 in the hidden plate 1172.

エアーフィルタ1182は、図164Eに更に詳細に示されている。エアーフィルタ1182はフィルタ媒体1192を含む。フィルタ媒体1192は、合成ファイバに基づくものであり、フィルタリング目的のため利用可能な表面積を増加させるため溝付きの形で配置される。紙ベースのフィルタ媒体1192の代わりに、他の繊維性芯材を使用してもよい。 Air filter 1182 is shown in more detail in FIG. 164E. The air filter 1182 includes a filter medium 1192. Filter media 1192 is based on synthetic fibers and is arranged in a fluted form to increase the available surface area for filtering purposes. Instead of the paper-based filter media 1192, other fibrous core materials may be used.

フィルタ媒体1192は密閉容器1194に収容される。密閉容器1194は、底成形部品1196及び蓋1198を含む。ハウジング1104のコンパートメント1180に収容するために、密閉容器1194は、部分的に環状、即ち、馬蹄形にされる。このようにして、密閉容器1194は、一対の対向端1200を有する。吸気開口1202が各端1200に画成される。 The filter medium 1192 is accommodated in the sealed container 1194. The sealed container 1194 includes a bottom molded part 1196 and a lid 1198. To accommodate the compartment 1180 of the housing 1104, the sealed container 1194 is partially annular, i.e., a horseshoe. In this way, the sealed container 1194 has a pair of opposed ends 1200. An intake opening 1202 is defined at each end 1200.

排気開口1204は蓋1198に画成される。排気開口1204は、最初、フィルム、又は膜1206によって閉鎖されている。フィルタ1182がコンパートメント1180の正しい位置に取り付けられたとき、排気開口1204は隠し板成形部品1172の開口1184と位置合わせされる。プリントヘッド組立体からのピンがフィルム1206を貫通し、エアーがノズルガードとプリントヘッド組立体のプリントヘッドに吹き付けられる前に、エアーフィルタ1182を介して雰囲気からエアーを引き込む。 An exhaust opening 1204 is defined in the lid 1198. The exhaust opening 1204 is initially closed by a film or membrane 1206. When the filter 1182 is installed in the correct position in the compartment 1180, the exhaust opening 1204 is aligned with the opening 1184 in the hidden plate molded part 1172. Pins from the print head assembly penetrate film 1206 and draw air from the atmosphere through air filter 1182 before air is blown onto the nozzle guard and print head assembly print head.

底成形部品1194は、密閉容器1194の正しい位置にフィルタ媒体1192を設置するための位置決め構造体1208及び1210を含む。位置決め構造体1208は複数のピンの形をなし、一方、位置決め構造体1210は、フィルタ媒体1192の端1214を係止するリブの形をしている。 The bottom molded part 1194 includes positioning structures 1208 and 1210 for placing the filter media 1192 in the correct location on the sealed container 1194. The positioning structure 1208 is in the form of a plurality of pins, while the positioning structure 1210 is in the form of a rib that locks the end 1214 of the filter media 1192.

フィルタ媒体1192が底成形部品1196の正しい位置に設置された後、蓋1198は、蓋1198で底成形部品1196を密閉するため超音波溶接、又は類似した方法によって、底成形部品1196に固定される。 After the filter media 1192 is placed in the correct position on the bottom molded part 1196, the lid 1198 is secured to the bottom molded part 1196 by ultrasonic welding or similar methods to seal the bottom molded part 1196 with the lid 1198. .

プリントカートリッジ1100が組み立てられたとき、膜又はフィルム1186は、窓1174を閉鎖するために隠れ板成形部品1172の外側端に被せられる。この膜又はフィルム1186は、使用するために、ピンによって孔を開けられ、又は破裂されられる。フィルム1186は、破片がインクリザーバ1150に侵入することを防止する。 When the print cartridge 1100 is assembled, the membrane or film 1186 is placed over the outer edge of the hidden plate molding part 1172 to close the window 1174. This membrane or film 1186 is pierced or ruptured by a pin for use. Film 1186 prevents debris from entering ink reservoir 1150.

認証チップ1188の形の認証手段は、隠れ板成形部品1172の開口1190に収容される。認証チップ1188は、プリントカートリッジ1100が装置のプリントヘッド組立体と互換性があり、準拠していることを保証するため、プリントヘッド組立体1188による問い合わせを受ける。 Authentication means in the form of an authentication chip 1188 is received in the opening 1190 of the hidden plate molded part 1172. The authentication chip 1188 is queried by the printhead assembly 1188 to ensure that the print cartridge 1100 is compatible and compliant with the printhead assembly of the device.

認証チップ
認証チップ53
好適な実施形態の認証チップ53は、正しく製造されたプリントロールだけがカメラシステムで利用されることを保証する責任がある。認証チップ53は、プリントロールシステムに限定されない任意の消耗品に関して利用されるときに一般的に有用である技術を利用する。消耗品を必要とする(トナーカートリッジを必要とするレーザープリンタのような)他のシステムの製造者は、消耗品を認証する問題で苦労し、成功のレベルは様々である。その殆どは、専用化されたパッケージングに頼っている。しかし、これは、家庭での詰め替え作業や複製品製造を抑えない。コピー作成を防止することは、不完全に製造された代用消耗品が基本システムを損傷することを防ぐために重要である。例えば、濾過が不十分なインクは、インクジェットプリンタのプリントノズルを詰まらせ、消費者はシステム製造者に責任を負わせ、許可されていない消耗品の使用を認めない。
Authentication chip authentication chip 53
The authentication chip 53 of the preferred embodiment is responsible for ensuring that only properly manufactured print rolls are utilized in the camera system. The authentication chip 53 utilizes techniques that are generally useful when used with any consumable that is not limited to a print roll system. Manufacturers of other systems that require consumables (such as laser printers that require toner cartridges) struggle with the problem of authenticating consumables, and the level of success varies. Most of them rely on specialized packaging. However, this does not limit the refilling work at home and the production of duplicates. Preventing copying is important to prevent incompletely manufactured substitute consumables from damaging the base system. For example, inadequately filtered ink can clog the print nozzles of an ink jet printer, making the consumer responsible for the system manufacturer and not allowing the use of unauthorized consumables.

認証の問題を解決するために、認証チップ53は、認証コードと、コピー防止のために特別に設計された回路と、を含む。このチップは、標準的なフラッシュメモリ製造プロセスを使用して製造され、インク及びトナーカートリッジのような消耗品に組み込むことができる程度に低価格である。一旦プログラミングされると、認証チップは、後述するように、NSA持ち出し(エクスポート)ガイドラインに準拠する。認証は、非常に大規模であり、且つ常に成長している分野である。以下の説明は、消耗品の認証だけに関連している。 In order to solve the authentication problem, the authentication chip 53 includes an authentication code and a circuit specially designed for copy protection. The chip is manufactured using standard flash memory manufacturing processes and is inexpensive enough to be incorporated into consumables such as ink and toner cartridges. Once programmed, the authentication chip complies with NSA export guidelines as described below. Certification is a very large and constantly growing field. The following description relates only to consumable authentication.

記号名
以下の記号名が本実施形態の説明を通じて使用される。
Symbol names The following symbol names are used throughout the description of this embodiment.

Figure 0004309954
基本用語
Mで示されたメッセージは平文である。Mを、Mの実体が隠された暗号文Cに変換するプロセスは、暗号化と呼ばれる。CをMへ逆変換するプロセスは、復号化と呼ばれる。暗号化関数をEで表し、復号化関数をDで表すことにより、以下の恒等式:
E[M]=C
D[C]=M
が得られる。したがって、以下の恒等式:
D[E[M]]=M
が成り立つ。
Figure 0004309954
The message indicated by the basic term M is plain text. The process of converting M to ciphertext C in which the entity of M is hidden is called encryption. The process of transforming C back to M is called decoding. By representing the encryption function as E and the decryption function as D, the following identity:
E [M] = C
D [C] = M
Is obtained. Thus, the following identity:
D [E [M]] = M
Holds.

対称暗号化方式
対称暗号化アルゴリズムとは:
暗号化関数Eが鍵Kに依存する;
復号化関数Dが鍵Kに依存する;
はKから導出可能である;
はKから導出可能である;
というアルゴリズムである。
Symmetric encryption method Symmetric encryption algorithm:
The encryption function E depends on the key K 1 ;
The decryption function D depends on the key K 2 ;
K 2 can be derived from K 1 ;
K 1 can be derived from K 2 ;
It is an algorithm.

殆どの対称アルゴリズムにおいて、Kは通常Kと等しい。しかし、KがKと等しくない場合であっても、一方の鍵がもう一方の鍵から導出可能であるならば、数学的な定義のためには単一の鍵があれば十分である。したがって、
[M]=C
[C]=M
と表せる。
In most symmetric algorithms, K 1 is usually equal to K 2 . However, even if K 1 is not equal to K 2 , a single key is sufficient for mathematical definition if one key can be derived from the other. . Therefore,
E K [M] = C
D K [C] = M
It can be expressed.

誰でも知っている教科書から洗練された現代のアルゴリズムまでの非常に多数の対称アルゴリズムが存在する。それらの殆どは、現在の暗号解読技術がKを導出し得る程度で攻撃に成功し得るという点において不確かである。特定の対称アルゴリズムの安全性は、通常、アルゴリズムの強度、及び鍵の長さからなる二つの事項の関数である。以下のアルゴリズムは、認証チップに利用するために適した特徴を含んでいる:
DES;
ブローフィッシュ(Blowfish);
RC5;
IDEA。
There are numerous symmetric algorithms, from textbooks that everyone knows to sophisticated modern algorithms. Most of them are uncertain in that the current cryptanalysis techniques can succeed in the attack to the extent that K can be derived. The security of a particular symmetric algorithm is usually a function of two things: the algorithm strength and the key length. The following algorithm includes features suitable for use with authentication chips:
DES;
Blowfish;
RC5;
IDEA.

DES
DES(データ暗号化規格)は米国及び国際規格であり、暗号化と復号化に同じ鍵が使用される。鍵の長さは56ビットである。これは、ハードウェアとソフトウェアで実装されるが、当初の設計はハードウェア専用であった。DESで使用される当初のアルゴリズムは、米国特許第3962539号に記載されている。トリプルDESの変形と称されるDESの変形はより安全性が高いが、3個の鍵:K、K及びKを必要とする。これらの鍵は、
K3[DK2[EK1[M]]]=C
K3[EK2[DK1[C]]]=M
という形で使用される。
DES
DES (Data Encryption Standard) is a US and international standard, and the same key is used for encryption and decryption. The key length is 56 bits. It is implemented in hardware and software, but the original design was hardware only. The original algorithm used in DES is described in US Pat. No. 3,962,539. The DES variant, called the triple DES variant, is more secure, but requires three keys: K 1 , K 2 and K 3 . These keys are
E K3 [D K2 [E K1 [M]]] = C
D K3 [E K2 [D K1 [C]]] = M
It is used in the form of

トリプルDESの主な利点は、既存のDESの実装を使用して単一鍵のDESよりも安全性を高くすることができる点である。特に、トリプルDESは、112ビットの鍵の長さと等価的な保護を与える。トリプルDESは、単純に期待されるような168ビット鍵(3×56)と等価的な保護を与えるものではない。トリプルDESの復号化及び/又は符号化を実行する機器は米国から持ち出すことができない。 The main advantage of triple DES is that it can be made more secure than single key DES using existing DES implementations. In particular, triple DES provides protection equivalent to a 112 bit key length. Triple DES does not provide protection equivalent to a 168-bit key (3 × 56) as simply expected. Devices that perform Triple DES decoding and / or encoding cannot be taken from the United States.

ブローフィッシュ(Blowfish)
Blowfishは、1994年にSchneierによって最初に提案された対称ブロック暗号方式である。これは、32ビットから448ビットまでの可変長鍵を使用する。更に、これはDESよりもかなり高速である。Blowfishアルゴリズムは、鍵拡張部と、データ暗号化部の二つの部分により構成される。鍵拡張は、最大で448ビットの鍵を、全部で4168バイトの複数のサブ鍵配列へ変換する。データ暗号化は、16ラウンドのFeistelネットワークによって行われる。全ての演算は、32ビット語上でのXORと加算であり、1ラウンド当たりに4回のインデックス配列ルックアップを含む。復号化は、サブ鍵が逆順に使用されることを除いて暗号化と同じである点に注意する必要がある。したがって、実装の複雑さは、このような対称性をもたない他のアルゴリズムよりも低減される。
Blowfish
Blowfish is a symmetric block cipher originally proposed by Schneier in 1994. This uses a variable length key from 32 bits to 448 bits. Furthermore, it is much faster than DES. The Blowfish algorithm is composed of two parts, a key expansion unit and a data encryption unit. In key expansion, a key having a maximum of 448 bits is converted into a plurality of subkey arrays having a total of 4168 bytes. Data encryption is performed by a 16-round Feistel network. All operations are XORs and additions over 32-bit words, including 4 index array lookups per round. It should be noted that decryption is the same as encryption except that the subkeys are used in reverse order. Thus, the implementation complexity is reduced over other algorithms that do not have such symmetry.

RC5
1995年にRon Rivestによって設計されたRC5は、ブロックサイズ、鍵のサイズ、及びラウンド回数が可変である。しかし、典型的に、RC5は、64ビットのブロックサイズと128ビットの鍵を使用する。RC5アルゴリズムは、鍵拡張部と、データ暗号化部の二つの部分により構成される。鍵拡張は、鍵を2r+2個のサブ鍵(ここで、r=ラウンド回数である。)に変換し、各サブ鍵はwビットである。64ビットのブロックサイズで、16回のラウンドの場合(w=32,r=16)、サブ鍵配列は全部で136バイトである。データ復号化は、モジュロー2の加算と、XORと、ビット回転と、を使用する。
RC5
RC5 designed by Ron Rivest in 1995 has variable block size, key size, and rounds. However, typically RC5 uses a 64-bit block size and a 128-bit key. The RC5 algorithm is composed of two parts, a key extension part and a data encryption part. Key expansion converts the key into 2r + 2 subkeys (where r = number of rounds), where each subkey is w bits. In the case of a 64-bit block size and 16 rounds (w = 32, r = 16), the subkey arrangement is a total of 136 bytes. Data decoding is used with addition of modulo 2 w, and XOR, a bit rotation, the.

IDEA
1990年にLai及びMasseyによって開発されたIDEA暗号方式の最初の具体化された形はPESと呼ばれる。1991年にBiham及びShamirによって差分解読法が発見された後、このアルゴリズムは強化され、その結果は1992年にIDEAとして発表された。IDEAは、64ビットの平文ブロックを操作するために128ビット鍵を使用する。暗号化と復号化のために同じアルゴリズムが使用される。このアルゴリズムは、一般的に、現在利用可能な最も安全なブロックアルゴリズムであると考えられている。これは、1993年に発行された米国特許第5214703号に記載されている。
IDEA
The first embodiment of the IDEA cryptosystem developed by Lai and Massey in 1990 is called PES. After the differential cryptanalysis was discovered by Biham and Shamir in 1991, the algorithm was enhanced and the results were published as IDEA in 1992. IDEA uses a 128-bit key to manipulate 64-bit plaintext blocks. The same algorithm is used for encryption and decryption. This algorithm is generally considered to be the safest block algorithm currently available. This is described in US Pat. No. 5,214,703, issued in 1993.

非対称暗号化方式
他に使用できるアルゴリズムは非対称アルゴリズムである。非対称暗号化アルゴリズムとは:
暗号化関数Eが鍵Kに依存する;
復号化関数Dが鍵Kに依存する;
は合理的な時間内にKから導出不能である;
は合理的な時間内にKから導出不能である;
というアルゴリズムである。
An algorithm that can be used for the asymmetric encryption method is an asymmetric algorithm. What is an asymmetric encryption algorithm:
The encryption function E depends on the key K 1 ;
The decryption function D depends on the key K 2 ;
K 2 cannot be derived from K 1 within a reasonable time;
K 1 cannot be derived from K 2 within a reasonable time;
It is an algorithm.

したがって、
K1[M]=C
K2[C]=M
である。
Therefore,
E K1 [M] = C
D K2 [C] = M
It is.

これらのアルゴリズムは、一方の鍵Kが公開されるので、公開鍵とも称される。したがって、誰でも(Kを使用して)メッセージを暗号化し得るが、対応した復号鍵(K)を持っている人だけがそのメッセージを復号化して読むことができる。殆どの場合に、以下の恒等式:
K2[M]=C
K1[C]=M
が成立する。
These algorithms are also referred to as public keys because one key K1 is made public. Thus, anyone can encrypt a message (using K 1 ), but only those who have the corresponding decryption key (K 2 ) can decrypt and read the message. In most cases, the following identity:
E K2 [M] = C
D K1 [C] = M
Is established.

この恒等式は非常に重要である。なぜならば、公開鍵Kを所持する人は誰でもMを見ることができ、そのMはKの所有者からのものであることが分かるからである。他の人はCを生成することができない。なぜならば、Cを生成し得ることは、Kを知っていることを意味するからである。合理的な時間内にKからKを導出できないこと、並びに、その逆にKからKを導出できないことは、当然、合理的な時間という概念によって曖昧になる。再々実証されているように、長時間を要することが予想される計算は、より高速化されたコンピュータ、新しいアルゴリズム等の導入によって実現可能になる。非対称アルゴリズムの安全性は、大きい数(より具体的には、二つの大きい素数の積である大きい数)を素因数分解すること、及び有限において離散対数関数を計算することの困難さの二つの問題のうちの一方の困難さに基づいている。大きい数の素因数分解は、現代の数学の理解においては難問であることが推測される。しかし、素因数分解は予測されるよりも速く容易になっているということが問題である。Ron
Rivestは、1977年に、125桁の素因数分解には40000兆年かかると言っていた。1994年に129桁の素因数分解が行われた。Schneierによれば、1980年代における512ビットの数から得られた安全性のレベルを現在得るためには、1024ビットの数が必要であるとされている。その鍵が数年続くとすると、1024ビットでも十分ではない。Rivestは1990年に鍵の長さの評価を改め、2005年まで高い安全性を維持するためには1628ビットを提唱し、2015年まで持ちこたえる高い安全性のためには1884ビットを提唱している。一方、Schneierは、2015年まで企業及び政府からの保護を得るためには2048ビットが必要であることを示唆している。
This identity is very important. This is because anyone who has the public key K 1 can see M, and know that M is from the owner of K 2 . Others cannot generate C. This is because it may generate C is because it means that knows K 2. Inability derive K 1 from K 2 within a reasonable time, as well, can not derive the K 2 from K 1 to the contrary, of course, become obscured by the concept of a reasonable time. As has been proved again, calculations that are expected to take a long time can be realized by introducing faster computers, new algorithms, and the like. The safety of asymmetric algorithms has two problems: factoring large numbers (more specifically, large numbers that are the product of two large prime numbers) and the difficulty of computing discrete logarithmic functions in finite numbers. Based on the difficulty of one of them. It is speculated that large number factoring is a difficult problem in understanding modern mathematics. However, the problem is that prime factorization is faster and easier than expected. Ron
Rivest said in 1977 that a 125-digit prime factorization would take 40,000 trillion years. In 1994, 129-digit prime factorization was performed. According to Schneier, a 1024-bit number is required to currently obtain a level of security derived from a 512-bit number in the 1980s. If the key lasts for several years, 1024 bits is not enough. Rivest revised the key length assessment in 1990 and proposed 1628 bits to maintain high security until 2005, and 1884 bits for high security that could last until 2015. Yes. Schneier, on the other hand, suggests that 2048 bits are needed to get protection from businesses and governments until 2015.

多数の公開鍵暗号化アルゴリズムが存在する。その殆どは実際には実装不可能であり、その多くは、所与のMに対して非常に大きいCを生成するか、又は巨大な鍵を必要とする。更に、その他のものは、たとえ安全であるとしても、非常に低速であるため数年の間には実施できない。このため、多数の公開鍵システムは、ハイブリッド方式であり、公開鍵の仕組みは対称セッション鍵を送信するために使用され、セッション鍵が実際のメッセージのために使用される。全てのアルゴリズムは、鍵選択の点で問題がある。乱数はどうしても安全性が不十分である。大きい素数p及びqは慎重に選ぶことが必要であり、ある種の組み合わせは簡単に素因数分解できるという弱点がある(一部の弱い鍵は検査することができる)。しかし、それにもかかわらず、鍵選択は、例えば、単に、1024ビットをランダムに選択するというような単純なことではない。その結果として、鍵選択プロセスも安全でなければならない。 There are a number of public key encryption algorithms. Most of them are practically unimplementable, many of which generate very large C for a given M or require huge keys. In addition, others, even if safe, are so slow that they cannot be implemented in a few years. For this reason, many public key systems are hybrid and the public key mechanism is used to send a symmetric session key, and the session key is used for the actual message. All algorithms are problematic in terms of key selection. Random numbers are inadequately secure. Large prime numbers p and q need to be carefully selected, and certain combinations have the disadvantage that they can be easily factored (some weak keys can be examined). But nevertheless, key selection is not as simple as simply selecting 1024 bits randomly. As a result, the key selection process must also be secure.

公開の精査の下で使用中の実際的なアルゴリズムの中で、以下のアルゴリズム:
RSA;
DSA;
EIGamal;
は利用するために適している。
Among the practical algorithms in use under public scrutiny, the following algorithms:
RSA;
DSA;
EIGamal;
Is suitable for use.

RSA
Rivest、Shamir及びAdlemanの名前にちなんで命名されたRSA暗号システムは、最も広く使用されている公開鍵暗合システムであり、世界中の多くで事実上の標準である。RSAの安全性は、2個の素数(p及びq)の積である大きい数の素因数分解の困難さに依存していると考えられる。p及びqの生成には多数の制約がある。それらは、両方共に大きいことが必要であり、ビット数が同じであり、しかも、互いに近似していてはならない(そうでなければ、pqは√pqと近似する)。その上、多くの場合に、p及びqは強い素数でなければならないことが指摘されている。RSAアルゴリズムの特許は1983年に発行された(米国特許第4405829号)。
RSA
The RSA cryptosystem, named after Rivest, Shamir, and Adleman, is the most widely used public key cryptosystem and is the de facto standard in many parts of the world. The security of RSA is thought to depend on the difficulty of a large number of prime factors, which is the product of two prime numbers (p and q). There are a number of constraints on the generation of p and q. They both need to be large, have the same number of bits, and must not be close to each other (otherwise pq approximates √pq). Moreover, it is pointed out that in many cases p and q must be strong prime numbers. The RSA algorithm patent was issued in 1983 (US Pat. No. 4,405,829).

DSA
DSA(デジタル署名規格)は、デジタル署名標準(DSS)の一部として設計されたアルゴリズムである。規定されているとおり、このアルゴリズムは一般的な暗号化には使用できない。その上、RSAに対して、DSAは署名検証の際に10から40倍速度が遅い。DSAは、SHA−1ハッシュアルゴリズム(以下の一方向関数の定義を参照せよ。)を明示的に使用する。DSA鍵生成は、qがp−1を割り切るような2個の素数p及びqの検出に依拠している。Schneierによれば、1024ビットのp値が長期間のDSA安全性のために必要である。しかし、DSA標準は、pの値が1024ビットよりも大きくなることを認めていない(pは、更に、64ビットの倍数でなければならない)。米国政府はDSAアルゴリズムを所有し、少なくとも一つの関連特許(1993年に発行された米国特許第5231688号)を保持する。
DSA
DSA (Digital Signature Standard) is an algorithm designed as part of the Digital Signature Standard (DSS). As specified, this algorithm cannot be used for general encryption. In addition, DSA is 10 to 40 times slower for signature verification than RSA. DSA explicitly uses the SHA-1 hash algorithm (see the definition of the one-way function below). DSA key generation relies on the detection of two prime numbers p and q such that q divides p-1. According to Schneier, a p-value of 1024 bits is required for long-term DSA security. However, the DSA standard does not allow the value of p to be greater than 1024 bits (p must also be a multiple of 64 bits). The US government owns the DSA algorithm and holds at least one related patent (US Pat. No. 5,231,688 issued in 1993).

EIGamal
EIGamal方式は、暗号化とデジタル署名の両方に使用される。その安全性は有界で離散対数関数を計算することの困難さに依拠している。鍵選択には、g及びxがpよりも小さくなるような、素数pと2個の乱数g及びxの選択が必要である。次に、y=gx
mod pを計算する。公開鍵は、y、g及びpである。秘密鍵はxである。
EIGal
The EIGal method is used for both encryption and digital signatures. Its safety relies on the difficulty of computing discrete logarithmic functions with bounds. Key selection requires selection of a prime number p and two random numbers g and x such that g and x are smaller than p. Next, y = gx
Calculate mod p. Public keys are y, g, and p. The secret key is x.

暗号によるチャレンジ−レスポンスプロトコル及びゼロ知識証明
チャレンジ−レスポンスプロトコルの一般的な原理は、カメラシステムに適したアイデンティティ認証を提供することである。チャレンジ−レスポンスの最も簡単な形態は秘密パスワードの形態をとる。AはBに秘密パスワードを尋ね、Bが正しいパスワードで応答したとき、AはBが真正であることを表明する。この種の簡単なプロトコルには三つの主要な問題点がある。第一に、一旦Bがパスワードを公表すると、任意のオブサーバCはパスワードが何であるかを知る。第二に、Aはパスワードを検証するためにパスワードを知ることが必要である。第三に、CがAになりすました場合、Bは(CがAであると思い)Cにパスワードを与え、これにより、Bを危険にさらす。著作権のあるテキスト(例えば、俳句)を使用することは、弱い代用である。なぜならば、(例えば、知的所有権が遵守されない国では)誰でもパスワードをコピーすることができると考えられるからである。暗号によるチャレンジ−レスポンスプロトコルの考え方は、唯一のエンティティ(要求者)が、そのエンティティに関して知られている秘密情報の知識を実証することによって、プロトコル中に秘密情報自体を検証者に明かすことなく、自分のアイデンティティを他者(検証者)へ渡すことである。暗号によるチャレンジ−レスポンスプロトコルの一般化されたケースでは、ある種の方式により検証者はその秘密情報を知り、それ以外の場合には、その秘密情報は検証者にさえ知られていない。この実施形態の説明は、特に認証に関係しているので、認証の試し要される実際の暗号によるチャレンジ−レスポンスプロトコルは、適当なセクションで詳述される。しかし、ゼロ知識証明の概念はここで説明する。最初に、Feige、Fiat及びShamirによって明らかにされたゼロ知識証明プロトコルは、認証目的用のスマートカードで広く使用されている。このプロトコルの有効性は、未知の素因数分解による大きい合成整数の平方根モジュローの計算がコンピュータの能力で実施不可能である、という仮定に基づいている。これは、おそらく、大きい整数の素因数分解が困難であるという仮定と等価であろう。尚、要求者は著しい計算パワーをもっていなくてもよいことに注意する必要がある。スマートカードは、数回のモジュロー乗算だけを使用してこの種の認証を実現する。ゼロ知識証明プロトコルは米国特許第4747668号に記載されている。
The general principle of cryptographic challenge-response and zero knowledge proof challenge-response protocols is to provide identity authentication suitable for camera systems. The simplest form of challenge-response takes the form of a secret password. A asks B for a secret password, and when B responds with the correct password, A asserts that B is authentic. There are three major problems with this type of simple protocol. First, once B announces the password, any observer C knows what the password is. Second, A needs to know the password to verify the password. Third, if C impersonates A, B (assuming C is A) gives C a password, thereby putting B at risk. Using copyrighted text (eg haiku) is a weak substitute. This is because anyone can copy the password (eg, in countries where intellectual property rights are not respected). The idea of a cryptographic challenge-response protocol is that a single entity (requester) does not reveal the secret information itself to the verifier during the protocol by demonstrating knowledge of the secret information known about the entity, Passing your identity to others (verifiers). In the generalized case of cryptographic challenge-response protocols, the verifier knows the secret information in some way, otherwise the secret information is not even known to the verifier. Since the description of this embodiment is particularly concerned with authentication, the actual cryptographic challenge-response protocol that is tried for authentication is detailed in the appropriate section. However, the concept of zero knowledge proof is explained here. First, the zero-knowledge proof protocol revealed by Feige, Fiat, and Shamir is widely used in smart cards for authentication purposes. The effectiveness of this protocol is based on the assumption that computing the square root modulo of large composite integers with unknown prime factorization is not feasible with computer capability. This is probably equivalent to the assumption that large integer prime factorization is difficult. It should be noted that the requester need not have significant computational power. Smart cards achieve this type of authentication using only a few modulo multiplications. A zero knowledge proof protocol is described in US Pat. No. 4,747,668.

一方向関数
一方向関数Fは、入力Xに作用し、XがF[X]から判定できないようなF[X]を返す。Xのフォーマットに制限が無く、F[X]がXよりも少ないビットを格納する場合、衝突が存在する筈である。衝突は、同じF[X]値を生ずる2個の異なるX値、即ち、X≠Xであり、しかも、F[X]=F[X]となるようなX及びXとして定義される。XがF[X]よりも多数のビットを格納する場合、入力は、出力を生成するために何らかの方法で圧縮されなければならない。殆どの場合に、Xは、特定のサイズのブロックに分割され、多数のラウンドに亘って圧縮され、あるラウンドの出力が次のラウンドへの入力である。このハッシュ関数の出力は、Xが使い尽くされた後の最後の出力である。圧縮関数CFの疑似衝突は、2個の異なる初期値V及びVとして定義され、2個の入力X及びX(同一であるかもしれない)は、CF(V,X)=
CF(V,X)となるように与えられる。疑似衝突が存在しても、所与のXに対するXの計算が簡単になるわけではないことに注意する必要がある。
The one-way function F acts on the input X and returns F [X] such that X cannot be determined from F [X]. If there is no restriction on the format of X and F [X] stores fewer bits than X, there should be a collision. Collision, the same F [X] value two different X values produce, i.e., X 1 is ≠ X 2, moreover, F [X 1] = F [X 2] become such X 1 and X 2 Is defined as If X stores more bits than F [X], the input must be compressed in some way to produce an output. In most cases, X is divided into blocks of a specific size and compressed over a number of rounds, with the output of one round being the input to the next round. The output of this hash function is the last output after X is exhausted. The pseudo-collision of the compression function CF is defined as two different initial values V 1 and V 2 , and the two inputs X 1 and X 2 (which may be identical) are CF (V 1 , X 1 ). =
It is given to be CF (V 2 , X 2 ). Note that the presence of pseudo-collisions does not simplify the calculation of X 2 for a given X 1 .

高速に計算できる一方向関数だけに関心がある。更に、様々な実装において再現可能である決定論的な一方向関数だけに関心がある。一例として、F[X]がFの呼び出しの間の時間であるFを考える。所与のF[X]に対して、Xは決定可能である。なぜならば、XはFによって均等に使用されないからである。しかし、Fからの出力は様々な実装において異なる。したがって、この種のFに興味はない。 I am only interested in one-way functions that can be computed at high speed. Furthermore, we are only interested in deterministic one-way functions that are reproducible in various implementations. As an example, consider F where F [X] is the time between calls to F. For a given F [X], X can be determined. This is because X is not evenly used by F. However, the output from F is different in various implementations. Therefore, I am not interested in this kind of F.

本実施形態の認証チップの実装の説明の範囲では、以下の形式の一方向関数:
未知鍵を使用する暗号化;
乱数シーケンス;
ハッシュ関数;
メッセージ認証コード;
だけに関心がある。
Within the scope of the description of the implementation of the authentication chip of this embodiment, a one-way function of the following form:
Encryption using an unknown key;
Random number sequence;
Hash function;
Message authentication code;
Only interested in.

未知鍵を使用する暗号化
メッセージが未知鍵Kを使用して暗号化されたとき、暗号化関数Eは事実上一方向性である。この鍵が無い場合、E[M]からMをK無しに獲得することはコンピュータ能力的に実施不能である。暗号化関数は、鍵が隠されている限り一方向性である。暗号化アルゴリズムは衝突を生成しない。なぜならば、Eは、関数Dを使用してMを再構築できないようなE[M]を生成するからである。この結果として、F[X]は、一方向関数FがEであるならば、少なくともXと同数のビットを格納する(情報は失われない)。(上記の)対称暗号化アルゴリズムは、暗号化に基づく一方向関数を生成する非対称アルゴリズムよりも有利である。その理由は、
所定の強さの暗号化アルゴリズム用の鍵は、非対称アルゴリズムよりも対称アルゴリズムの方が短くなり、
対称アルゴリズムの方が高速に計算でき、必要なソフトウェア/シリコンが少ない、からである。
When an encrypted message using an unknown key is encrypted using an unknown key K, the encryption function E is effectively unidirectional. In the absence of this key, obtaining M without K from E K [M] is not feasible in terms of computer capability. The encryption function is unidirectional as long as the key is hidden. The encryption algorithm does not generate collisions. This is because E generates E K [M] such that M cannot be reconstructed using function D. As a result, F [X] stores at least as many bits as X if the one-way function F is E (no information is lost). Symmetric encryption algorithms (above) are advantageous over asymmetric algorithms that generate one-way functions based on encryption. The reason is,
The key for a given encryption algorithm is shorter for a symmetric algorithm than for an asymmetric algorithm,
This is because the symmetric algorithm can calculate faster and requires less software / silicon.

優れた鍵の選択は選択された暗号化アルゴリズムに依存する。ある種の鍵は特定の暗号化アルゴリズムの場合に強くないので、全ての鍵の強さをテストすることが必要である。鍵選択のために実行されるべきテストの回数が増えるほど、その鍵が隠された状態を保つ可能性が低くなる。 The selection of a good key depends on the chosen encryption algorithm. Certain keys are not strong for a particular encryption algorithm, so it is necessary to test the strength of all keys. The more tests that have to be performed for key selection, the less likely that the key will remain hidden.

乱数シーケンス
乱数シーケンスR,R,...,R,Ri+1を考える。F[X]が乱数シーケンス内のX番目の乱数を返すような一方向関数を定義する。しかし、F[X]は様々な実装において所定のXに関して再現可能であることを保証しなければならない。したがって、乱数シーケンスは、本当の意味でランダムではない。その代わりに、乱数シーケンスは疑似乱数であり、生成器は特殊なシードを利用する。
Random number sequence Random number sequence R 0 , R 1 ,. . . , R i , R i + 1 . Define a one-way function such that F [X] returns the Xth random number in the random number sequence. However, it must be ensured that F [X] is reproducible for a given X in various implementations. Thus, the random number sequence is not truly random. Instead, the random number sequence is a pseudo-random number and the generator uses a special seed.

優れた乱数生成器の定義に関して多数の問題がある。Knuthは、生成器を「良くする」要因(統計的テストを含む)、生成器の構築に関する一般的な問題を説明している。大半の乱数生成器は、i−1番目の状態からi番目の乱数を生成し、i番目の数を決定するための唯一の方法は、0番目の数からi番目の数までを繰り返すことである。iが大きい場合、i回の繰り返しを待つことは実際的ではない。しかし、あるタイプの乱数生成器はランダムアクセスを許可しない。Blum、Blum及びShubは、理想的な生成器に関して、「短いシードから、校正なコインの連続的な反転によって完全に発生させられたように見える長い(ビットの)シーケンスを素早く生成するためには疑似ランダムシーケンス生成器が好ましい」のように定義している。彼らは、X
mod n型の生成器、一般的には、BBS生成器と呼ばれる生成器を定義した。現在の暗号化方式が依拠しているある種の仮定を前提とした場合、BBS生成器は非常に厳しい統計的テストに合格することを示した。
There are a number of problems with defining a good random number generator. Knuth explains the factors that "make" a generator (including statistical tests), and general issues related to generator construction. Most random number generators generate the i th random number from the (i−1) th state, and the only way to determine the i th number is to iterate from the 0 th number to the i th number. is there. If i is large, it is not practical to wait for i iterations. However, certain types of random number generators do not allow random access. Blum, Blum and Shub, for an ideal generator, “To quickly generate a long (bit) sequence from a short seed that appears to have been completely generated by successive inversions of calibrated coins. Pseudorandom sequence generator is preferred ". They are X 2
A mod n type generator, generally called a BBS generator, has been defined. Given the certain assumptions on which current encryption schemes rely, the BBS generator has shown to pass very strict statistical tests.

BBS生成器は、Blum整数であるnの選択に依拠している(n=pqであり、p及びqは大きい素数であり、p≠qであり、p
mod 4=3であり、q
mod 4=3である)。生成器の初期状態は、xによって与えられ、ここで、x=x
mod nであり、xは、nよりも相対的に優良なランダム整数である。i番目の疑似ランダムビットは、xの最下位ビットであり、x=xi−1
mod nである。付加的な性質として、p及びqの知識は、x=x
mod n、但し、y=2
mod ((p−1)(q−1))によって、シーケンス内のi番目の数の直接的な計算を可能にさせる。
The BBS generator relies on the choice of n being a Blum integer (n = pq, p and q are large prime numbers, p ≠ q, p
mod 4 = 3 and q
mod 4 = 3). The initial state of the generator is given by x 0 , where x 0 = x 2
mod n, where x is a random integer that is relatively better than n. i th pseudorandom bit is the least significant bit of x i, x i = x i -1 2
mod n. As an additional property, the knowledge of p and q is x i = x 0 y
mod n, where y = 2 i
mod ((p−1) (q−1)) allows the direct calculation of the i th number in the sequence.

p及びqの知識がない場合、生成器は、繰り返しを実行しなければならない(計算の安全性は大きい数の素因数分解の困難さに依存する)。当初定義されたとき、BBS生成器に関する主要な問題は、単一の出力ビットのために必要な作業量であった。このアルゴリズムは、殆どのアプリケーションに対して遅すぎると考えられていた。しかし、モンゴメリ型リダクション演算の出現によって、より実際的な実装形態が生じた。その上、Vazirani及びVaziraniは、nのサイズに依存して、生成器の安全性を譲歩することなく、より多数のビットをxから安全に取り出せることを示した。x毎に1ビットだけが必要であるとするならば、Nビット(したがって、ビット生成器関数のN回の反復)がNビット乱数を発生させるために必要である。外部オブザーバーにとって、特定のビットの組が与えられた場合に、半々の確率以外で次のビットを決定する方法は無い。x、p及びqが秘密にされている場合、それらは鍵として作用し、出力ビットストリームを取り出し、x、p及びqを計算することはコンピュータ能力的に実施不能である。また、所定の疑似ランダムビットの組を発生させるために使用されたiの値を決定することは、コンピュータ能力的に実施不能である。この最後の特徴によって、生成器は一方向性になる。異なるiの値が、所定の長さの同じビットシーケンス(例えば、32ビットのランダムビット)を生じさせる可能性がある。たとえ、x、p及びqが既知であるとしても、予定のF[i]に対して、iは確率の組として導出できるだけであり、特定の値として導出できない。(勿論、iのドメインが既知であるならば、確率の組は更に限定される)。しかし、良好なp及びqと、良好なシードxの選択に関して問題がある。特に、Ritterは、xを選択する際の問題について記述している。この問題の性質は、BBS生成器が既知長さの単一のサイクルを生成しないことである。その代わりに、BBS生成器は、縮退(長さゼロ)サイクルを含む様々な長さのサイクルを生成する。このように、BBS生成器は、短いサイクルかもしれないランダム状態を用いて初期化することが不可能である。 Without knowledge of p and q, the generator must perform an iteration (the security of the computation depends on the difficulty of factoring large numbers). When originally defined, the main problem with the BBS generator was the amount of work required for a single output bit. This algorithm was considered too slow for most applications. However, with the advent of Montgomery-type reduction operations, more practical implementations have occurred. Moreover, Vazirani and Vazirani have shown that depending on the size of n, more bits can be safely extracted from x i without compromising the security of the generator. If only one bit is needed per x i , N bits (and thus N iterations of the bit generator function) are needed to generate an N-bit random number. There is no way for an external observer to determine the next bit with a probability other than half when given a particular set of bits. If x, p and q are kept secret, they act as keys, taking the output bitstream and calculating x, p and q is not computationally feasible. Also, determining the value of i used to generate a given set of pseudo-random bits is not feasible in terms of computer capabilities. This last feature makes the generator unidirectional. Different values of i may result in the same bit sequence of a predetermined length (eg, 32 random bits). Even if x, p and q are known, for a given F [i], i can only be derived as a set of probabilities and not as a specific value. (Of course, if i's domain is known, the probability set is further limited). However, there are problems regarding the choice of good p and q and good seed x. In particular, Ritter describes the problem of selecting x. The nature of this problem is that the BBS generator does not generate a single cycle of known length. Instead, the BBS generator generates various length cycles, including degenerate (zero length) cycles. Thus, the BBS generator cannot be initialized with a random state that may be a short cycle.

ハッシュ関数
ハッシュ関数として知られている特殊な一方向関数は、任意長さのメッセージを固定長さのハッシュ値へマップする。ハッシュ関数はH[M]のように表される。入力は任意長さであるため、ハッシュ関数は固定長さの出力を生ずるため圧縮コンポーネントを有する。また、ハッシュ関数は、衝突の検出を困難にさせ、H[M]からMに関する情報の決定を困難にさせるため、オブファスケイションコンポーネントを含む。衝突は実際に存在するので、殆どのアプリケーションは、所与のXに対して、H[X]=H[X]となるようなXを見つけることが困難であるという点で、ハッシュアルゴリズムが耐プレイメージ性であることを必要とする。その上、殆どのアプリケーションは、ハッシュアルゴリズムが耐衝突性である(即ち、H[X]=H[X]となるような2個のメッセージX及びXを見つけることが困難である)ことを要求する。耐衝突性のあるハッシュ関数が理想的な意味で存在し得るかどうかは、未確定の問題である。ハッシュ関数の主なアプリケーションは、デジタル署名アルゴリズムを適用する前に、入力メッセージをデジタル「指紋」に変形することである。デジタル署名との衝突の一つの問題は以下の例に示されている。
A special one-way function known as a hash function hash function maps an arbitrarily long message to a fixed length hash value. The hash function is expressed as H [M]. Since the input is of arbitrary length, the hash function has a compression component to produce a fixed length output. The hash function also includes an obfuscation component to make it difficult to detect collisions and to determine information about M from H [M]. Since a collision actually exists, most applications have difficulty finding X 2 such that H [X 1 ] = H [X 2 ] for a given X 1 , Requires the hash algorithm to be pre-image resistant. Moreover, most applications find it difficult to find two messages X 1 and X 2 such that the hash algorithm is collision resistant (ie H [X 1 ] = H [X 2 ]). ) Whether a collision-resistant hash function can exist in an ideal sense is an undetermined question. The main application of the hash function is to transform the input message into a digital “fingerprint” before applying the digital signature algorithm. One problem of conflicts with digital signatures is illustrated in the following example.

Aは、「私はBに100ドルの借りがある。」という長いメッセージMを持っている。Aは、自分の秘密鍵を用いてH[M]を署名する。どん欲なBは、H[M]=H[M]であり、MがBにとって有利であるような衝突メッセージM、例えば、「私はBに100万ドルの借りがある。」を探索する。明らかに、このようなMを見つけることが困難であることを保証することはAの利益である。 A has a long message M 1 that says "I have a $ 100 loan to B." A signs H [M 1 ] with his private key. A greedy B is H [M 2 ] = H [M 1 ] and a collision message M 2 where M 2 is advantageous to B, eg, “I have a $ 1 million borrow in B” Explore. Clearly, it is A's benefit to ensure that finding such M 2 is difficult.

耐衝突性のある一方向ハッシュ関数の例は、SHA−1、MD5、及びRIPEMD−160であり、これらは全てMD4から導かれる。 Examples of collision-resistant one-way hash functions are SHA-1, MD5, and RIPEMD-160, all of which are derived from MD4.

MD4
Ron Rivestは1990年にMD4を発表した。他の全ての一方向ハッシュ関数はMD4から何らかの方法によって導出されるので、ここでは、MD4を説明する。MD4は、衝突を探索されるのではなく、計算可能であるという点で、現在では、完全に破られたと考えられている。上記の例において、Bは、元のメッセージMと同じハッシュ値を用いて、代わりのメッセージMを普通に発生させることができる。
MD4
Ron Rivest announced MD4 in 1990. Since all other one-way hash functions are derived from MD4 by some method, MD4 will be described here. MD4 is now considered completely broken in that it can be computed rather than searched for collisions. In the above example, B can use the same hash value as the original message M 1, and generates an alternative message M 2 normally.

MD5
Ron Rivestは1991年に、安全性の高まったMD4として、MD5を発表した。MD4と同様に、MD5は128ビットのハッシュ値を生成する。Dobbertinは、最近の攻撃後のMD5の状態を説明している。彼は、MD5において疑似衝突を見つける方法を説明し、圧縮関数の弱点を指摘し、つい最近、衝突が発見された。即ち、MD5は、衝突の存在がひどい結果を招くデジタル署名スキームの圧縮に使用されるべきではない。しかし、MD5は、一方向関数として依然として使用することができる。その上、HMAC−MD5の構造は、これらの最近の攻撃による影響を受けない。
MD5
Ron Rivest announced MD5 in 1991 as MD4 with increased safety. Similar to MD4, MD5 generates a 128-bit hash value. Dobertin describes the state of MD5 after a recent attack. He explained how to find a pseudo-collision in MD5, pointed out the weakness of the compression function, and more recently a collision was discovered. That is, MD5 should not be used for compression of digital signature schemes where the presence of collisions can have serious consequences. However, MD5 can still be used as a one-way function. Moreover, the structure of HMAC-MD5 is not affected by these recent attacks.

SHA−1
SHA−1はMD5と非常に類似しているが、160ビットのハッシュ値を有する(MD5は128ビットのハッシュ値しかない)。SHA−1は、デジタル署名標準(DSS)で使用するため、NIST及びNSAによって設計され発表された。最初に発表された説明はSHAと呼ばれたが、その後直ぐに、おそらくSHAの安全性の欠陥を訂正するために改訂され、SHA−1となった(但し、NSAは変更の原因となった数学的な理由を発表していない)。SHA−1に対する暗号攻撃は知られていない。また、SHA−1は、単にハッシュ結果が長くなったという理由で、力ずくの攻撃に対する耐性がMD4又はMD5よりも強い。米国政府は、SHA−1及びDSAアルゴリズム(DSSの一部として定められたデジタル署名認証アルゴリズム)を保有し、少なくとも一つの関連特許(1993年に発行された米国特許5231688号)を保持する。
SHA-1
SHA-1 is very similar to MD5, but has a 160-bit hash value (MD5 has only a 128-bit hash value). SHA-1 was designed and published by NIST and NSA for use in the Digital Signature Standard (DSS). The first published explanation was called SHA, but soon afterwards it was probably revised to correct SHA safety flaws and became SHA-1 (however, the NSA was the math that caused the change) For no reason). There is no known cryptographic attack on SHA-1. Also, SHA-1 is more resistant to brute force attacks than MD4 or MD5 simply because the hash result is longer. The US government owns the SHA-1 and DSA algorithms (digital signature authentication algorithms defined as part of DSS) and holds at least one related patent (US Pat. No. 5,231,688 issued in 1993).

RIPEMD−160
RIPEMD−160は、その前進であるRIPEMD(1992年に欧州委員会のRIPEプロジェクトのために開発された)から導出されたハッシュ関数である。その名前から分かるように、RIPEMD−160は、160ビットのハッシュ結果を生成する。32ビットアーキテクチャのソフトウェア実装のため合わされたRIPEMD−160は、10年間以上に亘って高いセキュリティレベルを提供することを予定されている。RIPEMD−160に対する攻撃の成功例は存在しないが、RIPEMD−160は比較的新しく、大規模に解読されていない。最初のRIPEMDアルゴリズムは、従来のMD4に対する暗号攻撃に対抗するために特に設計された。最近のMD5に対する攻撃は、RIPEMDの128ビットハッシュ関数においても類似した弱点を明らかにした。この攻撃は理論的な弱点を示しただけであるが、Dobbertin、Preneel及びBosselaersは、RIPEMDを新しいアルゴリズムRIPEMD−160へ更に強化した。
RIPMD-160
RIPEMD-160 is a hash function derived from its advance, RIPEMD (developed for the European Commission's RIPE project in 1992). As can be seen from the name, RIPEMD-160 generates a 160-bit hash result. RIPMD-160, combined for a 32-bit architecture software implementation, is scheduled to provide a high level of security for over a decade. Although there are no successful attacks on RIPEMD-160, RIPEMD-160 is relatively new and has not been deciphered on a large scale. The first RIPEMD algorithm was specially designed to combat cryptographic attacks against conventional MD4. Recent attacks on MD5 have revealed similar weaknesses in the RIPEMD 128-bit hash function. Although this attack only showed a theoretical weakness, Dobertin, Preneel and Bosselars further enhanced RIPEMD to a new algorithm, RIPEMD-160.

メッセージ認証コード
メッセージ認証の問題は以下のようにまとめることができる:
Aは、Bからのメッセージであると推測されるメッセージが本当にBからのメッセージであることをどのようにして確信するか?
メッセージ認証はエンティティ認証とは異なる。エンティティ認証の場合、一つのエンティティ(要求者)は、自分のアイデンティティを他者(検証者)に対して照明する。メッセージ認証の場合、所定のメッセージが自分の思う人からのメッセージであることを保証すること、即ち、メッセージが発信元から宛先までの途中で改ざんされていないことを保証することに関係する。一方向ハッシュ関数はメッセージに対する保護が十分ではない。MD5のようなハッシュ関数は、元の入力を代表するハッシュ値を発生させ、元の入力がハッシュ値から導出できないことに基づいている。AとBの間にいるEからの簡単な攻撃は、Bからのメッセージを途中で盗み、自分のメッセージで置き換えることである。たとえ、Aが元のメッセージのハッシュを送信したとしても、Eは自分の新しいメッセージのハッシュで簡単に置き換えることができる。一方向ハッシュだけを使用した場合、AはBのメッセージが変更されたかどうかを知る方法がない。メッセージ認証の問題に対する一つのソリューションは、メッセージ認証コード、即ち、MACだえる。BがメッセージMを送信するとき、Bは、受信者にMが本当にBからのメッセージであることがわかるようにMAC[M]を送信する。これを実現するため、BだけがMのMACを生成可能であり、更に、AはMAC[M]と対照してMを検証し得ることが必要である。これは、Mを秘密にする必要がないときに、M−MACの暗号化が有効であることとは異なることに注意する必要がある。ハッシュ関数からMACを構築する最も簡単な方法は、対称アルゴリズムを用いてハッシュ値を暗号化すること、即ち、
入力メッセージをハッシュ化 H[M]
ハッシュを暗号化 E[H[M]]
である。
Message Authentication Code Message authentication issues can be summarized as follows:
How does A believe that a message that is supposed to be from B is really a message from B?
Message authentication is different from entity authentication. In the case of entity authentication, one entity (requester) illuminates its identity to others (verifier). In the case of message authentication, it is related to guaranteeing that a predetermined message is a message from a person who thinks it, that is, ensuring that the message has not been tampered with from the source to the destination. One-way hash functions are not adequately protected against messages. A hash function such as MD5 is based on the fact that a hash value representative of the original input is generated and the original input cannot be derived from the hash value. A simple attack from E between A and B is to steal the message from B and replace it with your own message. Even if A sends the hash of the original message, E can easily replace it with the hash of his new message. When using only a one-way hash, A has no way of knowing whether B's message has changed. One solution to the problem of message authentication is a message authentication code, or MAC. When B sends message M, B sends MAC [M] so that the recipient knows that M is really a message from B. To achieve this, only B can generate M's MAC, and A needs to be able to verify M against MAC [M]. Note that this differs from M-MAC encryption being effective when M does not need to be kept secret. The simplest way to construct a MAC from a hash function is to encrypt the hash value using a symmetric algorithm, ie
Hash input message H [M]
Encrypt hash E K [H [M]]
It is.

これは、最初にメッセージを暗号化して、次に、暗号化されたメッセージをハッシュ化するよりも安全性が高い。任意の対称又は非対称暗号化関数を使用することができる。しかし、(上記のような)暗号化を使用する技術の代わりに、鍵依存型の一方向ハッシュ関数を使用する方が以下の幾つかの点で有利である:
速度:一方向ハッシュ関数は一般的に暗号化よりも高速に動作するため;
メッセージサイズ:E[H[M]]は少なくともMと同じサイズであるが、H[M]は固定サイズ(通常、Mよりもかなり小さい)であるため;
ハードウェア/ソフトウェア必要条件:鍵付きの一方向ハッシュ関数は、典型的に、それらの暗号ベースの代案よりも遙かに複雑さが抑えられている;
一方向ハッシュ関数の実装は、暗号化装置又は復号化装置であるとはみなされないので、米国の国外持ち出し規制の対象ではない。
This is more secure than first encrypting the message and then hashing the encrypted message. Any symmetric or asymmetric encryption function can be used. However, instead of techniques that use encryption (as described above), it is advantageous to use a key-dependent one-way hash function in several ways:
Speed: Because one-way hash functions generally run faster than encryption;
Message size: E K [H [M]] is at least as large as M, but H [M] is a fixed size (usually much smaller than M);
Hardware / software requirements: Keyed one-way hash functions are typically much less complex than their cryptographic-based alternatives;
The implementation of the one-way hash function is not considered to be an encryption device or a decryption device, and is not subject to US export restrictions.

尚、ハッシュ関数は、当初は、鍵を格納したり、メッセージ認証をサポートしたりするためには設計されていなかったことに注意する必要がある。その結果として、メッセージを秘密プレフィックス、サフィックス、又は両方と連結する種々の関数を含む、メッセージ認証を実行するためにハッシュ関数を使用する、ある種のアドホックな方法が提案されている。これらのアドホックな方法の殆どは、洗練された手段によって巧く攻撃された。付加的なMACは、XORスキーム及びテプリッツ(Toeplitz)行列に基づいて提案されている(LFSRベース構造の特殊なケースを含む)。 It should be noted that the hash function was not originally designed to store keys or support message authentication. As a result, certain ad hoc methods have been proposed that use hash functions to perform message authentication, including various functions that concatenate messages with secret prefixes, suffixes, or both. Most of these ad hoc methods have been successfully attacked by sophisticated means. Additional MACs have been proposed based on the XOR scheme and the Toeplitz matrix (including the special case of LFSR-based structures).

HMAC
特にHMAC構造は、インターネットメッセージ認証セキュリティプロトコル用のソリューションとして認められ始めている。HAMC構造は、基礎となるハッシュ関数をブラックボックス的に使用して、ラッパーとして作用する。ハッシュ関数の置換は、安全性又は性能上の理由から求められるならば、簡単に行われる。しかし、HMAC構造の主要な利点は、基礎となるハッシュ関数がある程度の合理的な暗号強度を有するならば、HMAC構造は安全であることが証明できること、即ち、HMACの強度は、ハッシュ関数の強度と直接的に関連していることである。HMAC構造はラッパーであるため、任意の反復ハッシュ関数をHMACで使用することが可能である。その例には、HMAC−MD5、HMAC−SHA1、HMAC−RIPEMD160等が含まれる。以下のような定義:
H=ハッシュ関数(例えば、MD5又はSHA−1)
n=Hから出力されたビット数(例えば、SHA−1の場合160ビット、MD5の場合128ビット)
M=MAC関数が適用されるべきデータ
K=2当事者によって共有される秘密鍵
ipad=0x36の反復64回
opad=0x5Cの反復64回
を与えると、HMACアルゴリズムは:
0x00バイトをKの最後に付加することによってKを64バイトへ拡張する;
(1)で作成された64バイト文字列をipadでXOR演算する;
(2)で作成された64バイトにデータストリームMを付加する;
(3)で発生されたストリームにHを適用する;
(1)で作成された64バイト文字列をopadでXOR演算する;
(4)からの結果Hを(5)からの結果である64バイトに付加する;
(6)の出力にHを適用し、結果を出力する;
のようになる。したがって、
HMAC[M]=H[(KAopad)|H[(KAipad)|M]]
である。
HMAC
In particular, the HMAC structure is beginning to be recognized as a solution for Internet message authentication security protocols. The HAMC structure acts as a wrapper, using the underlying hash function as a black box. The replacement of the hash function is straightforward if required for security or performance reasons. However, the main advantage of the HMAC structure is that if the underlying hash function has some reasonable cryptographic strength, the HMAC structure can prove secure, ie the strength of the HMAC is the strength of the hash function. It is directly related to. Since the HMAC structure is a wrapper, any iterative hash function can be used in the HMAC. Examples thereof include HMAC-MD5, HMAC-SHA1, HMAC-RIPEMD160, and the like. Definitions such as:
H = Hash function (eg, MD5 or SHA-1)
Number of bits output from n = H (for example, 160 bits for SHA-1 and 128 bits for MD5)
M = data to which the MAC function is to be applied K = 2 The secret key shared by the parties ipad = 0x36 64 iterations Opad = 0x5C iterations 64 Given the HMAC algorithm:
Extend K to 64 bytes by appending 0x00 bytes to the end of K;
XORing the 64-byte character string created in (1) with ipad;
Append data stream M to the 64 bytes created in (2);
Apply H to the stream generated in (3);
XOR the 64-byte character string created in (1) with opad;
Append the result H from (4) to the 64 bytes resulting from (5);
Apply H to the output of (6) and output the result;
become that way. Therefore,
HMAC [M] = H [(KAopad) | H [(KAipad) | M]]
It is.

推奨される鍵長さは少なくともnビットであるが、64バイト(ハッシュ化ブロックの長さ)よりも長くなってはならない。nビットよりも長い鍵は、関数の安全性を上乗せしない。HMACは、オプションとして、最終的な出力の丸め、例えば、160ビットから128ビットへの丸めを行うことできる。HMAC設計者の規約(RFC)は、このアルゴリズムが最初に発表された1年後の1997年に発行された。設計者は、HMACに対する既知の最強の攻撃は、ハッシュ関数Hに対する衝突の頻度に基づく攻撃であり、最低限度で適当なハッシュ関数に対して全く実際的ではないということを公表している。より最近では、リプレイ防止機能付きHMACプロトコルが、所定の時間内でのM、HMAC[M]コンビネーションの捕捉及び再生を防止するために規定されている。 The recommended key length is at least n bits, but should not be longer than 64 bytes (the length of the hashed block). Keys longer than n bits do not add function security. The HMAC can optionally perform final output rounding, for example rounding from 160 bits to 128 bits. The HMAC Designer's Code (RFC) was published in 1997, one year after the algorithm was first published. Designers have announced that the strongest known attack on HMAC is based on the frequency of collisions on hash function H, and at the very least it is not practical for a suitable hash function. More recently, the HMAC protocol with anti-replay function has been defined to prevent capture and playback of M, HMAC [M] combinations within a predetermined time.

乱数及び時変性メッセージ
一方向関数としての乱数生成器の使用については既に説明した。しかし、乱数生成器の理論は、暗号法、セキュリティ、及び認証と非常に絡み合っている。優れた乱数生成器の定義に関して多数の問題がある。Knuthは、生成器をよくするもの(統計的テストを含む)、及び生成器の構築に関する一般的な問題を説明している。乱数の用法の一つは、メッセージが時間的に変化することを保証することである。Aがコマンドを暗号化し、それをBへ送信するシステムを想定する。暗号化アルゴリズムが所与の入力と同じ出力を生成する場合、攻撃者は、簡単にメッセージを記録し、Bを欺くためにそれを再生することが可能である。攻撃者は、暗号化機構を破壊する必要がなく、(Aになりすましている間に)Bに対して再生すべきメッセージがわかれればよい。その結果として、メッセージは、しばしば、そのメッセージ(したがって、その暗号化された対応部分)が常に変化することを保証するため、乱数及びタイムスタンプを含む。乱数生成器は、しばしば、鍵を生成するためにも使用される。したがって、現時点では、全ての生成器は、この目的のためには不確かであると言って差し支えない。例えば、Berlekamp−Masseyアルゴリズムは、LFSR乱数生成器に対する従来の攻撃法である。LFSRの長さがnであるならば、2nビットのシーケンスは、鍵生成器を構成するLFSRを決定するために十分である。しかし、乱数生成器の唯一の役目は、メッセージが時間的に変化することを保証することであるならば、生成器及びシードのセキュリティは、セッション鍵生成の場合のように重要ではない。しかし、乱数シード生成器が危険にさらされ、攻撃者が未来の「乱数」を計算可能であるならば、一部のプロトコルが攻撃者に対して開放されたままにされ得る。新しいプロトコルはこの状況に関して検討されるべきである。要求される実際のタイプの乱数生成器は、インプリメンテーションと、その生成器の使用目的と、に依存するであろう。生成器には、Ron
RivestによるRC4のようなBlum、Blum、及びShubストリーム暗号、SHA−1及びRIPEMD−160のようなハッシュ関数、並びに、LFSR(線形フィードバックシフトレジスタ)及びそれらのより最近の対応物であるFCSR(キャリー付きフィードバックシフトレジスタ)のような従来の生成器が含まれる。
The use of a random number generator as a one-way function of random numbers and time-varying messages has already been described. However, the theory of random number generators is very intertwined with cryptography, security, and authentication. There are a number of problems with defining a good random number generator. Knuth describes the common problems associated with building generators (including statistical tests) and building generators. One use of random numbers is to ensure that messages change over time. Assume a system where A encrypts a command and sends it to B. If the encryption algorithm produces the same output as a given input, the attacker can easily record the message and play it back to deceive B. The attacker does not have to destroy the encryption mechanism, but only needs to know the message to be played to B (while impersonating A). As a result, messages often include random numbers and time stamps to ensure that the message (and hence its encrypted counterpart) always changes. Random number generators are often also used to generate keys. Thus, at present, all generators can be said to be uncertain for this purpose. For example, the Berlekamp-Massey algorithm is a conventional attack on LFSR random number generators. If the length of the LFSR is n, a 2n bit sequence is sufficient to determine the LFSRs that make up the key generator. However, if the only role of the random number generator is to ensure that the message changes over time, the security of the generator and seed is not as important as in the case of session key generation. However, some protocols may be left open to the attacker if the random seed generator is compromised and the attacker can calculate future “random numbers”. New protocols should be considered for this situation. The actual type of random number generator required will depend on the implementation and the intended use of the generator. The generator includes Ron
River, Blum, and Shub stream ciphers such as RC4 by Rivest, hash functions such as SHA-1 and RIPEMD-160, and LFSR (Linear Feedback Shift Register) and their more recent counterpart FCSR (Carry A conventional generator such as a feedback shift register) is included.

攻撃
このセクションは、認証チップのような認証暗号システムを破るために行われる可能性のある様々なタイプの攻撃を説明する。攻撃は、物理的な攻撃と論理的な攻撃に大別される。物理的な攻撃は、暗号システムの物理的な実装を破壊する(例えば、鍵を取り出すためにチップを壊して開ける)方法を表し、論理的な攻撃は、実装に依存しない暗号システムへの攻撃を含む。論理的なタイプの攻撃は、プロトコル又はアルゴリズムに対して機能し、以下の三つのうちの何れかを実行しようとする:
認証プロセスを完全に回避する;
あらゆる質問に回答できるように、力ずく又は推論によって秘密鍵を取得する;
鍵を用いることなく各質問に正しい回答を与えるため、認証用の質問及び回答の性質を十分に検出する。
Attacks This section describes various types of attacks that can be performed to break an authentication cryptosystem such as an authentication chip. Attacks are broadly divided into physical attacks and logical attacks. A physical attack represents a way to destroy the physical implementation of the cryptographic system (eg, break and open the chip to retrieve the key), and a logical attack represents an attack on the cryptographic system that is independent of the implementation. Including. A logical type of attack works against a protocol or algorithm and tries to do one of three things:
Completely avoid the authentication process;
Obtain a private key by force or reasoning so that any question can be answered;
In order to give each question a correct answer without using a key, the authentication question and the nature of the answer are fully detected.

次に、攻撃のスタイル及び形式を詳細に説明する。セキュリティチップによって使用されるアルゴリズム及びプロトコルとは無関係に、チップの認証部の回路は物理的な攻撃を受ける可能性がある。物理的な攻撃は、以下の4つの主要な形で現れるが、攻撃の形態は変化し得る:
認証チップを完全に回避する;
動作中にチップを物理的に検査する(破壊的及び非破壊的);
チップを物理的に分解する;
チップを物理的に改変する。
Next, the style and form of the attack will be described in detail. Regardless of the algorithm and protocol used by the security chip, the authenticator circuitry of the chip can be subject to physical attacks. Physical attacks appear in four main forms, but the form of attack can vary:
Avoid authentication chips completely;
Physical inspection of the chip during operation (destructive and non-destructive);
Physically disassembling the chip;
The chip is physically modified.

次に、攻撃のスタイル及び形式を詳細に説明する。このセクションは、これらの攻撃に対するソリューションを提案するものではない。このセクションは、各攻撃タイプを説明するだけである。調査は、(インターネット認証のような他のある種のシステムではなく)あるシステムに取り付けられた認証チップ53の状況に限定されている。 Next, the style and form of the attack will be described in detail. This section does not propose a solution for these attacks. This section only describes each attack type. The investigation is limited to the situation of the authentication chip 53 attached to a system (rather than some other system like Internet authentication).

論理的な攻撃
これらの攻撃は、暗号システムの物理的な実装形態に依存しない。これらは、プロトコル、アルゴリズムの安全性、及び乱数生成器に作用する。
Logical attacks These attacks are independent of the physical implementation of the cryptographic system. These affect the protocol, the security of the algorithm, and the random number generator.

暗号文だけの攻撃
これは、攻撃者が、全て同じアルゴリズムを使用して暗号化された一つ以上の暗号化メッセージをもつ場合である。攻撃者の目的は暗号化メッセージから平文メッセージを獲得することである。理想的には、鍵を復元することが可能であり、その結果、将来のすべてのメッセージを復元可能である。
Ciphertext only attack This is the case when an attacker has one or more encrypted messages that are all encrypted using the same algorithm. The attacker's goal is to obtain a plaintext message from the encrypted message. Ideally, the key can be recovered, so that all future messages can be recovered.

既知平文攻撃
これは、攻撃者が、平文と、平文の暗号化形式の両方をもつ場合である。認証チップの場合、既知の平文の攻撃は、攻撃者がシステムと認証チップの間のでーたフローを見ることができる場合である。入力及び出力は(攻撃者によって選別されることなく)観測され、弱点を見つけるため解析され得る(例えば、バースデー攻撃、又は区別の付く興味ある入力/出力のペアの探索によって)。既知平文攻撃は、選択平文攻撃よりも弱いタイプの攻撃である。なぜならば、攻撃者はデータフローしか観測できないからである。既知平文攻撃は、ロジックアナライザを、システムと認証チップの間の配線に接続することによって実行し得る。
Known plaintext attack This is the case when the attacker has both plaintext and plaintext encryption form. In the case of an authentication chip, a known plaintext attack is when the attacker can see the flow between the system and the authentication chip. Inputs and outputs can be observed (without being screened by the attacker) and analyzed to find weaknesses (eg, by a birthday attack or by searching for distinguishable interesting input / output pairs). The known plaintext attack is a weaker type of attack than the selected plaintext attack. This is because the attacker can only observe the data flow. Known plaintext attacks can be performed by connecting a logic analyzer to the wiring between the system and the authentication chip.

選択平文攻撃
選択平文攻撃は、暗号解読者が任意の選択されたメッセージを暗号システムへ送信し、その応答を観測できる能力を備えている場合である。暗号解読者がアルゴリズムを知っているならば、特定の出力を別の関数の入力へ供給することによって利用可能な入力と出力の間の関係があるであろう。内蔵型認証チップを使用するシステムでは、選択平文攻撃を防止することは難しい。なぜならば、暗号解読者は、論理的に自分がシステムであるふりをして、任意の選択されたビットパターンストリームを認証チップへ送信できるからである。
Selected plaintext attack A selected plaintext attack is when a decryptor has the ability to send any selected message to the cryptographic system and observe the response. If the cryptanalyst knows the algorithm, there will be a relationship between the input and output available by supplying a specific output to the input of another function. In a system using a built-in authentication chip, it is difficult to prevent a selected plaintext attack. This is because a decryptor can logically pretend to be the system and send any selected bit pattern stream to the authentication chip.

適応的選択平文攻撃
このタイプの攻撃は選択平文攻撃と類似しているが、攻撃者が先行の試験の結果に基づいて後続の選択された平文テキストを変更し得る点で異なる。上述のシステム/認証チップのシナリオがコピー機及びトナーカートリッジのような消耗品のために利用されるときは、確実にこのケースである。なぜならば、特に、システムと消耗品の両方は誰でも入手できるようにされているからである。
Adaptive Selected Plaintext Attack This type of attack is similar to a selected plaintext attack, except that the attacker can change the subsequent selected plaintext based on the results of the previous test. This is certainly the case when the system / authentication chip scenario described above is used for consumables such as copiers and toner cartridges. This is especially because both systems and consumables are made available to everyone.

ブルートフォース攻撃
鍵ベースの暗号システムアルゴリズムを破るための保証付きの方法は、単純に全ての鍵を試してみることである。最終的に正しい鍵が見つけられるであろう。これは、ブルートフォース攻撃として知られている。しかし、鍵候補の数が増加すると、より多くの鍵を試してみる必要があり、正しい鍵を見つけるために(平均的に)要する時間が長くなる。N個の鍵がある場合、最大でN回の試行が必要である。鍵の長さがNビットであるならば、最大で2回の試行が必要であり、半分だけの試行(2N−1)後に鍵を見つけるチャンスは50%である。Nが長くなればなるほど、鍵を見つけるために要する時間が長くなるので、鍵の安全性が高まる。勿論、攻撃が最初の試行で鍵を当てる可能性はあるが、この可能性は鍵が長くなると共に低下する。ここで、56ビットの鍵長さを考える。最悪ケースでは、鍵を見つけるために全部で256回のテスト(7.2×1016回のテスト)を行わなければならない。1977年に、DiffieとHellmanは、100万個のプロセッサにより構成され、各プロセッサが毎秒100万回のテストを実行刷る能力を備えたDES解読専用機械を発表した。このような機械は任意のDESコードを破るためには20時間を要する。鍵長さが128ビットの場合を考える。最悪ケースでは、鍵を見つけるために全部で2128回のテスト(3.4×1038回のテスト)を行わなければならない。これは、各々が毎秒10億回のテストを実行する1兆個のプロセッサ上で10億年を要する。鍵長さが十分に長い場合、ブルースフォース攻撃は非常に長い時間を要するので、攻撃者の努力に値しない。
A guaranteed way to break a brute force attack key-based cryptosystem algorithm is to simply try all the keys. Eventually the correct key will be found. This is known as a brute force attack. However, as the number of key candidates increases, more keys need to be tried, and the time required (on average) to find the correct key increases. If there are N keys, a maximum of N trials are required. If the key length is N bits, a maximum of 2 N trials are required, and the chance of finding the key after only half the trials (2 N-1 ) is 50%. The longer N is, the longer it takes to find the key, and the more secure the key. Of course, there is a possibility that the attack will hit the key on the first attempt, but this possibility decreases as the key gets longer. Here, consider a 56-bit key length. In the worst case, it should be a total of effected a 2 56 times of the test (7.2 × 10 16 times of the test) to find the key. In 1977, Diffie and Hellman announced a DES decryption machine with 1 million processors, each processor capable of running 1 million tests per second. Such a machine takes 20 hours to break any DES code. Consider the case where the key length is 128 bits. In the worst case, a total of 2 128 tests (3.4 × 10 38 tests) must be performed to find the key. This takes 1 billion years on 1 trillion processors, each running 1 billion tests per second. If the key length is long enough, a Bruce Force attack takes a very long time and is not worth the effort of the attacker.

推測攻撃
このタイプの攻撃は、攻撃者が単に鍵を「推測」しようとする場合である。攻撃としては、ブルースフォース攻撃と同じであり、成功の確率は鍵の長さにかかっている。
Guess Attack This type of attack is when an attacker simply tries to "guess" a key. The attack is the same as the Bruce Force attack, and the probability of success depends on the key length.

量子コンピュータ攻撃
nビット鍵を解読するため、適切なアルゴリズムに埋め込まれたnキュビットを有する量子コンピュータ(NMR、オプティカル、又はケージドアトム)を構築しなければならない。量子コンピュータは、実効的に、2個の同時コヒーレント状態に存在する。デコヒーレントを生じることなく正しいコヒーレント状態を抽出することが要領である。今までのところ、これは、2キュビットのシステム(4コヒーレント状態で存在する)によって達成されている。数年の間に、これを6キュビット(64の同時コヒーレント状態をもつ)まで拡張することは可能であると思われる。
To decrypt a quantum computer attack n-bit key, a quantum computer (NMR, optical, or caged atom) with n qubits embedded in the appropriate algorithm must be constructed. A quantum computer effectively exists in 2 n simultaneous coherent states. The point is to extract the correct coherent state without causing decoherence. So far this has been achieved by a 2 qubit system (which exists in 4 coherent states). In a few years, it seems possible to extend this to 6 qubits (with 64 simultaneous coherent states).

残念なことに、キュビットを付加する毎に、鍵を表現する信号の相対強度が半分になる。これは、特に、暗号方式的に安全なシステムで使用される長い鍵の場合に、直ぐに鍵取り出しの重大な障害になる。その結果として、量子コンピュータを使用した、暗号方式的に安全な鍵(例えば、160ビット)に対する攻撃は、おそらく実施される可能性はなく、量子コンピュータが、認証チップの商業的な耐用年限中に50キュビット以上のキュビット数を達成する可能性は非常に低い。たとえ、50キュビットの量子コンピュータを使用しても、160ビット鍵を解読するために、2110回のテストが必要である。 Unfortunately, each time a qubit is added, the relative strength of the signal representing the key is halved. This quickly becomes a major obstacle to key retrieval, especially for long keys used in cryptographically secure systems. As a result, attacks on cryptographically secure keys (eg, 160 bits) using quantum computers are unlikely to be carried out, and quantum computers may be used during the commercial lifetime of the authentication chip. The possibility of achieving a qubit number greater than 50 qubits is very low. Even using a 50 qubit quantum computer, 2 110 tests are required to decrypt a 160 bit key.

意図的なエラー攻撃
一部のアルゴリズムの場合、攻撃者は悪い入力の結果から有用な情報を収集することができる。有用な情報の範囲は、エラーメッセージ文から、エラーを発生させるために要した時間までに亘る。簡単な一例は、ユーザID/パスワードのスキームである。エラーメッセージが通常「間違ったユーザID」であるならば、攻撃者が「間違ったパスワード」というメッセージを取得したとき、ユーザIDが正しいことを知る。メッセージが常に「間違ったユーザID/パスワード」であるならば、攻撃者に与えられる情報は遙かに少ない。より複雑な例は、最近発表された、安全なウェブサイトから暗号コードを解読する方法である。この攻撃には、特定のメッセージをサーバーへ送信することと、エラーメッセージ応答を観測することとが含まれる。応答は、鍵を学習するために十分な情報を与え、応答が無くても何らかの情報が得られる。アルゴリズムの一例として、時間は、誤りのあるビットが入力メッセージ中に検出されたときに直ちにエラーを返すアルゴリズムの場合に知ることができる。ハードウェア実装形態に依存して、攻撃者が、応答の時間を計り、エラー応答に要した時間に基づいて1ビットずつ変更し、このようにして鍵を獲得することは、簡単な方法である。チップ実装形態の場合、必要な時間がインターネット経由の場合よりもかなり高い精度で観測できることは確実である。
Intentional error attacks For some algorithms, an attacker can gather useful information from bad input results. The range of useful information ranges from the error message text to the time taken to generate the error. A simple example is a user ID / password scheme. If the error message is usually "wrong user ID", the attacker knows that the user ID is correct when he gets the message "wrong password". If the message is always "wrong user ID / password", much less information is given to the attacker. A more complex example is the recently announced method of decrypting cryptographic codes from secure websites. This attack involves sending specific messages to the server and observing error message responses. The response gives sufficient information to learn the key, and some information can be obtained even if there is no response. As an example of an algorithm, time can be known in the case of an algorithm that returns an error immediately when an erroneous bit is detected in the input message. Depending on the hardware implementation, it is a simple way for an attacker to time the response and change it bit by bit based on the time required for the error response, thus obtaining the key. . In the case of the chip mounting form, it is certain that the required time can be observed with a considerably higher accuracy than that via the Internet.

バースデー攻撃
この攻撃は、有名な「バースデーパラドックス」(実際には全くパラドックスではない)にちなんで命名された。ある人が他の人と同じ誕生日である確率は365分の1である(閏年は考えない)。したがって、室内の183人のうちの一人があなたと同じ誕生日である確率は50%よりも高い筈である。しかし、室内に23人の人がいれば、何れか二人の誕生日が同じである確率は50%を超える。その理由は、23人によって253通りのペアが生じるからである。バースデー攻撃は、ハッシングアルゴリズム、特に、ハッシングとデジタル署名を組み合わせるアルゴリズムに対する一般的な攻撃である。メッセージが生成され、既に署名されている場合、攻撃者は、同じ値にハッシュする衝突メッセージを探す必要がある(あなたと同じ誕生日の人を見つけることと類似している)。しかし、攻撃者がメッセージを生成可能であるならば、バースデー攻撃が作用し始める。攻撃者は、同じハッシュ値をもつ二つのメッセージを探し(何れか二人が同じ誕生日である場合と類似している)、一方のメッセージだけがそれに署名をした人に受け入れられ、もう一方は攻撃者の役に立つ。その人が元のメッセージに署名をし終えたならば、攻撃者は、その人は別のメッセージに署名をしたことを主張するだけでよく、数学的にどちらのメッセージが原本であるかを示す方法は無い。なぜならば、両方のメッセージは同じ値にハッシュするからである。ブルートフォース攻撃が一致を判定するための唯一の方法であるとすると、バースデー攻撃によるnビット鍵の脆弱化は2n/2である。バースデー攻撃を受ける可能性のある128ビットの長さの鍵は、事実上64ビットの長さしかない。
Birthday Attack This attack was named after the famous “Birthday Paradox” (not really a paradox at all). The probability that a person has the same birthday as another person is 1/365 (not considering leap years). Therefore, the probability that one of 183 people in the room has the same birthday as you should be higher than 50%. However, if there are 23 people in the room, the probability that any two of them have the same birthday exceeds 50%. The reason is that 253 pairs are generated by 23 people. Birthday attacks are common attacks on hashing algorithms, particularly algorithms that combine hashing and digital signatures. If the message was generated and already signed, the attacker would need to look for a collision message that hashes to the same value (similar to finding someone with the same birthday as you). However, if an attacker can generate a message, a birthday attack will start to work. The attacker looks for two messages with the same hash value (similar to the case where either two have the same birthday), only one message is accepted by the person who signed it, and the other Useful for attackers. If the person has signed the original message, the attacker only has to claim that the person has signed another message and mathematically indicates which message is the original. There is no way. This is because both messages hash to the same value. If a brute force attack is the only way to determine a match, the n-bit key weakening due to the birthday attack is 2 n / 2 . A 128-bit long key that can be subject to a birthday attack is effectively only 64 bits long.

連鎖攻撃
これらの攻撃は、ハッシュ関数の連鎖性に対して行われる攻撃である。連鎖攻撃は、ハッシュ関数の圧縮関数に的を絞る。このアイデアは、ハッシュ関数が一般的に任意の長さの入力をとり、入力nビットを同時に処理することによって、一定の長さの出力を生成する点に基づいている。1ブロックからの出力は次のブロックへの連鎖変数セットとして使用される。入力全体に対する衝突を見つけるのではなく、このアイデアは、入力連鎖変数セットが与えられた場合に、本来のメッセージと同じ出力連鎖変数を生じる代用ブロックを見つけることである。特定のブロックの選択数は、ブロックの長さに基づいている。連鎖変数がcビットであり、ハッシング関数はランダムマッピングのように挙動し、ブロック長さがbビットであるならば、このようなbビットブロックの個数は、約2b/2c個である。代用ブロックを見つけるためのチャレンジは、このようなブロックが考えられる全てのブロックのうちの疎部分集合であることである。SHA−1の場合、512ビットブロックの個数は、約2512/2160、即ち、2352個である。ブルートフォース検索によってブロックを見つける見込みは2160分の1である。
Chain attacks These attacks are attacks that are performed on the chain nature of the hash function. Chain attacks focus on the compression function of the hash function. The idea is based on the fact that a hash function generally takes an input of arbitrary length and produces an output of a certain length by processing the input n bits simultaneously. The output from one block is used as a chain variable set to the next block. Rather than finding a collision on the entire input, the idea is to find a substitute block that, when given an input chain variable set, yields the same output chain variable as the original message. The number of selections for a particular block is based on the length of the block. If the chain variable is c bits, the hashing function behaves like a random mapping, and the block length is b bits, the number of such b bit blocks is about 2b / 2c. The challenge to find a substitute block is that such a block is a sparse subset of all possible blocks. In the case of SHA-1, the number of 512-bit blocks is about 2 512/2 160 , that is, 2 352 . Expected to find a block by brute force search is one of 2 160 minutes.

完全ルックアップテーブルによる代用
チップへ送信された可能性のあるメッセージの数が少ない場合、鍵を解読するために複製品製造者は不要である。その代わりに、複製品製造者は、システムによって送信されたコードに対する純正チップからのレスポンスの全てを記録したROMをチップに組み込むことが可能である。鍵が長くなり、レスポンスが長くなると共に、このようなルックアップテーブルに必要な空間が大きくなる。
If the number of messages that may have been sent to the surrogate chip with a full lookup table is small, the replica manufacturer is not required to decrypt the key. Instead, the replica manufacturer can incorporate into the chip a ROM that records all of the response from the genuine chip to the code sent by the system. The key becomes longer, the response becomes longer, and the space required for such a lookup table becomes larger.

疎ルックアップテーブルによる代用
チップへ送られたメッセージが、実効的にランダムではなく、ある程度予測可能であるならば、複製品製造者は完全ルックアップテーブルを提供しなくてもよい。例えば:
メッセージが単なるシリアル番号であるならば、複製品製造者は、過去及び未来の予測シリアル番号を格納するルックアップテーブルを提供すればよい。これらのシリアル番号が1019個を超える可能性は低い;
テストコードが単なる日付であるならば、複製品製造者はアドレスとして日付を使用してルックアップテーブルを生成することができる;
テストコードが、シリアル番号又は日付をシードとして用いる疑似乱数であるならば、複製品製造者は、まさに、システム内の疑似乱数生成器を解読する必要がある。これは、おそらく難しくはないであろう。なぜならば、複製品製造者はシステムのオブジェクトコードを入手できるからである。複製品製造者は、蓄積された認証コードへアクセスするためこれらのコードを使用して、内容アドレス可能メモリ(又は、その他の疎配列ルックアップ)を生成するであろう。
If a message sent to a surrogate chip with a sparse lookup table is not effectively random and is predictable to some extent, the replica manufacturer may not provide a complete lookup table. For example:
If the message is just a serial number, the replica manufacturer may provide a look-up table that stores past and future predicted serial numbers. It is unlikely that these serial numbers will exceed 10 19 ;
If the test code is just a date, the replica manufacturer can generate a lookup table using the date as the address;
If the test code is a pseudo-random number using a serial number or date as a seed, the replica manufacturer just needs to decipher the pseudo-random number generator in the system. This is probably not difficult. This is because the replica manufacturer can obtain the object code of the system. The replica manufacturer will use these codes to access the stored authorization codes and generate content addressable memory (or other sparse array lookups).

差分暗号解読
差分暗号解読は、入力ストリームのペアが既知差分を用いて生成され、符号化ストリームの差分が解析される攻撃を表す。既知差分攻撃は、DES及びその他の同様のアルゴリズムで使用されるようなSボックスの構造にかなり依存している。HMAC−SHA1のような他のアルゴリズムはSボックスを持たないが、攻撃者は、
最小差分入力及びそれに対応した出力
最小差分出力及びそれに対応した入力
の統計的解析を行うことによって差分的な攻撃を実行し得る。
Differential decryption Differential decryption represents an attack in which pairs of input streams are generated using known differences and the differences in the encoded stream are analyzed. Known differential attacks are highly dependent on the structure of the S-box as used in DES and other similar algorithms. Other algorithms like HMAC-SHA1 do not have an S-box, but the attacker
A differential attack can be performed by performing a statistical analysis of the minimum differential input and the corresponding minimum differential output and the corresponding input.

殆どのアルゴリズムは、差分暗号解読のプロセスが記載された後、差分暗号解読に対して補強された。これは、各暗号化方式に専用のセクションで対称とされている。しかし、一部の密かに開発された近年のアルゴリズムは破られている。なぜならば、開発者がある種のスタイルの差分攻撃を考慮せず、自分のアルゴリズムを公開の精査の対象としなかったからである。 Most algorithms were augmented against differential decryption after the differential decryption process was described. This is symmetric in a section dedicated to each encryption scheme. However, some secretly developed recent algorithms have been broken. This is because developers did not consider certain styles of differential attacks and did not target their algorithms for public scrutiny.

メッセージ置換攻撃
ある種のプロトコルでは、媒介物はメッセージの一部又は全部を置換可能である。これは、真の認証チップが消耗品内の再使用可能な複製チップにプラグインされる場合である。複製チップは、システムと認証チップの間の全てのメッセージを盗み取り、多数の置換攻撃を実行し得る。ヘッダとその後に続く内容とを格納したメッセージを例として考える。攻撃者は有効ヘッダを生成し得ないが、特に、有効レスポンスが「はい、あなたのメッセージを受信しました。」のようなものであるならば、メッセージの固有の内容を置換することができる。たとえ、リターンメッセージが「はい、以下のメッセージを受信しました...」であったとしても、攻撃者は、肯定応答を本来の送信者へ返信する前に、元のメッセージを置換することができる。メッセージ認証コードは、殆どのメッセージ置換攻撃に対抗するために開発された。
Message replacement attack In certain protocols, an intermediary can replace some or all of a message. This is the case when a true authentication chip is plugged into a reusable replica chip in the consumable. The replica chip can steal all messages between the system and the authentication chip and perform multiple replacement attacks. Consider as an example a message that contains a header followed by the contents. An attacker cannot generate a valid header, but can replace the specific content of the message, especially if the valid response is something like "Yes, your message has been received." Even if the return message is "Yes, the following message has been received ...", the attacker may replace the original message before returning an acknowledgment to the original sender. it can. Message authentication codes have been developed to combat most message replacement attacks.

鍵生成器のリバースエンジニアリング
疑似乱数生成器が鍵を生成するため使用される場合、複製品製造者は、生成器プログラムを取得するか、又は使用されたランダムシードを推測する可能性がある。これは、ネットスケープのセキュリティプログラムが最初に破られたときの方法である。
If a reverse-engineered pseudo-random number generator of the key generator is used to generate the key, the replica manufacturer may obtain the generator program or infer the random seed used. This is how the Netscape security program was first broken.

認証全体の回避
認証プロトコルには認証プロセス全体の回避を可能にする問題があり得る。この種の攻撃の場合、鍵は全く無関係であり、攻撃者は鍵を復元する、又は鍵を推定する必要がない。電源投入時に認証を行なうが、その他のときには認証しないシステムを例として考える。複製認証チップを含む再使用可能な消耗品は、真正認証チップを利用する場合もある。複製認証チップ53は、認証呼び出しのため真正チップを使用し、次に、その後の真正認証チップの状態データをシミュレーションする。認証を回避する別の例は、消耗品が使用された後に限りシステムが認証する場合である。複製認証チップは、消耗品の使用後で、認証プロトコルが完了する前に(或いは、開始される前に)コネクションの失敗をシミュレーションすることにより単純な認証回避を実行できる。「ケンタッキーフライドチップ」ハックと呼ばれる悪名の高い攻撃は、衛星テレビジョンシステム用のマイクロコントローラチップを置換する。加入者が受信料の支払いを停止したとき、システムは、「使用不能」メッセージを送出するであろう。しかし、新しいマイクロコントローラは、このメッセージを検出するだけで、それを消費者の衛星テレビジョンシステムへ渡さない。
Avoidance of the entire authentication The authentication protocol can have problems that allow the entire authentication process to be avoided. For this type of attack, the key is completely irrelevant, and the attacker does not need to recover or infer the key. Consider as an example a system that authenticates at power-on but does not authenticate at other times. A reusable consumable including a copy authentication chip may use a genuine authentication chip. The duplicate authentication chip 53 uses the authentic chip for authentication call, and then simulates the status data of the subsequent authentic authentication chip. Another example of avoiding authentication is when the system authenticates only after the consumable is used. The duplicate authentication chip can perform simple authentication avoidance by simulating a connection failure after the consumable is used but before the authentication protocol is completed (or before it is started). A notorious attack called the “Kentucky Fried Chip” hack replaces the microcontroller chip for satellite television systems. When the subscriber stops paying the fee, the system will send an “unavailable” message. However, the new microcontroller only detects this message and does not pass it to the consumer's satellite television system.

強盗/賄賂攻撃
鍵を知っている人は、それを他の誰かに教える可能性がある。この秘密の暴露は、強制(賄賂、強盗等)、報復(例えば、不満を抱いている従業員)、又は単に信条のために行われる。これらの攻撃は、通常、鍵を推測する他の試みよりも安価かつ容易である。一例として、Divx規格の開発に関わることを要求した多数の人々は、近年(1998年5/6月)、Divx仕様解読解読装置の開発に参加したいという趣旨で、即ち、信条によって、多種多様なDVDニュースグループで主張している。
Anyone who knows the robbery / bribery attack key may teach it to someone else. This secret exposure can be done for compulsory (bribery, robbery, etc.), retaliation (eg, dissatisfied employees), or simply because of beliefs. These attacks are usually cheaper and easier than other attempts to guess the keys. As an example, many people who have requested to be involved in the development of the Divx standard have recently (May / June 1998) wished to participate in the development of the Divx specification decryption device, that is, depending on their beliefs Claimed in a DVD newsgroup.

物理的攻撃
以下の攻撃は、攻撃者が物理的にアクセスできるシリコンチップに認証機構が実装されていることを前提としている。最初の攻撃であるROM読み出しは、鍵がROMに保存されているときの攻撃を表し、残りの攻撃は秘密鍵がフラッシュメモリに保存されることを前提としている。
Physical attacks The following attacks are based on the assumption that an authentication mechanism is implemented on a silicon chip that can be physically accessed by an attacker. The first attack, ROM read, represents an attack when the key is stored in ROM, and the remaining attacks assume that the private key is stored in flash memory.

ROM読み出し
鍵がROMに保存されている場合、鍵を直接読み出すことが可能である。ROMは、このように(非対称暗号方式で使用するための)公開鍵を保持するため安全に使用することができるが、秘密鍵を保持するためには使用できない。対称暗号方式では、ROMは全く当てにならない。著作権付きテキスト(例えば、俳句)を鍵として使用することは不十分である。なぜならば、鍵の複製は、知的所有権が遵守されない国で行われることが想定されるからである。
If the ROM read key is stored in ROM, the key can be read directly. A ROM can thus be used safely to hold a public key (for use in asymmetric cryptography), but cannot be used to hold a secret key. In symmetric cryptography, ROM is not at all relevant. Using copyrighted text (eg haiku) as a key is insufficient. This is because it is assumed that the key is duplicated in a country where intellectual property rights are not observed.

チップのリバースエンジニアリング
チップのリバースエンジニアリングでは、攻撃者は、チップを分解し、回路を解析する。回路が解析されてしまうと、チップのアルゴリズムの内部動作を復元することができる。ルーセント・テクノロジー社は、回路を映像化するため、TOBIC(ツー・フォトンOBICの略であり、OBICはOptical
Beam Induced Current光ビーム誘導電流の頭文字である。)と呼ばれるアクティブな方法を開発した。主としてスタティックRAM解析のために開発されたプロセスは、全ての裏材を取り除き、裏面を鏡面仕上げまで磨き、表面に光を集光させる。励起波長は、特にICに電流を誘導しないように選択される。19世紀にケルクホフスは、アルゴリズムの内部動作がスキームの単なる秘密であるならば、スキームは解読されたも同然である、という暗号解読に関する基本的な仮説を立てた。ケルクホフスは、秘密性は完全に鍵の中に存在しなければならない、ということを明記している。その結果として、チップのリバースエンジニアリングに対する最良の保護策は、内部動作を無関係にすることである。
Chip Reverse Engineering In chip reverse engineering, an attacker disassembles the chip and analyzes the circuit. Once the circuit has been analyzed, the internal operation of the chip algorithm can be restored. Lucent Technology is an abbreviation of TOBIC (two-photon OBIC) for visualizing the circuit.
Beam Induced Current Acronym for light beam induced current. ) Developed an active method called. A process developed primarily for static RAM analysis removes all backing, polishes the back to a mirror finish, and focuses light on the surface. The excitation wavelength is specifically selected so as not to induce current in the IC. In the 19th century, Kerkhofs made the basic hypothesis on cryptanalysis that if the internal operation of the algorithm was just a secret of the scheme, the scheme would be as if it had been decrypted. Kerkhofs clarifies that confidentiality must be completely in the key. As a result, the best protection against reverse engineering of the chip is to make internal operations irrelevant.

認証プロセスの不当使用
あらゆる複製品製造者はシステムと消耗品の両方のデザインを入手していることを想定しなければならない。同じチャンネルが、システムと信頼できるシステム認証チップとの間、並びに、信頼できない消耗品認証チップとの間の通信のために使用されるならば、信頼できないチップが「正しい回答」を得るために信頼できるチップに問い合わせをする可能性がある。もしそうであるならば、複製品製造者は鍵を決定する必要がないであろう。彼らは、システム認証チップからの応答を使用してシステムをだますだけでよい。認証プロセスを不当使用する別の方法は、論理的攻撃「認証プロセスの回避」と同じ方法に従って、認証プロセスが行われるとき、システムとの接続の失敗をシミュレーションし、電源遮断等をシミュレーションする。
Unauthorized use of the certification process Every replica manufacturer must assume that both the system and consumable designs are available. If the same channel is used for communication between the system and the trusted system authentication chip, as well as between the unreliable consumables authentication chip, the untrusted chip is trusted to get a “correct answer” There is a possibility to inquire about a possible chip. If so, the replica manufacturer will not need to determine the key. They only need to cheat the system using the response from the system authentication chip. Another method of improperly using the authentication process is to simulate a connection failure with the system and to simulate a power shutdown or the like when the authentication process is performed according to the same method as the logical attack “avoidance of the authentication process”.

システムの変更
この種の攻撃は、システム自体が複製消耗品を受け入れるように変更される攻撃である。攻撃は、システムROMの変更、消耗品の配線し直し、又は極端なケースでは、完全な複製システムである。この種の攻撃は、各個のシステムが変更されることが必要であり、殆どの場合に所有者の承諾が必要であろう。通常は、消費者がこのような変更を行うために明らかな利益が必要である。なぜならば、このような変更は、典型的に、保証を無効にさせ、殆どの場合に費用が掛かるからである。消費者にとって明らかな利益のあるこのような変更の一例は、固定リージョン型DVDプレーヤーをリージョンフリー型DVDプレーヤーに変更するソフトウェアパッチである。
System changes This type of attack is an attack in which the system itself is modified to accept replication consumables. Attacks are system ROM changes, consumable rewiring, or, in extreme cases, a complete replication system. This type of attack requires that each individual system be changed and in most cases will require the consent of the owner. Usually, a clear benefit is needed for consumers to make such changes. This is because such changes typically invalidate the warranty and in most cases are expensive. An example of such a change that would be of obvious benefit to the consumer is a software patch that changes the fixed region DVD player to a region free DVD player.

従来のプロービングによるチップ動作の直接視
チップ動作がSTM又は電子ビームを使用して直接監視できるならば、鍵は、内部不揮発性メモリから読み出され、作業レジスタへ取り込まれるときに記録できる。従来の3形態のプロービングは、ICの通電中にICの上面又は前面に直接アクセスすることが必要である。
If the direct view of chip movement by conventional probing can be directly monitored using STM or electron beam, the key can be recorded as it is read from the internal non-volatile memory and loaded into the working register. Three conventional forms of probing require direct access to the top or front surface of the IC while the IC is energized.

不揮発性メモリの直接視
チップが、フラッシュメモリのフローティングゲートを放電させることなく露出するためにスライスされているならば、鍵は、おそらく、STM又はSKM(走査ケルビン顕微鏡)を使用して直接監視できる。しかし、ゲートを放電させることなくこのレベルでチップをスライスすることはおそらく実施不可能である。湿式エッチング、プラズマエッチング、イオンミリング(集光イオンビームエッチング)、又は化学機械研磨は、ほぼ確実にフローティングゲート上に存在する小さい電荷を放出する。
If the non-volatile memory direct view chip is sliced to expose the flash memory floating gate without discharging, the key can probably be monitored directly using STM or SKM (scanning Kelvin microscope). . However, slicing the chip at this level without discharging the gate is probably not feasible. Wet etching, plasma etching, ion milling (chemical ion beam etching), or chemical mechanical polishing almost certainly releases the small charges present on the floating gate.

状態変化によって生じる光バーストの監視
ゲートの状態が変化するとき、少量の赤外線エネルギーが放出される。シリコンは赤外線透過性であるため、これらの変化はチップの下側から回路を注視することによって観測できる。放出プロセスは弱いが、天文学で使用するために開発された超高感度機器を用いて検出できる程度に輝いている。IBMによって開発されたこの技術は、PICA(ピコセコンド・イメージング・サーキット・アナライザ)と呼ばれる。レジスタの状態が時点tで既知であるならば、レジスタ切り替わり時間の監視によって、時点t+nにおける正確な値が明らかになり、データが鍵の一部分であるならば、その部分は解読される。
A small amount of infrared energy is emitted when the state of the monitoring gate of a light burst caused by a state change changes. Since silicon is transparent to infrared, these changes can be observed by looking at the circuit from the underside of the chip. The emission process is weak but shines to the extent that it can be detected using an ultra-sensitive instrument developed for use in astronomy. This technology developed by IBM is called PICA (picosecond imaging circuit analyzer). If the state of the register is known at time t, monitoring the register switch time reveals the exact value at time t + n, and if the data is part of the key, that part is decrypted.

EMIの監視
電子回路が動作しているときには、かならず微弱な電磁信号が放出される。比較的低価格(数千ドル)装置はこれらの信号を監視できる。これは、攻撃者が鍵を推測するために十分な情報を与える。
When the EMI monitoring electronics are operating, a weak electromagnetic signal is always emitted. A relatively low cost (thousands of dollars) device can monitor these signals. This gives enough information for an attacker to guess the key.

dd変動の監視
鍵を監視できないとしても、レジスタが状態を変化させるときにはかならず電流の変動が生じる。信号対雑音比が十分に高い場合、攻撃者は、ハイビット又はロービットをプログラミングするときに生じるIddの差を監視することができる。Iddの変化は鍵に関する情報を示し得る。このような攻撃は、スマートカードを解読するために既に使用されている。
Even if the monitoring key for the I dd variation cannot be monitored, a current variation always occurs when the register changes state. If the signal-to-noise ratio is high enough, the attacker can monitor the I dd difference that occurs when programming the high or low bit. A change in I dd may indicate information about the key. Such attacks are already used to crack smart cards.

差分故障解析
この攻撃は、イオン化、マイクロ波放射、又は環境ストレスによってビット誤りが取り込まれることを前提としている。殆どのケースでは、このような誤りは、鍵を明らかにするであろう役に立つ変更ではなく、チップに悪影響を与える(例えば、プログラムコードを破壊させる)可能性が高い。ROM上書き、ゲート破壊等のような目標としている故障は、有用な結果を生じる可能性が更に低い。
Differential Fault Analysis This attack assumes that bit errors are captured by ionization, microwave radiation, or environmental stress. In most cases, such an error is not a useful change that would reveal the key, but is likely to adversely affect the chip (eg, destroy program code). Target failures such as ROM overwriting, gate destruction, etc. are even less likely to produce useful results.

クロック誤作動攻撃
チップは、典型的に、一定のクロック速度レンジ内で適切に動作するように設計されている。一部の攻撃者は、チップを非常に高いクロック速度で動作させることによってロジックに故障を生じさせ、又は特定の間隔で特定の時間にクロック誤作動を生じさせることを試みる。このアイデアは、回路が適切に機能しない乱調状態を作ることである。一例として、ANDゲートは、(乱調状態のために)入力と入力の論理積ではなく、常に入力をスルーする。攻撃者がチップの内部構造を知っているならば、攻撃者は、アルゴリズム実行中の正確な時点で乱調状態を取り入れ、これにより、鍵に関する情報を明らかにすることができる(或いは、最悪ケースでは、鍵自体を明らかにする)。
Clock malfunction attack chips are typically designed to operate properly within a certain clock speed range. Some attackers attempt to cause the logic to fail by operating the chip at a very high clock speed, or to cause a clock malfunction at a specific time at specific intervals. The idea is to create a turbulent state where the circuit does not function properly. As an example, an AND gate always passes through input 1 rather than a logical AND of input 1 and input 2 (due to a turbulent state). If the attacker knows the internal structure of the chip, the attacker can take into account a turbulent state at the exact point in time during the algorithm execution, thereby revealing information about the key (or in the worst case) , Reveal the key itself).

電源攻撃
クロック信号に誤動作を引き起こす代わりに、攻撃者は電源に誤動作を生じさせることができ、電力は動作電圧レンジを外れるように増加又は減少させられる。正味の効果はクロック誤動作の場合と同じであり、特定の命令の実行に誤りを生じさせる。このアイデアは、CPUが鍵をXOR演算することを停止させること、又はデータを1ビット位置だけシフトすることを停止させること等である。鍵に関する情報を明らかにするために、特定の命令が目標にされる。
Instead of causing a malfunction in the power attack clock signal, the attacker can cause the power supply to malfunction, and the power is increased or decreased outside the operating voltage range. The net effect is the same as in the case of a clock malfunction, causing an error in the execution of a specific instruction. The idea is to stop the CPU from XORing the key or to stop shifting data by one bit position. Specific instructions are targeted to reveal information about the key.

ROMの上書き
ROMの単一ビットは、レーザーカッター顕微鏡を使用して、ロジックの向きに応じて、1又は0に書き換えることができる。あるオペコード/オペランドのセットがある場合、攻撃者が条件付きジャンプを無条件ジャンプへ書き換えること、又はたぶんレジスタ転送の宛先を変更することは簡単なことである。目標命令が慎重に選択されたならば、鍵が明らかにされるであろう。
A single bit of the ROM overwriting ROM can be rewritten to 1 or 0 depending on the logic orientation using a laser cutter microscope. Given a set of opcodes / operands, it is easy for an attacker to rewrite a conditional jump to an unconditional jump, or perhaps to change the destination of a register transfer. If the target command is carefully selected, the key will be revealed.

EEPROM/フラッシュの変更
EEPROM/フラッシュ攻撃は、ROM攻撃と類似しているが、レーザーカッター顕微鏡技術が個別のビットのセットとリセットの両方に使用できる点で異なる。これは、アルゴリズムの変更の適用範囲を非常に拡大する。
EEPROM / Flash Modifications EEPROM / flash attacks are similar to ROM attacks, except that laser cutter microscopy techniques can be used for both individual bit sets and resets. This greatly expands the scope of algorithm changes.

ゲート破壊
AndersonとKuhnは、BihamとShamirがDESに関する攻撃を発表した高速ソフトウェア暗号化に関する1997年のワークショップのランプセッションで、ゲート破壊を説明している。この攻撃は、従来のブロック暗号(DES)のハードウェア実装内の個々のゲートを破壊するためレーザーカッターを使用するものであった。この攻撃の正味の効果は、レジスタの特定のビットを強制的に「無価値」にすることである。BihamとShamirは、特定のレジスタに強制的にこのような影響を与えることの効果−丸め関数からの出力の最下位ビットが0にセットされる、を説明している。左半分と右半分の最下位6ビットを比較することにより、鍵の数ビットを復元することができる。このようにして多数のチップにダメージを加えると、完全な鍵の復元を容易に行うために、鍵に関する十分な情報を明らかにすることができる。このように変更された暗号化チップは、暗号化と復号化はもはや逆の関係ではなくなるという性質をもつであろう。
Gate Destruction Anderson and Kuhn explain gate destruction in a ramp session of a 1997 workshop on high-speed software encryption that Biham and Shamir announced an attack on DES. This attack used a laser cutter to break individual gates in a hardware implementation of a conventional block cipher (DES). The net effect of this attack is to force certain bits in the register to be “valueless”. Biham and Shamir describe the effect of forcing a particular register to have such an effect—the least significant bit of the output from the rounding function is set to zero. By comparing the least significant 6 bits of the left half and the right half, several bits of the key can be recovered. When a large number of chips are damaged in this way, sufficient information about the key can be revealed to facilitate complete key recovery. An encryption chip modified in this way will have the property that encryption and decryption are no longer reversed.

上書き攻撃
フラッシュメモリを読み出す代わりに、攻撃者は、単に、レーザーカッター顕微鏡を用いて単一ビットをセットする。攻撃者が前の値を知らないとしても、新しい値がわかる。チップが動作し続けるならば、そのビットの元の状態は、新しい状態と同じであるはずである。チップが動作しなくなった場合、そのビットの元の状態は、現在の状態の論理否定NOTである。攻撃者は、鍵の各ビットに対してこの攻撃を実行し、最大でnチップを使用してnビット鍵を獲得することができる(新しいビットが古いビットと一致するならば、新しいビットは次のビットを決定するために必要ではない)。
Instead of reading the overwrite attack flash memory, the attacker simply sets a single bit using a laser cutter microscope. Even if the attacker doesn't know the previous value, the new value is known. If the chip continues to operate, the original state of that bit should be the same as the new state. If the chip ceases to operate, the original state of the bit is a logical NOT NOT of the current state. An attacker can perform this attack on each bit of the key and use up to n chips to obtain an n-bit key (if the new bit matches the old bit, the new bit Not needed to determine the bits).

テスト回路攻撃
殆どの回路は、製造上の欠陥を検査するために特に設計されたテスト回路を備えている。これは、BIST(ビルト・イン・セルフ・テスト)とスキャンパスとを含む。非常に頻繁に、スキャンパス及びテスト回路は、内蔵された全てのラッチへのアクセス及びリードアウト機構を含む。一部のケースでは、テスト回路は特定のレジスタの内容に関する情報を与えるために使用される可能性がある。テスト回路は、しばしば、チップが全ての製造上のテストに合格すると、一部のケースではチップ内の特定の配線を切ることによって、無効状態にされる。しかし、やる気のある攻撃者は、テスト回路を再接続して、動作可能状態にし得る。
Test Circuit Attack Most circuits have a test circuit that is specifically designed to inspect manufacturing defects. This includes BIST (built in self test) and scan path. Very often, scan paths and test circuitry include access and readout mechanisms for all the built-in latches. In some cases, the test circuit may be used to provide information regarding the contents of a particular register. Test circuits are often disabled by cutting certain wires in the chip in some cases once the chip passes all manufacturing tests. However, a motivated attacker can reconnect the test circuit to make it operational.

残留メモリ
値は、電源が取り外された後、長期間RAMに残存するが、不揮発性とみなされるまで長期間残存することはない。攻撃者は、機密情報がRAM(例えば、作業用レジスタ)へ移された後、電源を取り外し、RAMから値を読み出そうとすることが可能である。この攻撃は、通常のRAMチップを有するセキュリティシステムに対して最も有効である。典型的な例として、セキュリティシステムは、コンピュータケースが開けられたときにトリガーされる自動電源遮断機能付きで設計されていた。攻撃者は、単にケースを開け、RAMチップを取り外し、メモリ残留を利用して鍵を取り出せばよかった。
The residual memory value remains in the RAM for a long time after power is removed, but does not remain for a long time until it is considered non-volatile. The attacker can remove the power supply and read the value from the RAM after the confidential information is transferred to the RAM (eg, working register). This attack is most effective for a security system having a normal RAM chip. As a typical example, the security system was designed with an automatic power shutdown function that is triggered when the computer case is opened. The attacker simply opened the case, removed the RAM chip, and used the remaining memory to retrieve the key.

チップ窃盗攻撃
認証チップの耐用期間に多数のステージが存在する場合、これらのステージの各々は、チップが盗み取られた場合のセキュリティ用の派生問題の観点で調べる必要がある。例えば、情報が複数のステージでチップにプログラミングされる場合、ステージ間でチップを窃盗したならば、攻撃者は鍵情報を入手できるか、又は攻撃のための労力が軽減される可能性がある。同様に、チップが、製造直後であり、プログラミングの前に盗み取られた場合、攻撃者に論理的利益又は物理的利益があるだろうか?
必要条件
消耗品を認証する問題に対する従来のソリューションは、典型的に、物理的なパッケージングについての特許に依存している。しかし、これは、家庭での詰め替え作業や産業財産権の保護の弱い国における複製品製造を止められない。その結果、より高レベルの保護が必要である。したがって、認証メカニズムは、システムが消耗品を安全かつ容易に認証できるようにする認証チップ53内に構築される。ここでは、消耗品を認証するシステムだけに限定すると(システムを認証する消耗品については考えない)、次の2レベルの保護を考えることができる:
プレゼンスオンリー認証
この場合、認証チップが存在することだけがテストされる。認証チップは、最プログラミングすることなく、別の消耗品で再使用することができる;
消耗品ライフタイム認証
この場合、認証チップの存在がテストされるだけではなく、認証チップ53は、消耗品の耐用期間に限り持続しなければならない。チップを再使用する場合、チップは、完全に消去され、再プログラミングされなければならない。これらの二つの保護レベルは、異なる必要条件を取り扱う。ここでは、主に、大量生産消耗品の複製品を防止するため、消耗品ライフタイム認証に関心がある。このケースでは、各チップは、認証対象である消耗品に関するセキュア状態情報を保持しなければならない。尚、消耗品ライフタイム認証チップは、プレゼンスオンリー認証チップを必要とするあらゆる状況で使用できることに注意する必要がある。認証の必要条件、データ記憶完全性の必要条件、及び製造の必要条件は、別々に検討すべきである。以下のセクションは各々の必要条件を簡単に説明する。
If there are multiple stages in the lifetime of a chip theft attack authentication chip, each of these stages needs to be examined in terms of security derivation issues if the chip is stolen. For example, if the information is programmed into the chip at multiple stages, the attacker may obtain key information or reduce the effort for the attack if the chip is stolen between stages. Similarly, if the chip is just manufactured and stolen before programming, will there be a logical or physical benefit to the attacker?
Conventional solutions to the problem of authenticating consumables typically rely on patents for physical packaging. However, this does not stop replicating in countries where household refilling and industrial property rights are weak. As a result, a higher level of protection is required. Thus, the authentication mechanism is built in an authentication chip 53 that allows the system to authenticate consumables safely and easily. Here, if limited to only systems that authenticate consumables (not considering consumables that authenticate the system), two levels of protection can be considered:
Presence-only authentication In this case, only the presence of an authentication chip is tested. The authentication chip can be reused with another consumable without reprogramming;
Consumable lifetime authentication In this case, not only is the presence of the authentication chip tested, but the authentication chip 53 must last only for the lifetime of the consumable. If the chip is reused, the chip must be completely erased and reprogrammed. These two protection levels handle different requirements. Here, we are primarily interested in consumable lifetime authentication to prevent duplicates of mass-produced consumables. In this case, each chip must maintain secure state information regarding the consumable item to be authenticated. Note that the consumable lifetime authentication chip can be used in any situation that requires a presence-only authentication chip. Authentication requirements, data storage integrity requirements, and manufacturing requirements should be considered separately. The following sections briefly explain each requirement.

認証
プレゼンスオンリー認証と消耗品ライフタイム認証の両方に対する認証必要条件は、システムが消耗品を認証するケースに限定される。プレゼンスオンリー認証の場合、認証チップが物理的に存在することが保証されなければならない。消耗品ライフタイム認証の場合、状態データが実際に認証チップに由来すること、及び状態データが途中で改ざんされていないこと、が保証される必要がある。これらの問題は切り離すことができず、改ざんされたデータは新しい送信元からのものであり、送信元を判定できない場合、改ざんの問題を解決できない。機密性があり、セキュリティ専門家によって精査されていない自家製のセキュリティ法に基づく認証方法を提供するだけでは不十分である。したがって、主要な必要条件は、専門家の精査に耐えた手段による認証を提供することである。認証チップ53によって使用される認証スキームは、論理的手段による打破に抵抗できなければならない。論理的タイプの攻撃は費用が掛かり、次の三つの事柄:
認証プロセスを完全に回避する;
あらゆる質問に回答できるように、力ずく又は推論によって秘密鍵を取得する;
鍵を用いることなく各質問に正しい回答を与えるため、認証用の質問及び回答の性質を十分に検出する;
のうちの一つを実行しようとする。
Authentication requirements for both authentication presence-only authentication and consumable lifetime authentication are limited to cases where the system authenticates consumables. For presence-only authentication, it must be ensured that the authentication chip is physically present. In the case of consumable lifetime authentication, it is necessary to ensure that the status data is actually derived from the authentication chip and that the status data has not been tampered with. These problems cannot be separated, and the falsified data is from a new transmission source. If the transmission source cannot be determined, the falsification problem cannot be solved. It is not enough to provide authentication methods based on home-grown security laws that are confidential and not scrutinized by security experts. Thus, a key requirement is to provide authentication by means that have endured expert scrutiny. The authentication scheme used by the authentication chip 53 must be able to resist breaking by logical means. The logical type of attack is expensive and has three things:
Completely avoid the authentication process;
Obtain a private key by force or reasoning so that any question can be answered;
Fully detect the nature of the authentication question and the answer to give each question the correct answer without using a key;
Try to do one of them.

データ記憶完全性
認証プロトコルは、通信されるメッセージ中のデータ完全性の保証に対押しているが、データ記憶完全性も必要である。次の2種類のデータ:
秘密鍵のような認証データ;
シリアル番号及びメディア残量等の消耗品状態データ;
を認証チップ内に記憶しなければならない。
Although the data storage integrity authentication protocol counters the guarantee of data integrity in communicated messages, data storage integrity is also required. The following two types of data:
Authentication data such as a private key;
Consumables status data such as serial number and media remaining amount;
Must be stored in the authentication chip.

これらの二つのデータタイプのアクセス必要条件は全く異なる。したがって、認証チップ53は、各タイプの完全性必要条件を考慮する記憶/アクセス制御メカニズムを必要とする。 The access requirements for these two data types are quite different. Accordingly, the authentication chip 53 requires a storage / access control mechanism that takes into account each type of integrity requirement.

認証データ
認証データは機密保持されなければならない。認証データは、チップの耐用期間の製造/プログラミングステージの間にチップに記憶される必要があるが、それ以降、チップから取り出されることは許可されるべきではない。認証データは、不揮発性メモリから読み出されることに対抗できなければならない。認証スキームは鍵が推論によって取得できないことを保証する役目があり、製造プロセスは鍵が物理的手段によって取得できないことを保証する役目がある。認証データ記憶エリアのサイズは、必要な鍵、及び認証プロトコルによって義務づけられるような秘密情報を保持するために十分な大きさでなければならない。
Authentication data Authentication data must be kept confidential. The authentication data needs to be stored on the chip during the manufacturing / programming stage of the chip's lifetime, but should not be allowed to be retrieved from the chip thereafter. Authentication data must be able to resist being read from non-volatile memory. The authentication scheme serves to ensure that the key cannot be obtained by inference, and the manufacturing process serves to ensure that the key cannot be obtained by physical means. The size of the authentication data storage area must be large enough to hold the necessary keys and confidential information as required by the authentication protocol.

消耗品状態データ
各認証チップ53は、消耗品状態データのうちの256ビット(32バイト)を記憶できる。消耗品状態データは以下のタイプに分類される。アプリケーションに依存して、以下のタイプのデータ項目の各々の数は異なる。単一のデータ項目に対する最大数は32ビットであると仮定する:
リードオンリー;
リードライト;
デクリメントオンリー。
Consumable Status Data Each authentication chip 53 can store 256 bits (32 bytes) of the consumable status data. The consumable status data is classified into the following types. Depending on the application, the number of each of the following types of data items is different: Assume that the maximum number for a single data item is 32 bits:
Read only;
Read / write;
Decrement only.

リードオンリーデータは、チップの耐用期間の製造/プログラミングステージの間にチップに保存できなければならないが、それ以降、変更を許されるべきではない。リードオンリーデータの例は、消耗品バッチ番号及びシリアル番号である。 Read-only data must be able to be stored on the chip during the manufacturing / programming stage of the chip's lifetime, but no further changes should be allowed. Examples of read-only data are consumable batch numbers and serial numbers.

リードライトデータは、変更可能な状態情報であり、例えば、特定の消耗品が使用された最後の時間である。リードライトデータ項目は、消耗品の耐用期間中、無制限の回数で読み書きをすることができる。それらは、消耗品に関するあらゆる状態情報を記憶するため使用できる。このデータに対する唯一の必要条件は、不揮発性メモリに保持されるべきである、ということである。攻撃者はシステムへのアクセス権を獲得し得るので(リードライトデータへの書き込みが可能であり)、攻撃者はこのタイプのデータフィールドを変更する可能性がある。このデータタイプは秘密情報のために使用されるべきではなく、不確かであると考えるべきである。 The read / write data is state information that can be changed, and is, for example, the last time when a specific consumable was used. Read / write data items can be read and written an unlimited number of times during the life of the consumables. They can be used to store any state information about the consumables. The only requirement for this data is that it should be kept in non-volatile memory. Since an attacker can gain access to the system (write to read / write data is possible), the attacker may change this type of data field. This data type should not be used for confidential information and should be considered uncertain.

デクリメントオンリーデータは、消耗品リソースの利用可能度をカウントダウンするため使用される。例えば、コピー機のトナーカートリッジは、デクリメントオンリーデータ項目としてトナー残量を記憶する。カラープリンタ用のインクカートリッジは、各インク色の量をデクリメントオンリーデータ項目として記憶し、3個(シアン、マゼンタ及びイエローの各々に1個ずつ)、又は5から6個のデクリメントオンリーデータ項目を必要とする。この種のデータ項目の必要条件は、一旦、製造/プログラミングステージで初期値を用いてプログラミングされると、値を減少させることだけが可能である、ということである。それは、最小値に達すると、それ以上は減少し得ない。デクリメントオンリーデータ項目は、消耗品ライフタイム認証だけで必要になる。 Decrement-only data is used to count down the availability of consumable resources. For example, the toner cartridge of the copier stores the remaining amount of toner as a decrement-only data item. Ink cartridges for color printers store the amount of each ink color as a decrement-only data item and require three (one for each of cyan, magenta, and yellow), or five to six decrement-only data items And The requirement for this type of data item is that once programmed at the manufacturing / programming stage with initial values, it is only possible to reduce the values. It cannot decrease any further once the minimum value is reached. Decrement-only data items are required only for consumable lifetime authentication.

製造
認証チップ53は、理想的には、低価格消耗品の認証メカニズムとして組み込むことができるように低製造コストであるべきである。認証チップ53は、フラッシュのような標準的な製造プロセスを使用すべきである。これは:
製造場所の非常に広範囲の選択を可能にさせること;
明確であり、且つ正常に動作するテクノロジーを使用すること;
コストを低減すること;
が必要である。
The manufacturing authentication chip 53 should ideally be low manufacturing cost so that it can be incorporated as an authentication mechanism for low cost consumables. The authentication chip 53 should use a standard manufacturing process such as flash. this is:
Allow a very wide selection of manufacturing locations;
Use clear and working technology;
Reducing costs;
is required.

使用される認証スキームとは無関係に、チップの認証部の回路は物理的攻撃に対抗できなければならない。物理的な攻撃は、以下の4つの主要な形で現れるが、攻撃の形態は変化し得る:
認証チップを完全に回避する;
動作中にチップを物理的に検査する(破壊的及び非破壊的);
チップを物理的に分解する;
チップを物理的に改変する。
Regardless of the authentication scheme used, the chip's authenticator circuit must be able to resist physical attacks. Physical attacks appear in four main forms, but the form of attack can vary:
Avoid authentication chips completely;
Physical inspection of the chip during operation (destructive and non-destructive);
Physically disassembling the chip;
The chip is physically modified.

理想的には、チップは米国から持ち出せるべきであるので、認証チップ53をセキュア暗号化装置として使用可能であってはならない。これは優先度の低い必要条件である。なぜならば、他の国にも認証チップを製造し得る多数の企業が存在するからである。いずれにせよ、米国からの国外持ち出し規制は変わり得る。 Ideally, the authentication chip 53 should not be usable as a secure encryption device because the chip should be taken out of the United States. This is a low priority requirement. This is because there are many companies that can manufacture authentication chips in other countries. In any case, export restrictions from the United States can change.

認証
消耗品を認証する問題に対する従来のソリューションは、典型的に、物理的なパッケージングについての特許に依存している。しかし、これは、家庭での詰め替え作業や産業財産権の保護の弱い国における複製品製造を止められない。したがって、より高レベルの保護が必要である。機密性があり、セキュリティ専門家によって精査されていない自家製のセキュリティ法に基づく認証方法を提供するだけでは不十分である。ネットスケープの最初の独自に開発したシステム、及び携帯電話で私用されるGSM不正防止ネットワークは、設計秘密主義によって生じたセキュリティの脆弱性である。両方のセキュリティシステムは、それらの企業がオープン設計プロセスに従っていたならば検出できたであろう従来の手段によって破られた。ソリューションは、専門家の精査に耐えた手段による認証を提供することである。多数のプロトコルを消耗品認証のために使用することが可能である。ここでは、公表されたセキュリティ方法だけを使用し、この新しい方法によって知られた動作を使用する。全てのプロトコルにおいて、スキームの安全性は、秘密アルゴリズムではなく、秘密鍵に依拠する。プロトコルの全ては、時変性チャレンジ(即ち、毎回異なるチャレンジ)に依存し、レスポンスはチャレンジと秘密情報に依存する。チャレンジは乱数を含むので、観測者は後続のアイデンティフィケーションに関する有益な情報を集めることができない。プレゼンスオンリー認証と消耗品ライフタイム認証の各々のために二つのプロトコルが提案される。プロトコルは認証プロセスのために必要な認証チップの個数が異なるが、全てのケースで、システムは消耗品を認証する。ある種のプロトコルは、1個又は2個のチップで動作するが、他のプロトコルは2個のチップだけで動作する。使用される認証チップが1個であるか2個であるかとは無関係に、システムは認証判定を行う役割を担う。
Conventional solutions to the problem of authenticating certified consumables typically rely on patents for physical packaging. However, this does not stop replicating in countries where household refilling and industrial property rights are weak. Therefore, a higher level of protection is required. It is not enough to provide authentication methods based on home-grown security laws that are confidential and not scrutinized by security experts. Netscape's first independently developed system and the GSM fraud prevention network used privately by mobile phones are security vulnerabilities created by design secrecy. Both security systems were broken by conventional means that would have been able to be detected if those companies were following an open design process. The solution is to provide authentication by means of withstanding expert scrutiny. A number of protocols can be used for consumable authentication. Here we use only the published security method and use the actions known by this new method. In all protocols, the security of the scheme relies on a secret key, not a secret algorithm. All of the protocols depend on time-varying challenges (i.e. different challenges each time) and the response depends on the challenge and the secret information. Because the challenge includes a random number, the observer cannot collect useful information about subsequent identification. Two protocols are proposed for each of presence-only authentication and consumable lifetime authentication. The protocol differs in the number of authentication chips required for the authentication process, but in all cases the system authenticates the consumable. Some protocols operate on one or two chips, while other protocols operate on only two chips. Regardless of whether one or two authentication chips are used, the system is responsible for making an authentication decision.

シングルチップ認証
唯一の認証チップ53が認証プロトコルのために使用される場合、単一チップ(チップAと呼ぶ)は、システム(システムと呼ぶ)に対し、チップAが真正であることを伝える責任がある。プロトコルの開始時に、システムは、チップAの真正性を確信できない。システムは、チップAとチャレンジ−レスポンスプロトコルを実行し、チップの真正性を判定する。全てのプロトコルにおいて、消耗品の真正性は、チップの真正性に直接的に基づいている。即ち、チップAが真正であるとみなされるならば、消耗品も真正であるとみなされる。データフローは図167に示されている。シングルチップ認証プロトコルの場合、システムは、ソフトウェア、ハードウェア、又は両者の組み合わせのどれでもよい。重要なことは、システムは安全ではなく、攻撃者がROMを調べることによって、又は回路を調べることによって容易にリバースエンジニアリングをすることができる、ということである。システムは、それ自体で安全になるようには特に設計されていない。
Single Chip Authentication When a single authentication chip 53 is used for the authentication protocol, the single chip (referred to as chip A) is responsible for telling the system (referred to as system) that chip A is authentic. is there. At the start of the protocol, the system cannot be sure of the authenticity of chip A. The system performs a challenge-response protocol with chip A to determine the authenticity of the chip. In all protocols, the authenticity of the consumable is directly based on the authenticity of the chip. That is, if the chip A is considered authentic, the consumable is also considered authentic. The data flow is shown in FIG. In the case of a single chip authentication protocol, the system can be software, hardware, or a combination of both. Importantly, the system is not secure and an attacker can easily reverse engineer by examining the ROM or by examining the circuit. The system is not specifically designed to be secure by itself.

ダブルチップ認証
別のプロトコルでは、2個の認証チップが図168に示されるように必要になる。単一のチップ(チップA)は、システム(システムと呼ぶ)に対し、チップAが真正であることを伝える責任がある。認証プロセスの一部として、システムは、信頼できる認証チップ(チップTと呼ぶ)を利用する。ダブルチップ認証プロトコルでは、システムは、ソフトウェア、ハードウェア、又は両者の組み合わせのどれでもよい。しかし、チップTは物理的な認証チップでなければならない。あるプロトコルでは、チップT及びチップAは同じ内部構造を備え、他のプロトコルでは、チップT及びチップAは異なる内部構造を備えている。
In the protocol different from the double chip authentication, two authentication chips are required as shown in FIG. A single chip (chip A) is responsible for telling the system (called system) that chip A is authentic. As part of the authentication process, the system utilizes a trusted authentication chip (referred to as chip T). In a double chip authentication protocol, the system can be software, hardware, or a combination of both. However, the chip T must be a physical authentication chip. In some protocols, chip T and chip A have the same internal structure, and in other protocols, chip T and chip A have different internal structures.

プレゼンスオンリー認証(不確かな状態データ)
このレベルの消耗品認証の場合、認証チップ53の存在を確認することだけに関心がある。認証チップは状態情報を格納し得るが、その状態情報の伝送は安全であるとは考えられない。二つのプロトコルが提案される。プロトコル1は2個の認証チップが必要であり、プロトコル2は1個又は2個の認証チップを使用して実現可能である。
Presence-only authentication (uncertain status data)
In this level of consumables authentication, we are only interested in confirming the presence of the authentication chip 53. Although the authentication chip can store state information, the transmission of the state information is not considered secure. Two protocols are proposed. Protocol 1 requires two authentication chips, and protocol 2 can be implemented using one or two authentication chips.

プロトコル1
プロトコル1はダブルチッププロトコルである(2個の認証チップが必要になる)。各認証チップは以下の値を格納する:
K F[X]用の鍵。秘密でなければならない;
R 現在の乱数。秘密でなくてもよいが、チップインスタンス毎に異なる初期値でシードされなければならない。Random関数の呼び出し毎に変化する。
Protocol 1
Protocol 1 is a double chip protocol (two authentication chips are required). Each authentication chip stores the following values:
Key for K F K [X]. Must be secret;
R Current random number. It does not have to be secret, but it must be seeded with a different initial value for each chip instance. It changes every time the Random function is called.

各認証チップは以下の論理関数を格納する:
Random[] Rを返し、Rをシーケンス内で次へ進める;
F[X] 一方向関数Fを秘密鍵Kに基づいてXに適用した結果であるF[X]を返す。
Each authentication chip stores the following logical functions:
Random [] Returns R and advances R in the sequence;
F [X] Returns F K [X], which is the result of applying the one-way function F to X based on the secret key K.

プロトコルは以下の通りである:
システムはチップTからのRandom[]を要求する;
チップTはRをシステムへ返す;
システムはチップT及びチップAの両方からのF[R]を要求する;
チップTはFKT[R]をシステムへ返す;
チップAはFKA[R]をシステムへ返す;
システムは、FKT[R]をFKA[R]と比較する。それらが一致しているならば、チップAは有効であるとみなされる。一致しないならば、チップAは無効であるとみなされる。
The protocol is as follows:
The system requests Random [] from chip T;
Chip T returns R to the system;
The system requires F [R] from both chip T and chip A;
Chip T returns F KT [R] to the system;
Chip A returns F KA [R] to the system;
The system compares F KT [R] with F KA [R]. If they match, chip A is considered valid. If they do not match, chip A is considered invalid.

データフローは図169に示されている。システムは、F[R]メッセージを理解する必要がない。システムは、チップAからの応答とチップTからの応答が同じであることをチェックするだけでよい。したがって、システムは鍵を必要としない。プロトコル1の安全性は以下の2カ所にある:
F[X]の安全性。認証チップだけが秘密鍵を格納するので、
信頼できる認証チップ53(チップT)によって生成されたF[X]と一致するF[X]をXから生成し得るチップは真正に違いない;
全ての認証チップによって生成されたRのドメインは大きく、非決定論的である筈である。全ての認証チップによって生成されたRのドメインが小さいならば、複製品製造者は鍵を解読しなくてもよい。その代わりに、複製品製造者は、システムによって送信されたコードに対する純正チップからのレスポンスの全てが記録されたROMを自分のチップに組み込むことができる。Random関数は厳密に認証チップ内に収容しなくてもよい。なぜならば、システムは、同じ乱数シーケンスを生成する可能性を秘めているからである。しかし、それは、システムの設計を簡単化し、乱数生成器の安全性が認証チップを使用する全ての実装形態に対して同一であり、システム実装においてエラーが起こる可能性を減少させる。
The data flow is shown in FIG. The system does not need to understand the F K [R] message. The system need only check that the response from chip A and the response from chip T are the same. Thus, the system does not require a key. Protocol 1 is secure in two places:
Safety of F [X]. Since only the authentication chip stores the private key,
There must be an authentic chip that can generate F [X] from X that matches F [X] generated by the trusted authentication chip 53 (chip T);
The domain of R generated by all authentication chips should be large and non-deterministic. If the R domain generated by all the authentication chips is small, the replica manufacturer need not decrypt the key. Instead, the replica manufacturer can incorporate in his chip a ROM in which all the responses from the genuine chip to the code sent by the system are recorded. The Random function may not be strictly stored in the authentication chip. This is because the system has the potential to generate the same random number sequence. However, it simplifies the design of the system and the security of the random number generator is the same for all implementations that use the authentication chip, reducing the possibility of errors in the system implementation.

プロトコル1には複数の利点がある:
Kは認証プロセス中に明らかにされることがない;
Xが与えられたとき、複製チップは、Kを用いないで、又は実際の認証チップへアクセスしないで、F[X]を生成できない;
システムは、特に、インクジェットプリンタのような低価格システムにおいて容易に設計できる。なぜならば、暗号化又は復号化がシステム自体によって要求されないからである;
広範囲の鍵付き一方向関数が存在し、対称暗号化、乱数シーケンス、及びメッセージ認証コードが含まれる;
一方向関数は必要なゲート数が少なく、非対称アルゴリズムよりも簡単に検証することができる;
鍵付き一方向関数のための安全な鍵サイズは、非対称(公開鍵)アルゴリズムの場合と同程度に大きくする必要がない;
F[X]が対称暗号化関数であるならば、最小限の128ビットは、適切な安全性を提供することができる。
Protocol 1 has several advantages:
K is not revealed during the authentication process;
Given X, the replica chip cannot generate F K [X] without using K or accessing the actual authentication chip;
The system can be easily designed, especially in low cost systems such as inkjet printers. Because encryption or decryption is not required by the system itself;
There is a wide range of keyed one-way functions, including symmetric encryption, random number sequences, and message authentication codes;
One-way functions require fewer gates and are easier to verify than asymmetric algorithms;
The secure key size for a keyed one-way function does not need to be as large as for an asymmetric (public key) algorithm
If F [X] is a symmetric encryption function, a minimum of 128 bits can provide adequate security.

しかし、このプロトコルには問題がある:
これは選択テキスト攻撃の対象になりやすい。攻撃者は、チップを自分専用のシステムにプラグインし、選択されたRを生成、出力を観測することができる。鍵を見つけるため、攻撃者は、特定のF[M]を生成するRを探索することも可能である。なぜならば、多数の認証チップを並列にテストできるからである;
選択された一方向関数に応じて、鍵生成は複雑化し得る。よい鍵を選択する方法は、使用されるアルゴリズムに依存する。ある種の鍵は一定のアルゴリズムに対して弱い;
鍵付き一方向関数の選択自体は重要ではない。特許保護に由来するライセンスを必要とする場合もある。
But there are problems with this protocol:
This is subject to selected text attacks. The attacker can plug the chip into his own system, generate the selected R, and observe the output. To find the key, the attacker can also search for R that generates a particular F [M]. Because many authentication chips can be tested in parallel;
Depending on the selected one-way function, key generation can be complicated. The method of choosing a good key depends on the algorithm used. Certain keys are weak against certain algorithms;
The choice of the keyed one-way function itself is not important. In some cases, a license derived from patent protection is required.

媒介物は、平文メッセージMをチップAへ渡す前に平文メッセージMに作用することが可能であり、これは、チップAがMを見るまで媒介物がMを見ない場合には好ましい。媒介物がMを全く見ない場合にはより好ましい。 The intermediary can act on the plaintext message M before passing the plaintext message M to chip A, which is preferred if the intermediary does not see M until chip A sees M. It is more preferable when the mediator does not see M at all.

Fが対称暗号化である場合、適切なセキュリティのために必要な鍵サイズのため、チップは米国から国外へ持ち出せない。なぜならば、チップは強い暗号化装置として使用できるからである。 If F is symmetric encryption, the chip cannot be taken out of the United States due to the key size required for proper security. This is because the chip can be used as a strong encryption device.

プロトコルが非対称暗号アルゴリズムとしてFを用いて実現されるならば、対称の場合を上回る利点は無く、鍵をより長くする必要があり、シリコン内の暗号化アルゴリズムがより高価になる。プロトコル1は、鍵の安全性を維持するため、2個の認証チップを用いて実現しなければならない。すなわち、各システムは認証チップが必要であり、各消耗品は認証チップが必要である。 If the protocol is implemented using F as an asymmetric cryptographic algorithm, there is no advantage over the symmetric case, the key needs to be longer and the encryption algorithm in silicon is more expensive. Protocol 1 must be implemented using two authentication chips to maintain key security. That is, each system requires an authentication chip, and each consumable needs an authentication chip.

プロトコル2
あるケースでは、システムは大規模の処理能力を備えている。或いは、例えば、大量に製造されたシステムの場合、チップTをシステムに統合することは望ましい。非対称暗号アルゴリズムの使用によって、システムのチップT部を不確かにすることが許容される。したがって、プロトコル2は非対称暗号方式を使用する。このプロトコルの場合、各チップは以下の値を格納する:
K E[X]及びD[X]用の鍵である。チップA内で秘密にされるべきである。チップT内で秘密にする必要がない;
R 現在の乱数。秘密でなくてもよいが、チップインスタンス毎に異なる初期値でシードされなければならない。Random関数の呼び出し毎に変化する。
Protocol 2
In some cases, the system has a large processing capacity. Or, for example, in the case of a system manufactured in large quantities, it is desirable to integrate the chip T into the system. The use of an asymmetric cryptographic algorithm allows the chip T portion of the system to be uncertain. Therefore, protocol 2 uses an asymmetric cryptosystem. For this protocol, each chip stores the following values:
It is a key for K E K [X] and D K [X]. Should be kept secret in chip A. There is no need to keep it secret in chip T;
R Current random number. It does not have to be secret, but it must be seeded with a different initial value for each chip instance. It changes every time the Random function is called.

以下の関数が定義される:
E[X] チップTだけ。E[X]を返す。但し、Eは非対称暗号化関数Eである;
D[X] チップAだけ。D[X]を返す。但し、Dは非対称暗号化関数Dである;
Random[] チップTだけ。R|E[R]を返す。RはシードSに基づく乱数である。乱数シーケンス内でRを次へ進める。
The following functions are defined:
E [X] Only chip T. Returns E K [X]. Where E is the asymmetric encryption function E;
D [X] Only chip A. Returns D K [X]. Where D is an asymmetric encryption function D;
Random [] Only chip T. R | E K [R] is returned. R is a random number based on the seed S. Advance R in the random sequence.

公開鍵KはチップT内にあり、一方、秘密鍵KはチップAにある。KがチップTにあることは、チップTをソフトウェア又はハードウェアで実現できるという利点がある(但し、Rのシードはチップ又はシステム毎に異なる)。したがっって、プロトコル2は、シングルチッププロトコルとしてもダブルチッププロトコルとしても実現できる。認証のためのプロトコルは以下の通りである:
システムはチップTのRandom関数を呼び出す;
チップTはR|EKT[R]をシステムへ返す;
システムはチップAの関数Dを呼び出し、EKT[R]を渡す;
チップAは、DKA[EKT[R]]によって獲得されたRを返す;
システムは、チップAからのRとチップTによって生成された元のRを比較する。それらが一致しているならば、チップAは有効であるとみなされる。一致しないならば、チップAは無効であるとみなされる。
Public key K T is in the chip T, on the other hand, there is the secret key K A chip A. The K T is in the tip T has an advantage of realizing a tip T in software or hardware (provided that seed R is different for each chip or system). Therefore, protocol 2 can be realized as a single chip protocol or a double chip protocol. The protocol for authentication is as follows:
The system calls the Random function of chip T;
Chip T returns R | E KT [R] to the system;
The system calls function A on chip A and passes E KT [R];
Chip A returns R acquired by D KA [E KT [R]];
The system compares R from chip A with the original R generated by chip T. If they match, chip A is considered valid. If they do not match, chip A is considered invalid.

データフローは図170に示されている。プロトコル2には次の利点がある:
(秘密鍵)は認証プロセス中に明らかにされることがない;
KT[X]が与えられたとき、複製チップは、Kを用いないで、又は実際のチップAへアクセスすることなく、Xを生成できない;
≠Kであるため、チップTは、完全にソフトウェアで、不確かなハードウェアで、又はシステムの一部として実現できる。チップA(消耗品内)だけが安全な認証チップであることを要求される;
チップTが物理的なチップであるならば、システムは容易に設計できる;
多数の十分に文書化され暗号解読された非対称アルゴリズムの中から、特許が開放されライセンスフリーであるソリューションを含む、インプリメンテーション用のアルゴリズムを選択することができる。
The data flow is shown in FIG. Protocol 2 has the following advantages:
K A (private key) is not revealed during the authentication process;
When E KT [X] is given, replication chip without using a K A, or without access to the actual chip A, can not generate X;
Since K T ≠ K A , the chip T can be realized entirely in software, with uncertain hardware, or as part of a system. Only chip A (in the consumable) is required to be a secure authentication chip;
If chip T is a physical chip, the system can be easily designed;
From among a large number of well documented and decrypted asymmetric algorithms, one can select algorithms for implementation, including solutions that are patent free and license free.

しかし、プロトコル2には多数の固有の問題がある:
十分な安全性のため、各鍵は2048ビットにする必要がある(これに対して、プロトコル1の対称暗号方式の場合、最小値は128ビットである)。暗号化及び復号化アルゴリズムによって使用される関連した中間メモリは、相応に大きくなる;
鍵生成は重要である。乱数は優れた鍵ではない;
チップTがコアとして実装された場合、チップTを所与のシステムASICに連結することが難しい;
チップTがソフトウェアとして実装された場合、システムの実装がプログラミングエラー及び厳密ではないテストに対して無防備であるだけではなく、コンパイラ及び数学的プリミティブの完全性をシステムのインプリメンテーション毎に厳密にチェックしなければならない。これは、単純に十分にテストされたチップを使用する場合よりも複雑であり、且つコスト高である;
多数の対称アルゴリズムが特に差分暗号解読(選択テキスト攻撃に基づいている)に対抗するため強化されているにもかかわらず、秘密鍵Kは選択テキスト攻撃の対象になりやすい;
チップA及びチップTが同じ認証チップのインスタンスである場合、各チップは、非対称暗号化及び復号化の両方の機能を備える必要がある。その結果として、各チップは、プロトコル1のために必要なチップよりも大型化し、複雑化し、高価になる;
認証チップが、コストを節約し、設計/テストの複雑さを低減するため2個のチップに分割された場合、2個のチップを依然として製造する必要があり、スケールメリットが減少する。これは、システムの消耗品に対する相対的な個数によって相殺されるが、依然として考慮することが必要である;
プロトコル2の認証チップは、米国から国外へ持ち出すことができない。なぜならば、それらは、強力な暗号化装置であるとみなされるからである。
However, protocol 2 has a number of inherent problems:
For sufficient security, each key needs to be 2048 bits (in contrast, for protocol 1 symmetric cryptography, the minimum is 128 bits). The associated intermediate memory used by the encryption and decryption algorithms will be correspondingly larger;
Key generation is important. Random numbers are not good keys;
When chip T is implemented as a core, it is difficult to couple chip T to a given system ASIC;
When chip T is implemented as software, not only is the system implementation vulnerable to programming errors and less rigorous testing, but the integrity of the compiler and mathematical primitives is strictly checked for each system implementation. Must. This is more complex and costly than simply using a well-tested chip;
Numerous symmetric algorithm Despite the enhanced especially differential cryptanalysis (selected text attack by being based) To order counter, easily subject to the secret key K A is selected text attack;
If chip A and chip T are instances of the same authentication chip, each chip needs to have both asymmetric encryption and decryption functions. As a result, each chip is larger, more complex and more expensive than the chip required for protocol 1;
If the authentication chip is split into two chips to save cost and reduce design / test complexity, the two chips still need to be manufactured, reducing the scale merit. This is offset by the relative number of consumables in the system, but still needs to be considered;
Protocol 2 authentication chips cannot be taken out of the United States. Because they are considered strong encryption devices.

たとえ、プロトコル2用の鍵を選択するプロセスが簡単であるとしても、プロトコル2は、(鍵サイズ及び機能的実装の両方の)シリコン実装のコストが高いため、現時点では実際的ではない。したがって、プロトコル1がプレゼンスオンリー認証のためのプロトコルとして選択される。 Even if the process of selecting a key for protocol 2 is simple, protocol 2 is not practical at this time due to the high cost of silicon implementation (both key size and functional implementation). Therefore, protocol 1 is selected as the protocol for presence-only authentication.

本物の認証チップを使用する複製消耗品
プロトコル1及び2は、チップAが本物の認証チップであるかどうかをチェックするだけである。それらは、消耗品自体が有効であるかどうかを調べるためのチェックを行わない。認証に関する基本的な前提として、チップAが有効であるならば、消耗品は有効である。したがって、複製品製造者は本物の認証チップを複製消耗品に挿入することが可能である。以下の二つのケースを検討する:
状態データが認証チップに書き込まれないケースでは、チップは完全に再使用可能である。したがって、複製品製造者は、有効な消耗品を複製消耗品にリサイクルすることができる。これは、認証チップを消耗品の物理的パッケージングに融合することによって困難になるが、詰め替え作業者を止められないであろう;
状態データが認証チップに書き込まれるケースでは、チップは、新品か、部分的に使用されているか、又は完全に使い切られている。しかし、これは、複製品製造者によるピギーバック攻撃の使用を止められず、複製品製造者はピギーバックとして本物の認証チップを具備したチップを構築する。攻撃者のチップ(チップE)は、媒介物である。電源投入時、チップEは、本物の認証チップ53から固有のメモリへ全ての記憶状態値を読み込む。チップEは、次に、システムからの要求を検査し、要求に応じて様々な動作をとる。認証要求は、本物の認証チップ53へそのまま渡すことができ、一方、リード/ライト要求は、本物の認証チップの動作と似ているメモリによってシミュレーションされ得る。このようにして、認証チップ53は、常に、電源投入時に新品であるかのように見える。チップEがこれを行うことができるのは、データアクセスは認証されないからである。
Replication consumables protocols 1 and 2 that use a real authentication chip only check whether chip A is a real authentication chip. They do not check to see if the consumables themselves are valid. As a basic premise for authentication, if the chip A is valid, the consumable is valid. Therefore, the replica manufacturer can insert a genuine authentication chip into the replica consumable. Consider the following two cases:
In the case where status data is not written to the authentication chip, the chip is completely reusable. Accordingly, the replica manufacturer can recycle a valid consumable into a replica consumable. This is made difficult by fusing the authentication chip into the physical packaging of the consumable, but will not stop the refiller;
In the case where status data is written to the authentication chip, the chip is new, partially used, or completely used up. However, this does not stop the use of the piggyback attack by the replica manufacturer, and the replica manufacturer constructs a chip with a real authentication chip as the piggyback. The attacker's chip (chip E) is an intermediary. When the power is turned on, the chip E reads all storage state values from the genuine authentication chip 53 to the specific memory. Chip E then examines the request from the system and takes various actions depending on the request. The authentication request can be passed directly to the real authentication chip 53, while the read / write request can be simulated by a memory similar to the operation of the real authentication chip. In this way, the authentication chip 53 always appears as if it is new when the power is turned on. Chip E can do this because data access is not authenticated.

システムを欺いて、システムのデータアクセスが成功したと思わせるために、チップEは、依然として本物の認証チップを必要とし、第2のケースでは、複製チップが本物のチップの他に必要になる。その結果として、プロトコル1及び2が有効になるのは、複製品製造者が本物の認証チップ53を消耗品に埋め込むことの費用対効果がよくない場合である。消耗品をリサイクルできない、又は簡単に詰め替えできないならば、プロトコル1又はプロトコル2の使用によって十分な保護が得られる。複製動作を成功させるためには、各複製消耗品は、有効な認証チップを具備しなければならない。そのチップは、まとめて盗み取るか、又は古い消耗品から取り出さなければならない。これらの再生チップの量は(それらを再生する労力と共に)ビジネスの基盤とするためには不十分であり、セキュアデータ転送(プロトコル3及び4を参照)の保護を追加する実益はない。 In order to deceive the system and make the data access of the system appear to be successful, chip E still needs a real authentication chip, and in the second case, a duplicate chip is needed in addition to the real chip. As a result, protocols 1 and 2 are effective when the replica manufacturer is not cost-effective to embed a genuine authentication chip 53 in the consumable. If the consumables cannot be recycled or simply refilled, the use of protocol 1 or protocol 2 provides sufficient protection. In order for the replication operation to be successful, each replication consumable must have a valid authentication chip. The chips must be stolen together or removed from old consumables. The amount of these playback chips (along with the effort to regenerate them) is insufficient to make it a business foundation, and there is no practical benefit of adding protection for secure data transfers (see protocols 3 and 4).

鍵の寿命
上記の二つのプロトコルの一般的な問題は、一旦、認証鍵が選択されると、それを変更することが容易ではない点である。ある種の状況では、鍵が危険にさらされることは問題ではないが、他の場合には、鍵を危うくすることは致命的である。例えば、車/車キーシステム/消耗品のシナリオでは、消費者は、1組の車/車キーだけを保有する。各車は異なる認証鍵を有する。その結果として、車キーの損失は個々の車を危うくするだけである。所有者がこのことを問題であると考えるならば、所有者は、車のエレクトロニクス内のシステムチップを交換することによって、新しい「車キー」を入手しなければならない。所有者の鍵は、新しい「車のシステム認証チップ」と連動するように再プログラミング/交換する必要がある。これに対して、大量消耗品市場(例えば、プリンタのインクカートリッジ)の鍵が危うくなることは、複製インクカートリッジ製造者が自分専用の認証チップを製造可能にさせる。既存のシステムに対する唯一のソリューションはシステム認証チップを更新することであり、これは、コストが掛かり、物流的に困難な課題である。いずれにしても、消費者のシステムは既に正常に機能し、既存の機器を妨害しようとする動機がない。
Key Life The general problem with the above two protocols is that once an authentication key is selected, it is not easy to change it. In some situations, it does not matter that the key is compromised, but in other cases it is fatal. For example, in a car / car key system / consumable scenario, the consumer has only one set of car / car key. Each car has a different authentication key. As a result, the loss of the car key only jeopardizes the individual car. If the owner considers this a problem, the owner must obtain a new “car key” by replacing the system chip in the car electronics. The owner's key needs to be reprogrammed / exchanged to work with the new “car system authentication chip”. On the other hand, compromising the key to the mass consumables market (e.g., printer ink cartridges) allows duplicate ink cartridge manufacturers to manufacture their own authentication chips. The only solution for existing systems is to update the system authentication chip, which is a costly and logistical challenge. In any case, the consumer system is already functioning normally and there is no motivation to interfere with existing equipment.

消耗品ライフタイム認証
この消耗品認証のレベルでは、認証チップの存在を確認すること、並びに、認証チップが消耗品と同じ期間だけ確実に存続することに関心がある。認証チップが存在することを確認することに加えて、認証チップのメモリ空間の書き込み及び読み出しも同様に認証されなければならない。このセクションでは、認証チップのデータ記憶完全性は安全であると仮定し、メモリの一部はリードオンリーであり、他の一部はリード/ライトであり、その他はデクリメントオンリーである(より詳しくは、データ記憶完全性というタイトルの章を参照のこと)。二つのプロトコルが存在する。プロトコル3は2個の認証チップを必要とし、プロトコル4は1個又は2個の認証チップを使用して実現することができる。
Consumable Lifetime Authentication At this level of consumables authentication, we are interested in confirming the presence of the authentication chip and ensuring that the authentication chip lasts for the same period as the consumable. In addition to confirming that the authentication chip exists, writing and reading of the authentication chip's memory space must be authenticated as well. In this section, we assume that the data storage integrity of the authentication chip is secure, some of the memory is read-only, some is read / write, and others are decrement-only (more details See the chapter titled Data Storage Integrity). There are two protocols. Protocol 3 requires two authentication chips and protocol 4 can be implemented using one or two authentication chips.

プロトコル3
このプロトコルはダブルチッププロトコルである(2個の認証チップが必要になる)。このプロトコルの場合、各認証チップは以下の値を格納する:
K1[X]を計算するための鍵。秘密にしなければならない;
K2[X]を計算するための鍵。秘密にしなければならない;
R 現在の乱数。秘密でなくてもよいが、チップインスタンス毎に異なる初期値でシードされなければならない。Test関数によって定義されるように認証が成功する毎に変化する;
M 認証チップ53のメモリベクトル。この空間の一部はチップ毎に異なるべきである(乱数でなくてもよい)。
Protocol 3
This protocol is a double chip protocol (requires two authentication chips). For this protocol, each authentication chip stores the following values:
Key for calculating K 1 F K1 [X]. Must be kept secret;
Key for calculating K 2 F K2 [X]. Must be kept secret;
R Current random number. It does not have to be secret, but it must be seeded with a different initial value for each chip instance. Changes for each successful authentication as defined by the Test function;
M Memory vector of authentication chip 53. A part of this space should be different for each chip (it may not be a random number).

各認証チップは以下の論理関数を格納する:
F[X] 内部関数専用。一方向関数Fを鍵K又は鍵Kの何れかに基づいてXに適用した結果であるF[X]を返す;
Random[] R|FK1[R]を返す;
Test[X,Y] FK2[R|X]=Yであるならば、1を返しRを進める。そうでなければ、0を返す。0を返すために要する時間は、全ての不良な入力に対して同じでなければならない;
Read[X.Y] FK1[X]=Yであるならば、M|FK2[X|M]を返す。そうでなければ、0を返す。0を返すために要する時間は、全ての不良な入力に対して同じでなければならない;
Write[X] Mのうち正当に書き換え可能な部分にXを書き込む。
Each authentication chip stores the following logical functions:
F [X] For internal functions only. Return F K [X], which is the result of applying the one-way function F to X based on either key K 1 or key K 2 ;
Random [] R | F K1 [R] is returned;
Test [X, Y] F K2 [R | X] = Y, return 1 and advance R. Otherwise 0 is returned. The time taken to return 0 must be the same for all bad inputs;
Read [X. If Y] F K1 [X] = Y, return M | F K2 [X | M]. Otherwise 0 is returned. The time taken to return 0 must be the same for all bad inputs;
Write [X] Writes X to a properly rewritable part of M.

チップAを認証し、チップAのメモリMを読み出すためには、
システムはチップTのRandom関数を呼び出し、
チップTはR|F[R]を生成し、これをシステムへ返し、
システムはチップAのRead関数を呼び出し、R、F[R]を渡し、
チップAはM及びF[R|M]を返し、
システムはチップTのTest関数を呼び出し、M及びF[R|M]を渡し、
システムはチップTからのレスポンスをチェックする。レスポンスが1であるならば、チップAは真正であるとみなされる。0であるならば、チップAは無効であるとみなされる。
To authenticate chip A and read the memory M of chip A,
The system calls the Random function of chip T,
Chip T generates R | F K [R] and returns it to the system,
The system calls the Read function of chip A and passes R, F K [R]
Chip A returns M and F K [R | M]
The system calls the test function of chip T and passes M and F K [R | M]
The system checks the response from chip T. If the response is 1, chip A is considered authentic. If it is zero, chip A is considered invalid.

チップAのメモリMへのMnewの書き込みを認証するためには、
システムはチップAのWrite関数を呼び出し、Mnewを渡し、
読み出しのための認証手続きが実行され、
チップAが真正であり、Mnew=Mであるならば、書き込みは成功である。そうでなければ、書き込みは失敗した。
To authenticate the writing of Mnew to the memory M of chip A,
The system calls the write function of chip A, passes M new ,
The authentication procedure for reading is executed,
If chip A is authentic and M new = M, the write is successful. Otherwise, the write failed.

読み出し認証のデータフローは図171に示されている。プロトコル3に関して最初に注意しなければならないことは、F[X]を直接呼び出せないことである。その代わりに、F[X]は、Random、Test及びReadによって間接的に呼び出される:
Random[]はFK1[X]を呼び出す。Xは呼び出し元によって選択されない。XはRandom関数によって選択される。攻撃者は、希望のX、FK1[X]のペアを獲得するためには、Random、Read、及びTestの複数回の呼び出しを使用してブルートフォース検索を実行しなければならない;
Test[X,Y]はFK2[X]を呼び出す。結果をそのまま返すのではなく、結果をYと比較し、1又は0を返す。所定のXに対してFK2[R|X]の様々な値を試して、Testを複数回呼び出すことによってKを推論しようとする試みは、Rが攻撃者によって選択できないブルートフォース検索まで軽減される;
Read[X,Y]はFK1[X]を呼び出す。X及びFK1[X]は、呼び出し元によって供給されなければならないので、呼び出し元は、前もってX、FK1[X]ペアが分かっていなければならない;
この呼び出しは、Y≠FK1[X]であるならば0を返すので、呼び出し元は、Kに対するブルートフォース攻撃のためRead関数を使用することができる;
Read[X,Y]はFK2[X|M]を呼び出す。Xは呼び出し元によって供給されるが、XはRandom関数によって既に与えられた値だけをとり得る(なぜならば、X及びYはKによって検証されている)。このため、選択テキスト攻撃は、最初に、Randomからペアを収集しなければならない(事実上、ブルートフォース攻撃である)。その上、Mの一部だけが選択テキスト攻撃で使用される。なぜならば、Mの一部は一定であり(リードオンリー)、Mのデクリメントオンリー部分は、消耗品毎に1回ずつ使用できる。次の消耗品で、Mのリードオンリー部分は異なる。
The data flow for read authentication is shown in FIG. The first thing to note about protocol 3 is that F K [X] cannot be called directly. Instead, F K [X] is called indirectly by Random, Test and Read:
Random [] calls F K1 [X]. X is not selected by the caller. X is selected by the Random function. An attacker must perform a brute force search using multiple calls of Random, Read, and Test to obtain the desired X, F K1 [X] pair;
Test [X, Y] calls F K2 [X]. Rather than return the result as is, compare the result with Y and return 1 or 0. Attempts to infer K 2 by trying different values of F K2 [R | X] for a given X and invoking Test multiple times reduce the brute force search that R cannot choose by an attacker Done;
Read [X, Y] calls F K1 [X]. Since X and F K1 [X] must be supplied by the caller, the caller must know the X, F K1 [X] pair in advance;
This call returns 0 if Y ≠ F K1 [X], so the caller can use the Read function for a brute force attack on K 1 ;
Read [X, Y] calls F K2 [X | M]. Although X is supplied by the caller, X is can take only the values given previously by the Random function (because, X and Y are verified by K 1). For this reason, a selected text attack must first collect pairs from Random (in effect, a brute force attack). Moreover, only a part of M is used in the selected text attack. This is because part of M is constant (read only), and the decrement only part of M can be used once for each consumable. In the next consumable, the read-only part of M is different.

[X]が間接的に呼び出されることは、認証チップへの選択テキスト攻撃を阻止する。攻撃者は、望ましいRが現れるまで、Random、Read、及びTestを複数回呼び出すことによって選択されたR、FK1[R]ペアしか獲得できないので、Kへのブルートフォース攻撃は、Kへの制限選択テキスト攻撃を実行するために必要である。Kへの選択テキスト攻撃における試みは制限されるであろう。なぜならば、テキストを完全に選択できないからであり、Mの一部はリードオンリーであり、依然として各認証チップに対して異なる。2番目に注意すべきことは、2個の鍵が使用されることである。小さいサイズのMが与えられた場合、2種類の鍵K及びKは、F[R]とF[R|M]の間に相関が無いことを保証するため使用される。したがって、Kは、差分攻撃からKを保護するために使用される。1個のより長い鍵を使用することは不十分である。なぜならば、Mは256ビットだけであり、Mの一部分しか消耗品の耐用期間中に変化しないからである。そうでなければ、攻撃者は、ある種の未発見の技術によって、限定されたMの変化が、特定のRのビット組み合わせに与える影響を判定し、FK1[X]に基づいてFK2[X|M]を計算できる可能性がある。付加的な事前計算として、チップAのRandom関数及びTest関数は無効にされるべきであり、その結果、R、F[R]のペアを生成するため、攻撃者は、チップTのインスタンスを使用する必要があり、その各々はチップAよりも高価である(なぜならば、システムは各チップTに対して獲得されなければならないからである)。同様に、Random、Read及びTestの呼び出しの間の遅れは最小限にされるべきであり、その結果として、攻撃者はこれらの関数を高速で呼び出すことができない。このようにして、各チップは、ある時間に、特定の個数のX、F[X]のペアだけを明らかにする。プロトコル3の唯一の特有のタイミング必要条件は、返り値0(不良な入力を示す)が、誤りが入力のどこに存在するかとは無関係に、同じ時間で生成されるべきである、ということである。したがって、攻撃者は、入力値に関する誤りが何であるかに関して学習できない。これは、RD関数とTST関数の両方に対しても成り立つ。 Invoking F K [X] indirectly prevents selected text attacks on the authentication chip. A brute force attack on K 1 is to K 2 because the attacker can only acquire the R, F K1 [R] pair selected by calling Random, Read, and Test multiple times until the desired R appears. Restricted selection is necessary to perform a text attack. Attempts at selecting text attack on the K 2 will be limited. This is because the text cannot be completely selected, part of M is read-only and still different for each authentication chip. The second thing to note is that two keys are used. Given a small size M, the two keys K 1 and K 2 are used to ensure that there is no correlation between F [R] and F [R | M]. Therefore, K 1 is used to protect K 2 from differential attacks. It is insufficient to use one longer key. This is because M is only 256 bits and only a portion of M changes during the lifetime of the consumable. Otherwise, the attacker determines the effect of a limited M change on a particular R bit combination by some undiscovered technique, and based on F K1 [X] F K2 [ X | M] may be calculated. As an additional pre-computation, chip A's Random and Test functions should be invalidated, so that the attacker creates an instance of chip T to generate a pair of R, F K [R] Each of which is more expensive than chip A (because the system must be acquired for each chip T). Similarly, the delay between Random, Read, and Test calls should be minimized, so that an attacker cannot call these functions at high speed. In this way, each chip reveals only a certain number of X, F K [X] pairs at a given time. The only unique timing requirement for Protocol 3 is that a return value of 0 (indicating a bad input) should be generated at the same time, regardless of where the error is in the input. . Therefore, the attacker cannot learn what the error regarding the input value is. This is true for both the RD function and the TST function.

プロトコル3に関して注意すべき別の事項は、チップAからのデータ読みだしにもチップAの認証が必要になる、ということである。システムは、FK2[R|M]が正しく返された場合に、メモリ(M)の内容はチップAが主張している内容そのものであることを確認できる。複製チップは、Mがある値であると偽る(例えば、消耗品が一杯詰まっているように見せかける)かもしれないが、複製チップは、システムによって渡された任意のRに対して、FK2[R|M]を返すことができない。このように、事実上の署名、FK2[R|M]は、認証チップAがMを送信したことだけではなく、MがチップAとシステムの間で改ざんされていないことをシステムに保証する。最後に、上述のWrite関数は書き込みを認証しない。書き込みを認証するため、システムは、各書き込みの後に読み出しを実行しなければならない。プロトコル3には幾つかの基本的な利点がある:
及びKは認証プロセス中に明らかにされることがない;
Xが与えられたとき、複製チップは、Kを用いないで、又は本物のチップAへアクセスすることなく、FK2[X|M]を生成できない;
システム自体によって暗号化又は復号化が必要ではないため、特に、インクジェットプリンタのような低コストシステムにおいて、システムは簡単に設計できる;
対称暗号方式、乱数シーケンス、及びメッセージ認証コードを含む広範囲の鍵ベースの一方向関数が存在する;
鍵付き一方向関数は必要なゲート数が少なく、非対称アルゴリズムよりも簡単に検証することができる。);
鍵付き一方向関数のための安全な鍵サイズは、非対称(公開鍵)アルゴリズムの場合と同程度に大きくする必要がない。F[X]が対称暗号化関数であるならば、最小限の128ビットで適切な安全性を提供することができる。
Another thing to note about protocol 3 is that reading of data from chip A also requires authentication of chip A. When F K2 [R | M] is correctly returned, the system can confirm that the contents of the memory (M) are the contents claimed by the chip A itself. The duplicate chip may pretend that M is a certain value (eg, it appears to be full of consumables), but the duplicate chip may be F K2 [for any R passed by the system. R | M] cannot be returned. Thus, the de facto signature, F K2 [R | M], assures the system not only that the authentication chip A has sent M, but that M has not been tampered with between the chip A and the system. . Finally, the above Write function does not authenticate the write. To authenticate the write, the system must perform a read after each write. Protocol 3 has several basic advantages:
K 1 and K 2 are not revealed during the authentication process;
Given X, the replica chip cannot generate F K2 [X | M] without using K or without accessing real chip A;
Since the system itself does not require encryption or decryption, the system can be easily designed, especially in low cost systems such as inkjet printers;
There is a wide range of key-based one-way functions including symmetric cryptography, random number sequences, and message authentication codes;
Keyed one-way functions require fewer gates and are easier to verify than asymmetric algorithms. );
The secure key size for a keyed one-way function need not be as large as in the case of an asymmetric (public key) algorithm. If F [X] is a symmetric encryption function, a minimum of 128 bits can provide adequate security.

したがって、プロトコル3の場合、チップAを認証する唯一の方法は、チップAのメモリの内容を読み出すことである。このプロトコルの安全性は、基本となるF[X]スキームと、すべてのシステムの組に亘るRのドメインと、に依存する。F[X]は鍵付き一方向関数であればよいが、それを非対称暗号として実現することに利点はない。鍵はより長くすることが必要であり、暗号化アルゴリズムはシリコン内でより高価になる。このため、非対称アルゴリズムと共に使用するための第2のプロトコル、即ち、プロトコル4が生じる。プロトコル3は、鍵を秘密のまま保つために2個の認証チップで実現する必要がある。即ち、各システムは認証チップを必要とし、各消耗品は認証チップを必要とする。 Thus, for protocol 3, the only way to authenticate chip A is to read the contents of chip A's memory. The security of this protocol depends on the underlying F K [X] scheme and the R domain across all system sets. F K [X] may be a keyed one-way function, but there is no advantage in realizing it as an asymmetric cipher. The key needs to be longer and the encryption algorithm becomes more expensive in silicon. This results in a second protocol for use with the asymmetric algorithm, namely protocol 4. Protocol 3 needs to be implemented with two authentication chips to keep the key secret. That is, each system requires an authentication chip, and each consumable requires an authentication chip.

プロトコル4
あるケースでは、システムは大規模の処理能力を備えている。或いは、例えば、大量に製造されたシステムの場合、チップTをシステムに統合することは望ましい。非対称暗号アルゴリズムの使用によって、システムのチップT部を不確かにすることが許容される。したがって、プロトコル4は非対称暗号方式を使用する。このプロトコルの場合、各チップは以下の値を格納する:
K E[X]及びD[X]用の鍵である。チップA内で秘密にされるべきである。チップT内で秘密にする必要がない;
R 現在の乱数。秘密でなくてもよいが、チップインスタンス毎に異なる初期値でシードされなければならない。Test関数によって定義されるように認証が成功する毎に変化する;
M 認証チップ53のメモリベクトル。この空間の一部はチップ毎に異なるべきである(乱数でなくてもよい)。
Protocol 4
In some cases, the system has a large processing capacity. Or, for example, in the case of a system manufactured in large quantities, it is desirable to integrate the chip T into the system. The use of an asymmetric cryptographic algorithm allows the chip T portion of the system to be uncertain. Therefore, protocol 4 uses an asymmetric cryptosystem. For this protocol, each chip stores the following values:
It is a key for K E K [X] and D K [X]. Should be kept secret in chip A. There is no need to keep it secret in chip T;
R Current random number. It does not have to be secret, but it must be seeded with a different initial value for each chip instance. Changes for each successful authentication as defined by the Test function;
M Memory vector of authentication chip 53. A part of this space should be different for each chip (it may not be a random number).

Read関数で何かを検証する意味はない。なぜならば、誰でも公開鍵を使用して暗号化できるからである。したがって、以下の関数が定義される:
E[X] 内部関数だけ。E[X]を返す。但し、Eは非対称暗号化関数Eである;
D[X] 内部関数だけ。D[X]を返す。但し、Dは非対称暗号化関数Dである;
Random[] チップTだけ。E[R]を返す;
Test[X,Y] D[R|X]=Yであるならば、1を返しRを進める。そうでなければ、0を返す。0を返すために要する時間は、全ての不良な入力に対して同じでなければならない;
Read[X] M|E[R|M]を返す。但し、R=D[X]である(入力をテストしない);
Write[X] Mのうち正当に書き換え可能な部分にXを書き込む。
There is no point in verifying something with the Read function. This is because anyone can encrypt using a public key. Thus, the following function is defined:
E [X] Internal function only. Returns E K [X]. Where E is the asymmetric encryption function E;
D [X] Internal function only. Returns D K [X]. Where D is an asymmetric encryption function D;
Random [] Only chip T. Return E K [R];
Test [X, Y] D K [R | X] = Y, return 1 and advance R. Otherwise 0 is returned. The time taken to return 0 must be the same for all bad inputs;
Read [X] M | E K [R | M] is returned. Where R = D K [X] (do not test input);
Write [X] Writes X to a properly rewritable part of M.

公開鍵KはチップT内にあり、一方、秘密鍵KはチップAにある。KがチップTにあることは、チップTをソフトウェア又はハードウェアで実現できるという利点がある(但し、Rはシステム毎に異なる乱数でシードされる)。チップAを認証し、チップAのメモリMを読み出すためには、
システムはチップTのRandom関数を呼び出し、
チップTはEKT[R]を生成し、これをシステムへ返し、
システムはチップAのRead関数を呼び出し、EKT[R]を渡し、
チップAはM|EKA[R|M]を返し、最初にDKA[EKT[R]]によってRを獲得し、
システムはチップTのTest関数を呼び出し、M及びEKA[R|M]を渡し、
チップTはDKT[EKA[R|M]]を計算し、それをR|Mと比較し、
システムはチップTからのレスポンスをチェックする。レスポンスが1であるならば、チップAは真正であるとみなされる。0であるならば、チップAは無効であるとみなされる。
Public key K T is in the chip T, on the other hand, there is the secret key K A chip A. The fact that KT is on chip T has the advantage that chip T can be implemented in software or hardware (where R is seeded with a random number that varies from system to system). To authenticate chip A and read the memory M of chip A,
The system calls the Random function of chip T,
Chip T generates E KT [R] and returns it to the system,
The system calls the Read function of chip A, passes E KT [R],
Chip A returns M | E KA [R | M] and first obtains R by D KA [E KT [R]]
The system calls the test function of chip T and passes M and E KA [R | M]
Chip T calculates D KT [E KA [R | M]], compares it with R | M,
The system checks the response from chip T. If the response is 1, chip A is considered authentic. If it is zero, chip A is considered invalid.

チップAのメモリMへのMnewの書き込みを認証するためには、
システムはチップAのWrite関数を呼び出し、Mnewを渡し、
読み出しのための認証手続きが実行され、
チップAが真正であり、Mnew=Mであるならば、書き込みは成功である。そうでなければ、書き込みは失敗した。
To authenticate the writing of Mnew to the memory M of chip A,
The system calls the write function of chip A, passes M new ,
The authentication procedure for reading is executed,
If chip A is authentic and M new = M, the write is successful. Otherwise, the write failed.

読み出し認証のデータフローは図172に示されている。有効なチップAだけにRの値がわかる。なぜならば、Rは認証関数に渡されないからである(それは暗号化された値として渡される)。RはE[R]を復号化することによって獲得しなければならず、これは、秘密鍵Kを使用することによってのみ行える。Rが獲得されると、RはMに付加され、結果が再符号化される。チップTは、復号化された形式のEKA[R|M]=R|Mを検証することができ、これにより、チップAは有効である。K≠Kであるため、EKT[R]≠EKA[R]である。プロトコル4には以下の利点がある:
(秘密鍵)は認証プロセス中に明らかにされることがない;
KT[X]が与えられたとき、複製チップは、Kを用いないで、又は実際のチップAへアクセスすることなく、Xを生成できない;
≠Kであるため、チップTは、完全にソフトウェアで、不確かなハードウェアで、又はシステムの一部として実現できる。チップAだけが安全な認証チップであることを要求される;
チップT及びチップAは異なる鍵を格納するので、チップTの激しいテストによってもKに関して何も明らかにならない;
チップTが物理的なチップであるならば、システムは容易に設計できる;
多数の十分に文書化され暗号解読された非対称アルゴリズムの中から、特許が開放されライセンスフリーであるソリューションを含む、インプリメンテーション用のアルゴリズムを選択することができる;
チップAの要求がチップTへ向けられるようにシステムを再配線できるとしても、K≠Kであるため、チップTはチップAに対して回答できない。攻撃は、認証プロトコルを回避するため、システムROM自体へ向けられるべきであろう。
The data flow of read authentication is shown in FIG. Only valid chip A knows the value of R. Because R is not passed to the authentication function (it is passed as an encrypted value). R must be obtained by decoding the E [R], this is done only by using the secret key K A. Once R is acquired, R is added to M and the result is re-encoded. Chip T can verify the decrypted form E KA [R | M] = R | M, so that chip A is valid. Since K T ≠ K A , E KT [R] ≠ E KA [R]. Protocol 4 has the following advantages:
K A (private key) is not revealed during the authentication process;
When E KT [X] is given, replication chip without using a K A, or without access to the actual chip A, can not generate X;
Since K T ≠ K A , the chip T can be realized entirely in software, with uncertain hardware, or as part of a system. Only chip A is required to be a secure authentication chip;
Since the chip T and the chip A store different keys, it does not reveal anything about K A by vigorous testing of the chip T;
If chip T is a physical chip, the system can be easily designed;
From among a large number of well documented and decrypted asymmetric algorithms, one can select algorithms for implementation, including solutions that are patent free and license free;
Even if the system can be rewired so that the demand for chip A is directed to chip T, chip T cannot answer chip A because K T ≠ K A Attacks should be directed to the system ROM itself to circumvent the authentication protocol.

しかし、プロトコル4には多数の問題がある:
全ての認証チップは、非対称暗号化及び復号化の両方の機能を収容する必要がある。その結果として、各チップは、プロトコル3のために必要なチップよりも大型化し、複雑化し、高価格化する;
十分な安全性のため、各鍵は2048ビットにする必要がある(これに対して、プロトコル1の対称暗号方式の場合、最小値は128ビットである)。暗号化及び復号化アルゴリズムによって使用される関連した中間メモリは、相応に大きくなる;
鍵生成は重要である。乱数は優れた鍵ではない;
チップTがコアとして実装された場合、チップTを所与のシステムASICに連結することが難しい;
チップTがソフトウェアとして実装された場合、システムの実装がプログラミングエラー及び厳密ではないテストに対して無防備であるだけではなく、コンパイラ及び数学的プリミティブの完全性をシステムのインプリメンテーション毎に厳密にチェックしなければならない。これは、単純に十分にテストされたチップを使用する場合よりも複雑であり、且つコスト高である;
多数の対称アルゴリズムが特に差分暗号解読(選択テキスト攻撃に基づいている)に対抗するため強化されているにもかかわらず、秘密鍵Kは選択テキスト攻撃の対象になりやすい。
However, protocol 4 has a number of problems:
All authentication chips need to accommodate both asymmetric encryption and decryption functions. As a result, each chip is larger, more complex and more expensive than the chip required for protocol 3;
For sufficient security, each key needs to be 2048 bits (in contrast, for protocol 1 symmetric cryptography, the minimum is 128 bits). The associated intermediate memory used by the encryption and decryption algorithms will be correspondingly larger;
Key generation is important. Random numbers are not good keys;
When chip T is implemented as a core, it is difficult to couple chip T to a given system ASIC;
When chip T is implemented as software, not only is the system implementation vulnerable to programming errors and less rigorous testing, but the integrity of the compiler and mathematical primitives is strictly checked for each system implementation. Must. This is more complex and costly than simply using a well-tested chip;
A large number of symmetric algorithm despite has been enhanced especially the difference decryption order to compete in (and are based on the selected text attack), likely to be the subject of the secret key K A is selected text attack.

プロトコル4の認証チップは、米国から国外へ持ち出すことができない。なぜならば、それらは、強力な暗号化装置であるとみなされるからである。 Protocol 4 authentication chips cannot be taken out of the United States. Because they are considered strong encryption devices.

プロトコル3の場合と同様に、プロトコル4の唯一の特有のタイミング必要条件は、返り値0(不良な入力を示す)が、誤りが入力のどこに存在するかとは無関係に、同じ時間で生成されるべきである、ということである。したがって、攻撃者は、入力値に関する誤りが何であるかに関して学習できない。これは、RD関数とTST関数の両方に対しても成り立つ。 As with protocol 3, the only specific timing requirement for protocol 4 is that a return value of 0 (indicating a bad input) is generated at the same time, regardless of where the error is in the input. It should be. Therefore, the attacker cannot learn what the error regarding the input value is. This is true for both the RD function and the TST function.

TST呼び出しの変化
2個の認証チップが使用される場合、理論的には、複製品製造者はシステム認証チップを、TSTの各呼び出しに1(成功)を返すもので置換することが可能である。システムは、多数回、間違ったハッシュ値を用いてN回に亘ってTSTを呼び出すことによってこれをテストし、その結果が0であることを予測することができる。TSTが最後に呼び出されたとき、チップAからの真の戻り値が渡され、その戻り値は信頼できる。TSTを呼び出す回数が問題になる。呼び出しの回数はランダムでなければならない。これにより、複製チップ製造者は前もって回数を知り得ない。システムがクロックを持っているならば、クロックからのビットは、間違ったTST呼び出しを何回行わなければならないかを決めるために使用される。それ以外の場合、チップAからの戻り値を使用できる。後者のケースでは、攻撃者は、依然として、複製チップTがチップAからの戻り値を監視できるようにするため、システムを書き換えることができ、これにより、正しいハッシュ値を知ることができる。最悪のケースは、勿論、システムが、認証された消耗品を必要としない複製システムによって完全に置き換えられた場合であり、これは、システムを書き換え、変更する限界のケースである。このため、TST呼び出しの変化はオプションであり、システム、消耗品、及び変更が行われる可能性に依存する。このようなロジックをシステムに追加することは、システムがより複雑になるので、(例えば、小型デスクトッププリンタの場合)それだけの価値があるとは考えられない。これに対して、このようなロジックをカメラに追加することは、それだけの価値があると考えられる。
TST call change If two authentication chips are used, in theory, the replica manufacturer can replace the system authentication chip with one that returns 1 (success) for each call to TST. . The system can test this by calling TST N times with the wrong hash value many times and can predict that the result will be zero. When TST is last called, the true return value from chip A is passed and the return value is reliable. The number of times TST is called becomes a problem. The number of calls must be random. As a result, the replica chip manufacturer cannot know the number of times in advance. If the system has a clock, the bits from the clock are used to determine how many incorrect TST calls must be made. Otherwise, the return value from chip A can be used. In the latter case, the attacker can still rewrite the system to allow the duplicate chip T to monitor the return value from chip A, thereby knowing the correct hash value. The worst case is, of course, the case where the system is completely replaced by a replication system that does not require authorized consumables, which is the limit case of rewriting and changing the system. Thus, changing the TST call is optional and depends on the system, consumables, and the likelihood that changes will be made. Adding such logic to the system is not considered worthy (for example, in the case of a small desktop printer) as the system becomes more complex. On the other hand, adding such logic to the camera is considered worth it.

本物の認証チップを使用する複製消耗品
消耗品部分を使用する前に消耗品残量をデクリメントすることは重要である。消耗品が先に使用されると、複製消耗品は、特別の既知アドレスへの書き込みの間に、接触の不備のふりをして、新しい消耗品のように見えるからである。この攻撃は、依然として、各消耗品に本物の認証チップが必要であることが重要である。
It is important to decrement the remaining amount of consumables before using the duplicate consumable consumable part that uses a genuine authentication chip. This is because, if the consumable is used first, the duplicate consumable will appear as a new consumable, pretending to be incomplete contact during writing to a special known address. It is important that this attack still require a genuine authentication chip for each consumable.

鍵の寿命
上記の二つのプロトコルの一般的な問題は、一旦、認証鍵が選択されると、それを変更することが容易ではない点である。ある種の状況では、鍵が危険にさらされることは問題ではないが、他の場合には、鍵を危うくすることは致命的である。
Key Life The general problem with the above two protocols is that once an authentication key is selected, it is not easy to change it. In some situations, it does not matter that the key is compromised, but in other cases it is fatal.

プロトコルの選択
プロトコル2及び4の鍵の選択が簡単であるとしても、両方のプロトコルは、(鍵サイズと機能的な実装の両面で)シリコン実装のコストが高いため、現時点では実際的ではない。したがって、選択されるプロトコルは、プロトコル1及び3である。しかし、プロトコル1及び3は、多数の同じコンポーメントを含み、
どちらも書き込み及び読み出しアクセスが必要であり、
どちらも鍵付き一方向関数の実装が必要であり、
どちらも乱数生成機能が必要である。
Protocol Selection Even though the key selection for protocols 2 and 4 is simple, both protocols are not practical at this time due to the high cost of silicon implementation (both key size and functional implementation). Therefore, the protocols selected are protocols 1 and 3. However, protocols 1 and 3 include a number of the same components,
Both require write and read access,
Both require the implementation of a keyed one-way function,
Both require a random number generation function.

プロトコル3は付加的な鍵(K)が必要であると共に、ある種の最小限の状態機械の変化:
Random中にFK1[X]を呼び出せるような状態機械の変更と、
K2[X]を呼び出すTest関数と、
K1[X]及びFK2[X]を呼び出すために状態機械のRead関数への変更と、が必要である。
Protocol 3 requires an additional key (K 2 ) and some minimal state machine changes:
A state machine change that can call F K1 [X] during Random;
A Test function that calls F K2 [X];
A change to the Read function of the state machine is required to call F K1 [X] and F K2 [X].

プロトコル3はプロトコル1に対して最小限の変更だけが必要である。プロトコル3の方が安全性が高く、プレゼンスオンリー認証(プロトコル1)が要求されるような全ての状況で使用可能である。したがって、それは特に優れたプロトコルである。プロトコル1及び3の両方が鍵付き一方向関数を使用する場合に、一方向関数の選択をより詳細に説明する。以下の表は、適用可能な選択肢の属性の概要を示している。属性は、その属性が利点であることが分かるように表されている。 Protocol 3 requires only minimal changes to protocol 1. Protocol 3 is more secure and can be used in all situations where presence-only authentication (protocol 1) is required. It is therefore a particularly good protocol. The selection of the one-way function will be described in more detail when both protocols 1 and 3 use a keyed one-way function. The following table outlines the applicable option attributes. The attributes are shown so that they are an advantage.

Figure 0004309954
この表を検討することによって、事実上、3種類のHMAC構造とランダムシーケンスとの間で選択されることがわかる。鍵サイズ及び鍵生成の問題は、ランダムシーケンスを除外する。多数の攻撃が既にMD5に対して実行されていることを考えると、ハッシュ結果は128ビットに過ぎないので、HMAC−MD5も除外される。したがって、HMAC−SHA1とHMAC−RIPEMD160の間で選択を行うことになる。RIPEMD−160は比較的新しく、SHA1のようには大規模に暗号解読されていない。しかし、SHA−1はNSAによって設計されているので、これは、否定的な属性として見られることもある。
Figure 0004309954
By examining this table, it can be seen that there is effectively a choice between three types of HMAC structures and random sequences. Key size and key generation issues exclude random sequences. Considering that many attacks have already been performed against MD5, HMAC-MD5 is also excluded because the hash result is only 128 bits. Therefore, a selection is made between HMAC-SHA1 and HMAC-RIPEMD160. RIPEMD-160 is relatively new and not as extensively decrypted as SHA1. However, since SHA-1 is designed by the NSA, this may be seen as a negative attribute.

両者の間に大差がないのであれば、SHA−1がHMAC構造用に使用されるであろう。 If there is no significant difference between the two, SHA-1 will be used for the HMAC structure.

乱数生成器の選択
上述の各プロトコル(1−4)は、乱数生成器を必要とする。生成器は、全てのシステムの耐用期間に亘って生成される乱数が予測不能であるという意味で「優良」でなければならない。乱数が各システムに対して同一であるならば、攻撃者は、簡単に、本物の認証チップからの正しいレスポンスを記録し、そのレスポンスを複製チップ用のROMルックアップに収容することが可能である。このような攻撃の場合、K又はKを獲得しなくてもよい。したがって、各システムからの乱数は、予測不能であるために、即ち、非決定論的であるために十分に異なることが必要である。このようにして、R(ランダムシード)の初期値は、特定のビットが1であるか、又は0であるかに関する情報が存在しない物理的にランダムな現象から収集された物理的に生成された乱数を用いてプログラミングされるべきである。Rのシードは、決して、コンピュータ上で実行される乱数生成器で生成してはならない。そうでなければ、生成器アルゴリズム及びシードが解読され、攻撃者は、全てのシステムの全てのRの組を生成し、知ることができるようになる。
Selection of random number generator Each protocol (1-4) described above requires a random number generator. The generator must be “good” in the sense that the random numbers generated over the lifetime of all systems are unpredictable. If the random number is the same for each system, the attacker can easily record the correct response from the real authentication chip and place the response in the ROM lookup for the duplicate chip. . In such an attack, K 1 or K 2 may not be acquired. Therefore, the random numbers from each system need to be sufficiently different to be unpredictable, i.e., nondeterministic. In this way, the initial value of R (Random Seed) was physically generated collected from physically random phenomena where there is no information about whether a particular bit is 1 or 0 Should be programmed with random numbers. The R seed must never be generated by a random number generator running on a computer. Otherwise, the generator algorithm and seed are deciphered, allowing the attacker to generate and know all R pairs of all systems.

各認証チップのRシードが異なることは、最初のRはランダムであり、且つあらゆるチップで予測不能であるということである。したがって、各チップで後続のRをどのようにして生成するかが問題になってくる。 The difference in the R seed for each authentication chip is that the first R is random and unpredictable on every chip. Therefore, how to generate the subsequent R in each chip becomes a problem.

基本的なケースでは、Rは全く変更されない。その結果としてR及びFK1[R]は、Random[]の各呼び出しに対して同じである。それらが同一である場合、FK1[R]は、計算されるのではなく、定数にすることができる。攻撃者は、有効なルックアップテーブルを生成するために、単一の有効認証チップを使用し、そのシステムのために特にプログラミングされた複製チップ内でそのルックアップテーブルを使用することが可能である。定数Rは安全ではない。 In the basic case, R is not changed at all. As a result, R and F K1 [R] are the same for each call to Random []. If they are the same, F K1 [R] can be a constant rather than being calculated. An attacker can use a single valid authentication chip to generate a valid look-up table and use that look-up table in a replica chip specifically programmed for the system . The constant R is not safe.

Rを変化させる最も簡単な概念的な方法は、Rを1ずつインクリメントすることである。Rは乱数から始められるので、種々のシステムにおけるその値はランダムである可能性が高い。しかし、初期Rを与えると、後続の全てのR値は直接的に決定できる(10000回繰り返すまでもなく、RはRからR+10000までの値をとる)。Rをインクリメントすることは、定数Rに対する上記の攻撃を受ける心配はない。Rは常に異なるので、代用される複製チップと同数の認証チップを無駄にすること無しに、特定のシステムに対するルックアップテーブルを構築する方法がない。 The simplest conceptual way to change R is to increment R by one. Since R starts with a random number, its value in various systems is likely to be random. However, given the initial R, R values of all subsequent can be determined directly (even without repeated 10000 times, R represents takes a value from R 0 to R 0 +10000). Incrementing R does not have to worry about the above attack on the constant R. Since R is always different, there is no way to build a lookup table for a particular system without wasting as many authentication chips as replicated chips to be substituted.

アダーを使用するインクリメントの他に、Rを変化させる別の方法は、それをLFSR(線形フィードバックシフトレジスタ)として実現することである。これは、アダーよりもシリコンが少ないという利点があり、また、LFSRの値ドメインは順次アクセスによって決定されるので、攻撃者が特定のシステムに対するRのレンジを直接的に決定できないという利点もある。所定の初期Rが生成する値を決定するためには、攻撃者は、可能性を反復し、それらを列挙しなければならない。Rを変化させることの利点は、LFSRソリューションの場合にも明白である。Rは常に相違するので、(特定のシステムに専用の)複製チップが置換する認証チップと同数の認証チップを使い果たすこと無しに、特定のシステムに対するルックアップテーブルを構築する方法がない。したがって、Rを変更するために、これ以上複雑な関数を導入する利点はない。関数とは無関係に、攻撃者は、常に、シミュレーションによって値の組を、耐用期間を通じて繰り返すことが可能である。本来の安全性は、Rの初期ランダム性にある。Rを変更するためLFSRを使用することは、(アダーよりもシリコン使用量が少ない点を別にして)連続した数値レンジに限定されないという利点があるだけである(即ち、R、Rを計算によって直接知ることができないので、攻撃者はLFSRをN回繰り返さなければならない)。 Besides incrementing using adders, another way to change R is to implement it as an LFSR (Linear Feedback Shift Register). This has the advantage of having less silicon than the adder, and also has the advantage that the attacker cannot directly determine the range of R for a particular system, since the LFSR value domain is determined by sequential access. In order to determine the value that a given initial R generates, the attacker must iterate through the possibilities and list them. The benefits of changing R are also evident in the case of LFSR solutions. Since R is always different, there is no way to build a look-up table for a particular system without using up the same number of authentication chips as the replacement chips (which are dedicated to a particular system) replace. Therefore, there is no advantage of introducing a more complicated function to change R. Regardless of the function, the attacker can always repeat the set of values throughout the lifetime through simulation. The inherent safety is in the initial randomness of R. The use of LFSR for changing the R is only the advantage of not being limited to (apart from the point a small silicon amount than adders) consecutive numeric range (i.e., R, calculate R N The attacker must repeat the LFSR N times).

したがって、認証チップ内の乱数生成器は、160ビットのLFSRである。最大周期LFSR用の160ビットのタップ選択(即ち、LFSRは、0が有効な状態ではないので、全部で2160−1状態を循環する)によって、図173にしめされるようなビット159、4、2及び1が得られる。LFSRは疎構造であり、多数のビットがフィードバックに使用されるわけではない(160ビットの中から4ビットだけが使用される)。これは、暗号アプリケーションの場合に問題であるが、非順次数生成のアプリケーションの場合には問題ではない。Rの160ビットシード値は0以外の任意の乱数をとり得る。なぜならば、0が詰められたLFSRは0の際限のないストリームを生成するからである。上述のLFSRは最大周期LFSRであるため、全ての160ビットをそのままRとして使用することができる。出力ビットbから順番に数を構築する必要がない。TSTの呼び出しが成功する毎に、乱数(R)はビット1、2、4及び159をXOR論理演算し、その結果を上位ビットへシフトすることによって進められる。新しいR及び対応したFK1[R]は、次のRandomへの呼び出しの際に取り出すことができる。 Therefore, the random number generator in the authentication chip is a 160-bit LFSR. Bits 159, 4 as shown in FIG. 173 by 160-bit tap selection for the maximum period LFSR (ie, LFSR cycles through 2 160 −1 states since 0 is not a valid state). 2 and 1 are obtained. The LFSR is a sparse structure and not many bits are used for feedback (only 4 bits out of 160 bits are used). This is a problem for cryptographic applications, but not for non-sequential number generation applications. The 160-bit seed value of R can take any random number other than zero. This is because an LFSR packed with 0 generates a stream with no limit of 0. Since the above-described LFSR is the maximum period LFSR, all 160 bits can be used as R as they are. There is no need to build a number in order from the output bit b 0. Each time the TST call is successful, the random number (R) is advanced by XORing bits 1, 2, 4 and 159 and shifting the result to the higher bits. The new R and the corresponding F K1 [R] can be retrieved on the next call to Random.

論理的攻撃への対抗
プロトコル3は認証チップによって使用される認証スキームである。このため、論理的手段による無効化に対し耐性であるべきである。プロトコル3に対する様々なタイプの攻撃の効果を説明したが、このセクションでは、プロトコル3の観点から攻撃の各タイプを詳述する。
Logical attack countermeasure protocol 3 is an authentication scheme used by the authentication chip. For this reason, it should be resistant to invalidation by logical means. Having described the effects of various types of attacks on Protocol 3, this section details each type of attack from the Protocol 3 perspective.

ブルートフォース攻撃
ブルートフォース攻撃はプロトコル3を破ることが保証されている。しかし、鍵の長さは、攻撃者がブルートフォース攻撃を実行するために要する時間が非常に長いので労力に値しない、ということを意味する。攻撃者は、複製認証チップを構築するためKを破るだけでよい。Kは、その他の形態の攻撃に対してKを強化するために設けられているだけである。Kへのブルートフォース攻撃は、したがって、160ビット鍵を破らなければならない。Kに対する攻撃は、最大で2160回の試行が必要であり、2159回の試行後に鍵を検出する確率は50%である。1兆個のプロセッサのアレイを想定すると、各々が毎秒100万回のテストを実行すると、2159回(7.3×1047)のテストには2.3×1023年を要し、これは宇宙の寿命よりも長い。世界には1億台のパーソナルコンピュータしか存在しない。それらが攻撃の際に(例えば、インターネットを介して)接続されたとしても、その数は、上述の1兆個のプロセッサの攻撃よりも10000倍少ない。更に、1兆個のプロセッサの製造がナノコンピュータの時代に可能になったとしても、鍵を獲得するために要する時間は宇宙の寿命よりも長い。
Brute force attack A brute force attack is guaranteed to break Protocol 3. However, the key length means that the time required for an attacker to perform a brute force attack is so long that it is not worth the effort. An attacker need only break the K 2 for building a replication authentication chip. K 1 is only provided to strengthen K 2 against other forms of attack. Brute-force attack on the K 2 is, therefore, must be breaking the 160-bit key. Attacks against K 2, it is necessary to up to 2 160 trials, the probability of detecting the key after two 159 trials is 50%. Assuming an array of 1 trillion processors, each running 1 million tests per second, 2 159 tests (7.3 x 10 47 ) require 2.3 x 10 23 years, Is longer than the lifetime of the universe. There are only 100 million personal computers in the world. Even if they are connected during an attack (eg, via the Internet), the number is 10,000 times less than the trillion processor attacks described above. Furthermore, even if one trillion processors can be manufactured in the nanocomputer era, the time required to acquire a key is longer than the lifetime of the universe.

推測攻撃
攻撃者が単に「鍵を推測」することは理論的に可能である。実際上、十分な時間があり、あらゆる数を試すならば、攻撃者は鍵を獲得するであろう。これは、上述のブルートフォース攻撃と同じであり、50%の成功率を達成する前に、2159回の試行をしなければならない。ある人が最初の試行で単に鍵を推測する機会みは2160である。これに対して、ある人が米国宝くじで一等賞を獲得し、同じ日に稲光によって死亡する確率は、226分の1に過ぎない。ある人が最初の試行で鍵を推測する確率は、2160分の1であり、これは、地球上の全ての原子の中から二人が全く同一の原子を選択することに匹敵することであり、即ち、非常に可能性が低い。
It is theoretically possible for a guessing attacker to simply “guess a key”. In practice, if there is enough time and trying any number, the attacker will get the key. This is the same as the brute force attack described above, and 2 159 attempts must be made before a 50% success rate is achieved. There are 2 160 opportunities for a person to simply guess the key on the first attempt. On the other hand, won the first prize a person in the United States lottery, the probability of death by lightning on the same day, only 1 of 2 26 minutes. The probability that a person to guess the key on the first attempt is one of 2 160 minutes, which, by comparable to that two out of all the atoms of the earth to select exactly the same atoms Yes, i.e. very unlikely.

量子コンピュータ攻撃
を破るため、適切なアルゴリズムに組み込まれた160キュビットを含む量子コンピュータを構築することが必要である。160ビット鍵に対する攻撃は実施不可能である。量子コンピュータの可能性のぎりぎりの見込みは、50年以内に50キュビットを達成することである。50キュビット量子コンピュータを使用したとしても、160ビット鍵を解読するためには、2110回のテストが必要になる。1億台の50キュビット量子コンピュータのアレイを想定し、各量子コンピュータが1マイクロ秒に250回の鍵(現時点での最も乱暴な推定を超えている)を試すことができるとするならば、鍵を見つけるために平均で180億年を要する。
To break a quantum computer attacks K 2, it is necessary to build a quantum computer comprising 160 qubits, incorporated in a suitable algorithm. Attacks against 160-bit keys are not feasible. The most promising prospect of a quantum computer is to achieve 50 qubits within 50 years. Even using a 50 qubit quantum computer, 2 110 tests are required to decrypt a 160 bit key. Assuming an array of 100 million 50 qubit quantum computer, if the quantum computer is to be able to try 2 50 times key (beyond the most violent estimated at the present time) to 1 microsecond, It takes 18 billion years on average to find the key.

暗号文だけの攻撃
攻撃者は、RND及びRDへの呼び出しを呼び出し監視することによってKに対する暗号文だけの攻撃に出ること、及びRD及びTSTへの呼び出しを監視することによってKに対する暗号文だけの攻撃に出ることが可能である。しかし、これらの全ての呼び出しが、平文と、平文のハッシュ形式を明らかにするならば、攻撃は、より強力な攻撃の形態、即ち、既知平文攻撃に変わるであろう。
Attack attacker only ciphertext ciphertext against K 2 by monitoring to leave only attack ciphertext for K 1 by calling monitor calls to RND and RD, and calls to the RD and TST It is possible to just attack. However, if all these calls reveal plaintext and plaintext hash form, the attack will turn into a more powerful form of attack, namely the known plaintext attack.

既知平文攻撃
ロジックアナライザを、システムと認証チップの間の配線に接続し、これにより、データのフローを監視することは容易である。このデータのフローは、既知平文と、平文のハッシュ形式とを生じ、KとKの両方に対する既知平文攻撃に出るため使用できる。Kに対する攻撃に出るため、RND及びTSTへの多数の呼び出しを行うことが必要である(TSTへの呼び出しが成功し、有効チップ上のRDへの呼び出しが必要になる)。これは簡単であり、攻撃者は、システム認証チップと消耗品認証チップの両方をもつことが必要である。K、X、HK1[X]の各ペアが明らかになると、K、Y、HK2[X]のペアも明らかになる。攻撃者は更なる解析のためこれらのペアを収集しなければならない。このデータを用いて意味のある攻撃に出るためには何個のペアを収集すべきであるかという問題が生じる。統計的解析のためのデータの収集を必要とする攻撃の一例は差分暗号解読である。しかし、SHA−1又はHMAC−SHA1に対する攻撃は知られていないので、現時点では、収集されたデータの使い道はない。
It is easy to connect a known plaintext attack logic analyzer to the wiring between the system and the authentication chip, thereby monitoring the data flow. Flow of this data occurs the known plaintext, and a hashed form of the plaintext can be used to exit the known plaintext attack against both K 1 and K 2. To get out attacks on K 1, it is necessary to perform a large number of calls to the RND and TST (call to TST is successful, it is necessary to call to RD of effective chip). This is simple and the attacker needs to have both a system authentication chip and a consumables authentication chip. As each pair of K 1 , X, and H K1 [X] becomes clear, a pair of K 2 , Y, and H K2 [X] also becomes clear. The attacker must collect these pairs for further analysis. The problem arises of how many pairs should be collected in order to use this data for a meaningful attack. An example of an attack that requires collection of data for statistical analysis is differential cryptanalysis. However, since there is no known attack on SHA-1 or HMAC-SHA1, there is currently no use for the collected data.

選択平文攻撃
暗号解読者が先行の調査の結果に基づいて後続の選択平文を変更する能力を備えているならば、Kは、単純な選択平文攻撃よりも強い攻撃の形式である適応的選択平文攻撃の一部の形式に無防備である。選択平文攻撃はKに対しては起こり得ない。なぜならば、呼び出し元には、RND関数への入力として使用されるRを変更する方法がないからである(RNDはKによるハッシュ化の結果を与える唯一の関数である)。Rをクリアすることは、鍵をクリアする効果があるので有用ではなく、SSIコマンドは新しいR値を格納する前にCLRを呼び出す。
If chosen plaintext attack cryptanalyst has the capability to change the subsequent selection plaintext based on the results of previous studies, K 2 adaptively selected in the form of stronger attack than a simple selection plaintext attacks Unprotected in some forms of plaintext attack. Chosen-plaintext attack can not occur for K 1. Because the caller, because there is no way to change the R to be used as input to the RND function (RND is the only function that gives the results of hashing by K 1). Clearing R is not useful because it has the effect of clearing the key, and the SSI command calls CLR before storing the new R value.

適応的選択平文攻撃
このタイプの攻撃はKに対して起こり得ない。なぜならば、Kは選択平文攻撃を許さないからである。しかし、この攻撃の一部の形式はKに対して起こる可能性があり、特に、システムと消耗品の両方は、典型的に、攻撃者が入手可能であるからである(システムは、特定の車のようなある種の場合には攻撃者からアクセスできない)。HMAC構造は、選択平文攻撃のあらゆる形式に対して安全性を提供する。その理由は主として、HMAC構造が2個の秘密入力変数(元のハッシュの結果と秘密鍵)を有するからである。このようにして、入力変数が秘密であるときに、ハッシュ関数自体の衝突を検出することは、平文ハッシュ関数の衝突を見つけることよりも難しい。その理由は、前者は、SHA−1から入力/出力のペアを生成するため、SHA−1への直接アクセス(プロトコル3では許可されない)を必要とするからである。攻撃者によって収集できる唯一の値は、HMAC[R]及びHMAC[R|M]である。これらは、SHA−1ハッシュ関数自体への攻撃ではなく、収集されたデータ間の統計的差分を調べる差分暗号解読攻撃まで攻撃を低減させる。SHA−1又はHMACに対して知られている差分暗号解読攻撃がないとすれば、プロトコル3は適応的選択平文攻撃に対抗する。
Adaptive chosen plaintext attack this type of attack can not occur with respect to K 1. This is because, K 1 is because not allow the chosen plaintext attack. However, some forms of this attack can occur with respect to K 2, in particular, both of consumables system, typically an attacker because available (system specific In some cases, such as a car, it cannot be accessed by an attacker). The HMAC structure provides security against any form of chosen plaintext attack. This is mainly because the HMAC structure has two secret input variables (the original hash result and the secret key). In this way, detecting the collision of the hash function itself when the input variable is secret is more difficult than finding the collision of the plaintext hash function. The reason is that the former requires direct access to SHA-1 (not allowed in protocol 3) in order to generate an input / output pair from SHA-1. The only values that can be collected by the attacker are HMAC [R] and HMAC [R | M]. These reduce the attack to a differential cryptanalysis attack that examines statistical differences between collected data, rather than attacks on the SHA-1 hash function itself. If there are no known differential cryptanalysis attacks against SHA-1 or HMAC, protocol 3 counters adaptive choice plaintext attacks.

意図的なエラー攻撃
攻撃者は、TST関数及びRD関数に対しては意図的なエラー攻撃しか出すことができない。なぜならば、これらは、鍵に対する入力を検証する唯一の関数であるからである。TSTとRDの両方の関数の場合、0値は、入力にエラーが見つかったときに生成され、それ以上の情報は与えられない。その上、0結果を生成するために要する時間は入力に依存せず、攻撃者はどのビットにエラーが存在するかに関する情報を得られない。したがって、意図的なエラー攻撃は効果がない。
An intentional error attacker can only make an intentional error attack against the TST function and the RD function. This is because these are the only functions that validate the input to the key. For both TST and RD functions, a zero value is generated when an error is found in the input and no further information is given. In addition, the time required to generate a zero result does not depend on the input, and the attacker cannot obtain information about which bits have errors. Therefore, intentional error attacks are ineffective.

連鎖攻撃
全ての形式の連鎖攻撃は、ハッシュされるべきメッセージが数ブロックに広がっているか、又は入力変数を何らかの方法でセットできることを前提としている。プロトコル3で使用されるHMAC−SHA1アルゴリズムは、同時に単一の512ビットのブロックしかハッシュできない。その結果として、連鎖攻撃はプロトコル3に対してはあり得ない。
Chain Attacks All types of chain attacks assume that the message to be hashed is spread over several blocks or that the input variables can be set in some way. The HMAC-SHA1 algorithm used in protocol 3 can only hash a single 512-bit block at the same time. As a result, a chain attack is not possible against protocol 3.

バースデー攻撃
HMACに対して知られている最強の攻撃は、ハッシュ関数の衝突の頻度に基づくバースデー攻撃である。しかし、これは、SHA−1のような必要最小限度で合理的なハッシュ関数には全く実際的でない。また、バースデー攻撃は、攻撃者が署名付きのメッセージを管理するときに限り実現可能である。プロトコル3は、デジタル署名の形式としてハッシングを使用する。システムは、有効人種チップからのレスポンスに組み込まれるべき数を送信する。認証チップはH[R|M]を用いて応答しなければならないが、入力値Rをコントロールできないので、バースデー攻撃は実現不能である。なぜならば、メッセージは、事実上、既に生成され、署名されているからである。その代わりに、攻撃者は、同じ値にハッシュした衝突メッセージを探索しなければならない(あなたと同じ誕生日の人を見つける場合と類似している)。したがって、複製チップは、Rのハッシュと選択されたMがH[R|M]と同じハッシュ値を生ずるような新しい値Rを見つけようとしなければならない。しかし、システム認証チップは正しいハッシュ値を明らかにしない(TST関数はハッシュ値が正しいかどうかに依存して1又は0を返すだけである)。したがって、(衝突を見つけるために)正しいハッシュ値を見つける唯一の方法は、本物の認証チップに問い合わせることである。しかし、正しい値を見つけることは、Mを更新することを意味し、Mのデクリメントオンリー部分、及びMのリードオンリー部分は変更できないので、複製消耗品は、衝突を見つけようとする前に、本物の消耗品を更新しなければならない。代案は、成功を見つけるためのTST関数へのブルートフォース攻撃探索である(各複製消耗品はシステム消耗品へアクセスできることが必要である)。ブルートフォース検索は、上述の通り、この例では認証毎に、宇宙の寿命よりも長い時間を要する。ハッシュ値を適時に収集することは本物の消耗品をデクリメントしなければならないことを意味するので、複製消耗品がこの種の攻撃を仕掛ける意味がない。
Birthday attack The strongest attack known for HMAC is a birthday attack based on the frequency of hash function collisions. However, this is not practical at all for a minimal and reasonable hash function such as SHA-1. A birthday attack can be realized only when an attacker manages a signed message. Protocol 3 uses hashing as a digital signature format. The system sends a number to be incorporated into the response from the valid racial chip. The authentication chip must respond using H [R | M], but since the input value R cannot be controlled, the birthday attack is not feasible. This is because the message has already been generated and signed in effect. Instead, the attacker must search for collision messages hashed to the same value (similar to finding someone with the same birthday as you). Therefore, the replica chip must try to find a new value R 2 such that the hash of R 2 and the selected M 2 yields the same hash value as H [R | M]. However, the system authentication chip does not reveal the correct hash value (the TST function only returns 1 or 0 depending on whether the hash value is correct). Therefore, the only way to find the correct hash value (to find a collision) is to query a real authentication chip. However, finding the correct value means updating M, and since M's decrement-only part and M's read-only part cannot be changed, the replica consumables are genuine before attempting to find a collision. Consumables must be updated. An alternative is a brute force attack search into the TST function to find success (each replicated consumable needs to have access to the system consumable). As described above, the brute force search takes longer than the lifetime of the universe for each authentication in this example. Collecting hash values in a timely manner means that a real consumable must be decremented, so there is no point in replicating consumables carrying out this type of attack.

完全ルックアップテーブルによる代用
各システムの乱数シードは160ビットである。認証チップの最悪ケースの状況では、状態データが変更されない。その結果、一定値がMとして戻される。しかし、複製チップは、160ビット値であるFK2[R|M]を返し続けなければならない。結果が160ビットの160ビットルックアップテーブルを想定すると、これは、7.3×1048バイト、即ち、6.6×1036テラバイトを必要とし、近い将来に実施可能である空間よりも間違いなく大きい。これは、勿論、ROMのための値を収集する方法さえを考慮していない。したがって、完全なルックアップテーブルは完全に実現不可能である。
The random number seed of each substitute system according to the complete lookup table is 160 bits. In the worst case situation of the authentication chip, the state data is not changed. As a result, a constant value is returned as M. However, the duplicate chip must continue to return F K2 [R | M], which is a 160-bit value. Assuming a 160-bit lookup table with a 160-bit result, this requires 7.3 × 10 48 bytes, ie 6.6 × 10 36 terabytes, and is definitely more than space that can be implemented in the near future. large. This of course does not take into account even the method of collecting values for the ROM. Thus, a complete lookup table is not completely feasible.

疎ルックアップテーブルによる代用
疎ルックアップテーブルは、認証チップへ送信されたメッセージが、実効的にランダムではなく、ある程度予測可能である場合に限り実施可能である。乱数Rは、自然界のランダム事象から収集された未知乱数でシードされる。複製品製造者は全てのしすてむに対して考えられるRのレンジを知る可能性はない。なぜならば、各ビットが1であるか、又は0である確率は50%であるからである。全てのシステムにおけるRのレンジは未知であるため、全てのシステムで使用可能な疎ルックアップテーブルを構築することは不可能である。したがって、一般的な疎ルックアップテーブルによる攻撃は考えられない。しかし、複製品製造者は、ある特定のシステムに対するRのレンジを知ることは可能である。これは、LFSRに、特定のシステム認証チップのRND関数への呼び出しからの現在の結果をロードし、将来に向けて数回繰り返すことによって実現できる。これが行われた場合、特定のRのレンジに対するレスポンスだけを格納した特別なROM、即ち、その特定のシステムの消耗品に専用のROMを構築できる。しかし、攻撃者は、正しい情報をROMに収容し続けなければならない。したがって、攻撃者は、有効認証チップを検出し、Rの値毎にそれを呼び出すことが必要である。
The alternative sparse lookup table by the sparse lookup table can be implemented only when the message sent to the authentication chip is not effectively random and can be predicted to some extent. The random number R is seeded with an unknown random number collected from natural random events. The replica manufacturer is unlikely to know the range of possible Rs for all hesitations. This is because the probability that each bit is 1 or 0 is 50%. Since the range of R in all systems is unknown, it is impossible to construct a sparse lookup table that can be used in all systems. Therefore, a general sparse lookup table attack is unthinkable. However, the replica manufacturer can know the range of R for a particular system. This can be achieved by loading the LFSR with the current result from a call to the RND function of a particular system authentication chip and repeating it several times for the future. If this is done, a special ROM that stores only the response to a particular R range, ie a ROM dedicated to the consumables of that particular system, can be constructed. However, the attacker must keep correct information in ROM. Therefore, the attacker needs to detect an effective authentication chip and call it for each value of R.

複製認証チップが完全な消耗品をリポートし、接続のロスと新しい完全な消耗品の挿入をシミュレーションする前に1回だけ使用できる場合を想定する。複製消耗品は、完全な消耗品の認証に対するレスポンス、及び部分的に使用された消耗費にに対するレスポンスを格納しなければならない。最悪ケースで、ROMは、システムの耐用期間に亘るRに関して、完全な消耗品及び部分的に使用された消耗品のエントリーを格納する。しかし、有効認証チップは、情報を生成するために使用され、部分的にそのプロセスで使用されるべきである。所定のシステムがn個のR値だけを生成するならば、必要な疎ルックアップROMは、Mに対する異なる値の個数によって乗算された10nバイトである。ROMを構築するために要する時間は、RD呼び出しの間に課された時間に依存する。 Assume that the duplicate authentication chip reports a complete consumable and can be used only once before simulating the loss of connection and the insertion of a new complete consumable. Duplicate consumables must store responses to full consumable authentication and responses to partially used consumables. In the worst case, the ROM stores entries for full consumables and partially used consumables for R over the life of the system. However, the valid authentication chip is used to generate information and should be used in part in the process. If a given system produces only n R values, the required sparse lookup ROM is 10n bytes multiplied by the number of different values for M. The time required to build the ROM depends on the time imposed between RD calls.

それにもかかわらず、複製品製造者は、詰め替えのため返品される消耗品に頼らざるを得ない。なぜならば、最初の場所にROMを構築するコストは1個の消耗品を消費するからである。このような状況における複製品製造者のビジネスは、結果的に詰め替えにある。時間及びコストは、Rのサイズと、ルックアップに組み込まれるべきMの値の種類の数と、に依存する。その上、カスタム複製ROMは、一つ一つのシステムに適合する必要があり、(完全なデータ及び部分的に使用されたデータを提供するため)異なる有効認証チップがシステム毎に使用されなければならない。システム内の認証チップの使用は、したがって、この種の攻撃が複製品製造者にとって価値があるかどうかを判定するために検査しなければならない。一例は、耐用期間に約10000プリントを有するカメラシステムである。単一のデクリメントオンリー値(残りプリント数)と、RDの呼び出しの間に1秒の遅延がある場合を想定する。このようなシステムにおいて、疎テーブルは、構築に約3時間を要し、100Kを消費する。ROMを構成するためには、有効認証チップを消費することが必要であるので、料金は、1個の消耗品と複製消耗品の合計よりも高くしなければならないことに注意すべきである。このようにして、1個の消耗品に対してこの機能を実行することは(複製消耗品が同等の多数の認証消耗品に何とかして収容されない限り)費用対効果がよくない。複製品製造者がシステムの所有者毎にカスタムROMを構築する労力を惜しまないのであれば、より簡単なアプローチは、認証チップを完全に無視するようにシステムを更新することであろう、したがって、この攻撃は、システム毎の攻撃として実現可能であり、所定のシステム/消耗品の組み合わせに対してこのようなことが起こる可能性を判定しなければならない。その可能性は、消耗品及び認証チップのコストと、消耗品の寿命と、消耗品の利益幅と、ROMを生成するために要する時間と、得られるROMのサイズと、顧客が同じ複製チップ等を使用する詰め替えのために複製品製造者へ戻ってくるかどうかと、に依存する。 Nevertheless, replica manufacturers are forced to rely on consumables returned for refilling. This is because the cost of building a ROM in the first place consumes one consumable. The replica manufacturer's business in this situation results in refilling. Time and cost depend on the size of R and the number of types of M values to be incorporated into the lookup. In addition, custom replicated ROMs must be adapted to every single system, and different valid authentication chips must be used for each system (to provide complete and partially used data). . The use of an authentication chip in the system must therefore be examined to determine whether this type of attack is valuable to the replica manufacturer. An example is a camera system that has about 10,000 prints during its lifetime. Assume that there is a one-second delay between a single decrement-only value (remaining print count) and RD invocation. In such a system, the sparse table takes about 3 hours to build and consumes 100K. It should be noted that the cost must be higher than the sum of one consumable and duplicate consumables, since it is necessary to consume a valid authentication chip in order to construct a ROM. In this way, performing this function on a single consumable is not cost effective (unless the duplicate consumable is somehow housed in a number of equivalent certified consumables). If the replica manufacturer does not spare the effort to build a custom ROM for each owner of the system, a simpler approach would be to update the system to completely ignore the authentication chip, so This attack can be implemented as a system-by-system attack, and the possibility of such occurrence for a given system / consumable combination must be determined. The possibilities include consumable and authentication chip costs, consumable life, consumable profit margin, time required to generate the ROM, the size of the ROM that can be obtained, the same replica chip, etc. Depends on whether or not to return to the replica manufacturer for refilling.

差分暗号解読
既知差分攻撃は、DES及びその他の同様のアルゴリズムで使用されるようなSボックスの構造にかなり依存している。プロトコル3で使用されるHMAC−SHA1のような他のアルゴリズムはSボックスを持たないが、攻撃者は、
最小差分入力及びそれに対応した出力
最小差分出力及びそれに対応した入力
の統計的解析を行うことによって差分的な攻撃を実行し得る。
Differential cryptanalysis known differential attacks are highly dependent on the structure of the S-box as used in DES and other similar algorithms. Other algorithms like HMAC-SHA1 used in protocol 3 do not have an S box, but the attacker
A differential attack can be performed by performing a statistical analysis of the minimum differential input and the corresponding minimum differential output and the corresponding input.

この性質の攻撃に出るため、入力/出力ペアの組が収集される。プロトコル3からの収集は、既知平文攻撃、又は部分適応的選択平文攻撃による。明らかに、後者が選ばれる方が有用である。一般的にハッシュ化アルゴリズムは差分解析に対抗するように設計されている。特に、SHA−1は、特に80語の拡張によって、強化されているので、入力における最小限の差は、(128ビットハッシュ関数と比較して)多数のビット位置が変わる出力を生成するであろう。その上、収集される情報は、HMACアルゴリズムの性質により、直接的なSHA−1入力/出力ではない。HMACアルゴリズムは、既知の値を、未知の値(鍵)でハッシュし、このハッシュの結果が次に別個の未知の値で再ハッシュされる。攻撃者は、秘密値も、最初のハッシュの結果もわからないので、SHA−1からの入力及び出力は不明であり、あらゆる差分攻撃を極めて難しくさせる。以下では、認証チップからの最小限度の差の入力及び出力をより詳細に説明する。 To attack this type of attack, input / output pair pairs are collected. Collection from protocol 3 is by known plaintext attack or partially adaptive selected plaintext attack. Obviously, the latter is more useful. In general, hashing algorithms are designed to counter differential analysis. In particular, SHA-1 has been enhanced, especially by an 80-word extension, so a minimal difference in input will produce an output that changes a number of bit positions (compared to a 128-bit hash function). Let's go. Moreover, the information collected is not a direct SHA-1 input / output due to the nature of the HMAC algorithm. The HMAC algorithm hashes a known value with an unknown value (key) and the result of this hash is then re-hashed with a separate unknown value. Since the attacker does not know the secret value or the result of the first hash, the input and output from SHA-1 are unknown, making any differential attack extremely difficult. In the following, the input and output of the minimum difference from the authentication chip will be described in more detail.

最小限度の差の入力
この場合、攻撃者は、X値、F[X]値の組を取得し、X値が最小限度の差であり、出力F[X]の間の統計的な差を検査する。攻撃は、最小限度のビット数だけの差があるX値に依存する。F[X]値を比較するために最小限度の差のX値をどのようにして獲得するかが問題である。
In this case, the attacker obtains a set of X values, F K [X] values, where the X value is the minimum difference, and the statistical value between the outputs F K [X] Check for differences. Attacks rely on X values that differ by a minimum number of bits. The question is how to obtain the minimum difference X value to compare F K [X] values.

:Kの場合、攻撃者は、最小限度の差X、FK1[X]ペアを統計的に検査しなければならない。しかし、攻撃者は、X値を選択できず、関連したFK1[X]値を獲得できない。X、FK1[X]ペアは、システム認証チップ上のRND関数を呼び出すことによってのみ生成することができるので、攻撃者はRNDを複数回呼び出し、観測された各ペアをテーブルに記録する。次に、FK1[X]の統計的解析を行うため、観測された値の中で十分に最小限度の差X値を探索しなければならない。 For K 1 : K 1 , the attacker must statistically examine the minimum difference X, F K1 [X] pairs. However, the attacker cannot select the X value and acquire the associated F K1 [X] value. Since the X, F K1 [X] pair can only be generated by calling the RND function on the system authentication chip, the attacker calls RND multiple times and records each observed pair in a table. Next, to perform a statistical analysis of F K1 [X], a sufficiently minimal difference X value must be searched among the observed values.

:Kの場合、攻撃者は、最小限度の差X、FK2[X]ペアを統計的に検査しなければならない。X、FK2[X]ペアを生成する唯一の方法は、RD関数によるものであり、所定のY、FK1[Y]ペアに対してFK2[X]を生成し、ここで、X=Y|Mである。これは、Yと、Mの変更可能部分が攻撃者によって限られた範囲で選択され得ることを意味する。選択の量は、したがって、できる限り多くされるべきである。 For K 2 : K 2 , the attacker must statistically examine the minimum difference X, F K2 [X] pairs. X, the only way to generate F K2 [X] pair is by RD function to generate F K2 [X] for a given Y, F K1 [Y] pairs, where, X = Y | M. This means that the changeable parts of Y and M can be selected within a limited range by the attacker. The amount of selection should therefore be as high as possible.

攻撃者の選択を制限する第1の方法はYを制限することである。なぜならば、RDはフォーマットY、FK1[Y]の入力を要求するからである。有効なペアはRND関数から容易に獲得できるが、それは、RNDの選択によるペアである。攻撃者は、RNDから適切なペアを獲得した場合に限り、又はKを知っている場合に限り、固有のYを提供することが可能である。RNDから適切なペアを獲得するためには、ブルースフォース探索が必要になる。Kを知ることは、RND関数から獲得されたペアへの暗号解読を実行することによってのみ、即ち、事実上の既知テキスト攻撃によってのみ論理的に実現可能である。RNDは1秒当たりに呼び出せる回数は決まっているが、Kはシステムのチップで共通である。したがって、既知ペアは並列に生成できる。攻撃者の選択を制限する第2の方法は、Mを制限すること、又は少なくとも攻撃者のM選択能力を制限することである。Mの制限は、Mの一部をリードオンリーにさせ、認証チップ毎に相違させ、Mの他の部分をデクリメントオンリーにすることで実現される。Mのリードオンリー部分は、理想的には、認証チップ毎に異なるべきであるので、シリアル番号、バッチ番号、又は乱数のような情報でもよい。Mのデクリメントオンリー部分は、攻撃者が異なるMを試すとき、その回数だけMのその部分だけをデクリメントすることができ、Mのデクリメントオンリー部分が0まで低下した後、その部分は再度変更し得ない、ということを意味する。新しい認証チップ53を獲得すると、新しいMを与えるが、リードオンリー部分は、前の認証チップのリードオンリー部分とは異なり、したがって、攻撃者のMを選択する能力が更に低下する。その結果として、攻撃者は、Y及びMに対する値を選択するチャンスが少ししか高めることができない。 The first way to limit the attacker's choice is to limit Y. This is because RD requires input of format Y, F K1 [Y]. A valid pair can be easily obtained from the RND function, but it is a pair by selection of RND. An attacker only if acquired the appropriate pair from the RND, or only if you know the K 1, it is possible to provide a unique Y. In order to obtain an appropriate pair from the RND, a Bruce Force search is required. Knowing K 1 is logically feasible only by performing a decryption on the pair obtained from the RND function, ie only by a de facto known text attack. RND is that number of times determined to call per second, K 1 are common with the system of the chip. Thus, known pairs can be generated in parallel. A second way to limit the attacker's selection is to limit M, or at least limit the attacker's ability to select M. The restriction of M is realized by making a part of M read-only, making it different for each authentication chip, and making the other part of M decrement-only. Since the read-only part of M should ideally differ from one authentication chip to another, information such as a serial number, batch number, or random number may be used. The decrement-only part of M can decrement only that part of M as many times as the attacker tries a different M, and that part can change again after the decrement-only part of M drops to zero It means no. Acquiring a new authentication chip 53 gives a new M, but the read-only portion is different from the read-only portion of the previous authentication chip, thus further reducing the attacker's ability to select M. As a result, the attacker can only slightly increase the chance of selecting values for Y and M.

最小限度の差の出力
この場合、攻撃者は、X値、F[X]値の組を取得し、F[X]値が最小限度の差を表し、X値の間の統計的な差を検査する。攻撃は、最小限度のビット数だけの差があるF[X]値に依存する。KとKの両方に対し、攻撃者は所与のF[X]に対するX値を生成する方法がない。そうするためには、Fは一方向関数であるという事実に違反するであろう。その結果として、攻撃者がこの性質をもつ攻撃を組み込む唯一の方法は、全ての観測されたX、F[X]ペアをテーブルに記録することである。検索は、X値の統計的解析を行うため十分に最小限度の差F[X]値を見つけるため観測値の中で行われる。これが(Mに関する制限及びRの選択に関する制限のために非常に限定されている)最小限度の差の入力攻撃よりも多くの作業を必要とするならば、この攻撃は無益である。
In this case, the attacker obtains a set of X values, F K [X] values, where the F K [X] values represent the minimum difference, and the statistical value between the X values Check for differences. The attack relies on F K [X] values that differ by a minimum number of bits. For both K 1 and K 2 , the attacker has no way to generate an X value for a given F K [X]. To do so, it would violate the fact that F is a one-way function. Consequently, the only way for an attacker to incorporate an attack with this property is to record all observed X, F K [X] pairs in a table. The search is performed within the observed values to find a sufficiently minimal difference F K [X] value to perform a statistical analysis of the X values. If this requires more work than a minimal difference input attack (which is very limited due to restrictions on M and restrictions on the choice of R), this attack is useless.

メッセージ置換攻撃
この種の攻撃を実行するためには、複製物製造者は本物の認証チップ53を格納する必要があるが、それは減少しないので、事実上、再使用可能である。複製認証チップは、メッセージを盗み取り、それを自分のメッセージで置き換える。しかし、この攻撃は攻撃者にとって成功しない。複製認証チップは、WRコマンドを本物の認証チップへ渡さないように選択するかもしれない。しかし、後続のRDコマンドは(WRが成功したかのうよう)正しいレスポンスを戻さなければならない。正しいレスポンスを返すためには、特定のR及びMについてのハッシュ値がわかっていなければならない。バースデー攻撃のセクションで説明したように、攻撃者は、本物のチップ内のMを実際に更新しなければハッシュ値を決定できないが、攻撃者はこれを行うことを望まない。システムによって送信されたRを変更することさえ役に立たない。なぜならば、システム認証チップは引き続くTSTの間にRをマッチさせなければならないからである。したがって、メッセージ置換攻撃は成功しない。これは、システムが消耗品を使用する前に消耗品残量を更新する場合に限り成り立つ。
Message substitution attack In order to perform this type of attack, the replica manufacturer needs to store a real authentication chip 53, but it does not diminish and is practically reusable. The duplicate authentication chip steals the message and replaces it with its own message. However, this attack is not successful for the attacker. The duplicate authentication chip may choose not to pass the WR command to the real authentication chip. However, subsequent RD commands must return the correct response (as if the WR was successful). In order to return a correct response, the hash values for a particular R and M must be known. As explained in the birthday attack section, the attacker cannot determine the hash value without actually updating M in the real chip, but the attacker does not want to do this. Even changing the R sent by the system is useless. This is because the system authentication chip must match R during the subsequent TST. Therefore, the message replacement attack is not successful. This is true only when the system updates the remaining amount of consumables before using the consumables.

鍵生成器のリバースエンジニアリング
疑似乱数生成器が鍵を生成するため使用される場合、複製品製造者は、生成器プログラムを取得するか、又は使用されたランダムシードを推測する可能性がある。これは、ネットスケープのセキュリティプログラムが最初に破られたときの方法である。
If a reverse-engineered pseudo-random number generator of the key generator is used to generate the key, the replica manufacturer may obtain the generator program or infer the random seed used. This is how the Netscape security program was first broken.

認証全体の回避
プロトコル3は、システムが消耗品の使用前に消耗品状態データを更新し、(書き込みを認証するため)全ての書き込みの後に読み出しを続けることを要求する。このように、消耗品の使用毎に認証を要求する。システムがこれらの二つの簡単なルールに固執するならば、複製品製造者は(疎ROMルックアップのような)上述の方法により認証をシミュレーションしなければならない。
The authentication avoidance protocol 3 requires the system to update the consumable status data before using the consumable and continue reading after all writes (to authenticate the write). In this way, authentication is requested every time the consumable is used. If the system adheres to these two simple rules, the replica manufacturer must simulate authentication by the method described above (such as a sparse ROM lookup).

認証チップの再使用
上述のように、プロトコル3は、システムが消耗品の使用前に消耗品状態データを更新し、(書き込みを認証するため)全ての書き込みの後に読み出しを続けることを要求する。このように、消耗品の使用毎に認証を要求する。消耗品が使い切られた場合、その認証チップの適切な状態データ値は0まで減少している。したがって、チップは別の消耗品で使用できない。このことが成り立つのは、デクリメントオンリーデータ項目を保持する認証チップの場合だけであることに注意する必要がある。使用される毎にデクリメントさせられる状態データが無い場合、チップの再使用を阻止するものはない。これは、プレゼンスオンリー認証と消耗品ライフタイム認証との間の基本的な差異である。プロトコル3はその両方を可能にさせる。結論として、消耗品がシステムによって使用されるデクリメントオンリーデータ項目を備えている場合、認証チップは、秘密鍵を知っている有効なプログラミングステーションによって完全に再プログラミングされない限り、再使用不能である。
Authentication Chip Reuse As described above, protocol 3 requires that the system update the consumable status data before using the consumable and continue reading after all writes (to authenticate writing). In this way, authentication is requested every time the consumable is used. When the consumable is used up, the appropriate status data value of the authentication chip has decreased to zero. Therefore, the chip cannot be used with another consumable. Note that this is only true for authentication chips that hold decrement-only data items. If there is no state data that is decremented every time it is used, there is nothing to prevent the reuse of the chip. This is the fundamental difference between presence-only authentication and consumable lifetime authentication. Protocol 3 makes both possible. In conclusion, if the consumable has a decrement-only data item that is used by the system, the authentication chip is not reusable unless it is completely reprogrammed by a valid programming station that knows the secret key.

コスト節約のため認証を省略する経営上の判断
外部攻撃には限られないが、コストを節約するため将来のシステムでは認証を省略する判断は、様々なマーケットに種々の影響を与えるであろう。大量生産消耗品の場合、販売開始後に認証を導入することは極めて困難であるということに留意しなければならない。なぜならば、認証された消耗品を要求するシステムは、流通中の旧式の消耗品と連携しないからである。同様に、ある段階で認証を打ち切ることも非現実的である。なぜならば、旧式のシステムは、新しい認証されていない消耗品と連携しないからである。第2のケースでは、旧式のシステムは、システム認証チップを、同じプログラミングインタフェースを具備しているが、そのTST関数が常に成功する単純なチップで置換することによって、個別に改造することが可能である。勿論、そのシステムは、常に成功するTST関数をテストし、停止するようにプログラミングしてもよい。車/車キー、又は扉/扉の鍵、又はその他の類似した状況のような特殊化したペアの場合、将来のシステムで認証を省くことは重要ではなく影響もない。なぜならば、消費者は、システムと消耗品認証チップの組全体を同時に購入しているからである。
Management decisions that omit authentication to save costs While not limited to external attacks, decisions that omit authentication in future systems to save costs will have different impacts on different markets. It should be noted that in the case of mass production consumables, it is extremely difficult to introduce certification after the start of sales. This is because systems that require authenticated consumables do not work with older consumables in circulation. Similarly, it is impractical to abort authentication at some stage. This is because older systems do not work with new uncertified consumables. In the second case, older systems can be individually modified by replacing the system authentication chip with a simple chip that has the same programming interface but whose TST function is always successful. is there. Of course, the system may be programmed to test and stop a TST function that always succeeds. For specialized pairs such as car / car keys or door / door keys, or other similar situations, omitting authentication in future systems is not important and has no effect. This is because the consumer purchases the entire system and consumable authentication chip set at the same time.

強盗/賄賂攻撃
この形態の攻撃は、以下の二つの環境の何れかでしか成功しない:
、K、及びRはチッププログラマによって既に記録されているか、又は
攻撃者は、将来のK、K、及びRの値を強制的に記録させることができる。
Burglary / Bribery Attack This form of attack can only be successful in one of two environments:
K 1 , K 2 , and R have already been recorded by the chip programmer, or the attacker can force future K 1 , K 2 , and R values to be recorded.

プログラミングステーションの外部の人間又はコンピュータシステムが鍵を知らないとき、暴力や賄賂をもってしてもそれらを明らかにできない。この種の攻撃に対する安全性のレベルは、究極的に、システム/消耗品所有者が望ましいサービスのレベルに応じて行う判断である。例えば、自動車会社は、製造した全てのキーの記録を保存しようとするので、その車のため新しいキーの作成を要求することができる。しかし、これは、キーデータベースの全体が危険にさらされる可能性があり、攻撃者は製造者の既存の車に対するキーを作成できるようになる。これは、攻撃者が新しい車キーを作成することを可能にさせない。勿論、キーデータベース自体は、別の鍵で暗号化され、キーデータベースにアクセスするためには、一定の人数の人のそれぞれの鍵部分を一つに組み合わせることが必要である。特定の車にどのキーが使用されているかについての記録が保存されていないならば、キーを紛失した場合に補助キーを作成する方法はない。この場合、所有者は自分の車の認証チップと自分の車キーの全てを交換しなければないであろう。これは、必ずしも困った状況ではない。これに対して、プリンタのインクカートリッジのような消耗品の場合、一つの鍵の組み合わせが全てのシステム及び全ての消耗品に対して使用される。勿論、鍵のバックアップが保存されていないならば、誰もその鍵がわからず、攻撃はあり得ない。しかし、バックアップの無い状況は、インクカートリッジのような消耗品の場合に望ましくない。なぜならば、鍵が失われた場合、それ以上消耗品を製造できないからである。したがって、製造者は鍵情報のバックアップを幾つかの部分に保存すべきであり、何人かの人は、鍵全体の情報を明らかにするため、それぞれの部分を一つに結合することが必要である。これは、チッププログラミングステーションに再ロードしなければならない場合に要求される。いずれにしても、これらの攻撃はプロトコル3自体に対する攻撃ではない。なぜならば、人が認証プロセスに関与していないからである。そのかわりに、これは、チップのプログラミングステージに対する攻撃である。 When a person or computer system outside the programming station does not know the key, it cannot be revealed by violence or bribery. The level of security against this type of attack is ultimately a decision made by the system / consumables owner depending on the level of service desired. For example, an automobile company wants to keep a record of all keys that it has manufactured, so it can request the creation of a new key for the car. However, this can compromise the entire key database and allow an attacker to create a key for the manufacturer's existing car. This does not allow an attacker to create a new car key. Of course, the key database itself is encrypted with another key, and in order to access the key database, it is necessary to combine the key portions of a certain number of people into one. If there is no record of which key is used for a particular car, there is no way to create an auxiliary key if the key is lost. In this case, the owner will have to exchange all of his car's authentication chip and his car key. This is not necessarily a problem. In contrast, in the case of consumables such as printer ink cartridges, a single key combination is used for all systems and all consumables. Of course, if no key backup is stored, no one knows the key and no attack is possible. However, the situation without backup is not desirable for consumables such as ink cartridges. This is because if the key is lost, no more consumables can be manufactured. Therefore, the manufacturer should store a backup of the key information in several parts, and some people need to combine the parts together to reveal the information for the entire key. is there. This is required when the chip programming station has to be reloaded. In any case, these attacks are not attacks on the protocol 3 itself. This is because people are not involved in the authentication process. Instead, this is an attack on the programming stage of the chip.

HMAC−SHA1
認証のためのメカニズムは、HMAC−SHA1アルゴリズムであり、
HMAC−SHA1(R,K)又は
HMAC−SHA1(R|M,K
の一方に従って動作する。
HMAC-SHA1
The mechanism for authentication is the HMAC-SHA1 algorithm,
HMAC-SHA1 (R 1 , K 1 ) or HMAC-SHA1 (R | M, K 2 )
It operates according to one of the following.

次に、HMAC−SHA1アルゴリズムをここまでの説明よりも詳しく検討し、本来の定義よりもメモリリソース必要量が少なくなるアルゴリズムの最適化を説明する。 Next, the HMAC-SHA1 algorithm will be examined in more detail than described so far, and optimization of the algorithm that requires less memory resource than the original definition will be described.

HMAC
HMACアルゴリズムは、以下の定義を前提として進む:
H=ハッシュ関数(例えば、MD5又はSHA−1);
n=Hから出力されるビット数(例えば、SHA−1の場合に160ビット、MD5の場合に128ビット);
M=MAC関数が適用されるデータ;
K=両当事者で共有される秘密鍵;
ipad=0x36の64回の繰り返し;
opad=0x5Cの64回の繰り返し。
HMAC
The HMAC algorithm proceeds assuming the following definition:
H = hash function (eg, MD5 or SHA-1);
Number of bits output from n = H (for example, 160 bits for SHA-1 and 128 bits for MD5);
M = data to which the MAC function is applied;
K = private key shared by both parties;
ipad = 0x36 64 repetitions;
64 repetitions of opad = 0x5C.

HMACアルゴリズムは次の通りである:
0x00バイトをKの最後に追加することによりKを64バイトに拡張する;
(1)で作成された64バイト文字列をipadでXOR論理演算する;
(2)で作成された64バイト文字列にデータストリームMを追加する;
(3)で生成されたストリームにHを適用する;
(1)で作成された64バイト文字列をopadでXOR論理演算する;
(4)からの結果Hを(5)から得られた64バイト文字列に追加する;
(6)の出力にHを追加し、その結果を出力する。
The HMAC algorithm is as follows:
Extend K to 64 bytes by appending 0x00 bytes to the end of K;
Perform an XOR logical operation on the 64-byte character string created in (1) with ipad;
Add data stream M to the 64-byte character string created in (2);
Apply H to the stream generated in (3);
XOR logical operation of the 64-byte character string created in (1) with opad;
Append the result H from (4) to the 64-byte string obtained from (5);
H is added to the output of (6), and the result is output.

これにより、
HMAC[M]=H[(KAopad)|H[(KAipad)|M]]
である;
HMAC−SHA1アルゴリズムは、単にH=SHA−1となるHMACである。
This
HMAC [M] = H [(KAopad) | H [(KAipad) | M]]
Is
The HMAC-SHA1 algorithm is simply an HMAC where H = SHA-1.

SHA−1
SHA−1ハッシングアルゴリズムは以下で要約するアルゴリズムに規定される。
SHA-1
The SHA-1 hashing algorithm is defined in the algorithm summarized below.

9個の32ビット定数が定義される。5個の定数は連鎖変数を初期化するため使用され、4個の付加的定数がある。 Nine 32-bit constants are defined. Five constants are used to initialize the chain variable and there are four additional constants.

Figure 0004309954
最適化されていないSHA−1は、全部で2912ビットのデータ記憶を必要とする:
5個の32ビット連鎖変数:H、H、H、H及びHが定義される;
5個の32ビット作業変数:A、B、C、D及びEが定義される;
1個の32ビット一時変数:tが定義される;
80個の32ビット一時レジスタ:X0−79が定義される。
Figure 0004309954
Non-optimized SHA-1 requires a total of 2912 bits of data storage:
Five 32-bit chain variables: H 1 , H 2 , H 3 , H 4 and H 5 are defined;
Five 32-bit work variables: A, B, C, D and E are defined;
One 32-bit temporary variable: t is defined;
80 32-bit temporary registers: X 0-79 are defined.

以下の関数はSHA−1のために定義される。 The following functions are defined for SHA-1.

Figure 0004309954
ハッシングアルゴリズムは、最初に、512ビットの倍数になるまで入力メッセージをパディングし、連鎖変数H1−5をh1−5で初期化する。パッドされたメッセージは、次に、512ビットチャンクで処理され、出力ハッシュ値は、連鎖変数:H|H|H|H|Hの連結によって与えられる最後の160ビット値である。次に、SHA−1アルゴリズムのステップを詳細に説明する。
Figure 0004309954
The hashing algorithm first pads the input message until it is a multiple of 512 bits, and initializes the chain variable H 1-5 with h 1-5 . The padded message is then processed in 512-bit chunks, and the output hash value is the last 160-bit value given by the concatenation of the chain variables: H 1 | H 2 | H 3 | H 4 | H 5 . Next, the steps of the SHA-1 algorithm will be described in detail.

ステップ1 処理
SHA−1の第1ステップは、以下のように入力メッセージを512ビットの倍数になるまで詰め込み、連鎖変数を初期化する。
Step 1 The first step of the process SHA-1 stuffs the input message until it becomes a multiple of 512 bits as follows, and initializes the chain variable.

Figure 0004309954
ステップ2 処理
詰め込まれた入力メッセージが処理可能である。512ビットのブロック内でメッセージを処理する。各512ビットのブロックは、16×32ビット語の形であり、InputWord0−15として表される。
Figure 0004309954
Step 2 Processed input message can be processed. Process the message in a 512-bit block. Each 512-bit block is in the form of a 16 × 32-bit word and is represented as InputWord 0-15 .

Figure 0004309954
ステップ3 終了
詰め込まれた入力メッセージの全ての512ビットのブロックが処理された後、出力ハッシュ値は、H|H|H|H|Hによって与えられる最後の160ビット値である。
Figure 0004309954
Step 3 After all 512-bit blocks of the stuffed input message have been processed, the output hash value is the last 160-bit value given by H 1 | H 2 | H 3 | H 4 | H 5 .

ハードウェア実装用の最適化
SHA−1のステップ2の手続は、ハードウェアのために最適化されていない。特に、80個の一時的な32ビットレジスタは、ハードウェア実装上の貴重なシリコンを使い果たす。このセクションは、16個の一時レジスタだけを使用するSHA−1アルゴリズムへの最適化を説明する。シリコンの削減は、2560ビットから512ビットまでへの減少であり、2000ビット以上の節約になる。これは、一部のアプリケーションでは重要でないが、認証チップの場合、記憶スペースはできるだけ縮小されるべきである。最適化の基礎は、元の16ワードメッセージブロックが80ワードメッセージブロックに拡張されるが、80ワードはアルゴリズムの間に更新されないことにある。その上、ワードは、前の16ワードだけに依存しているので、拡張されたワードは、16ワードが後方参照のため保持される限り、処理中にオンザフライ方式で計算可能である。どのレジスタを使おうとしているかを追跡するために循環カウンタが必要になるが、その効果は大量の記憶量を節約することである。単一の値jでXをインデックス付けするのではなく、繰り返しを通してカウントするため5ビットのカウンタを使用する。これは、5ビットレジスタを16又は20で初期化し、0に達するまでそれをデクリメントすることによって実現される。16個の一時変数を80個であるかのようにして更新するため、4個のインデックスが必要であり、各インデックスは4ビットレジスタである。4個の全てのインデックスはアルゴリズムの途中(ラップアラウンド付きで)インクリメントされる。
Optimization SHA-1 for hardware implementation Step 2 procedure is not optimized for hardware. In particular, 80 temporary 32-bit registers use up valuable silicon on hardware implementations. This section describes an optimization to the SHA-1 algorithm that uses only 16 temporary registers. The silicon reduction is a reduction from 2560 bits to 512 bits, saving over 2000 bits. This is not important for some applications, but in the case of an authentication chip, the storage space should be reduced as much as possible. The basis of the optimization is that the original 16 word message block is expanded to an 80 word message block, but 80 words are not updated during the algorithm. Moreover, since the word depends only on the previous 16 words, the expanded word can be computed on the fly during processing as long as 16 words are retained for backward reference. A circular counter is required to keep track of which registers are being used, but the effect is to save a large amount of storage. Rather than indexing X with a single value j, a 5-bit counter is used to count through iterations. This is accomplished by initializing a 5-bit register with 16 or 20 and decrementing it until it reaches zero. Since 16 temporary variables are updated as if they were 80, 4 indexes are required, and each index is a 4-bit register. All four indexes are incremented in the middle of the algorithm (with wraparound).

Figure 0004309954
ラウンド0及び1Aの間のN、N及びNのインクリメントは随意的である。ソフトウェア実装は、時間を要するので、それらをインクリメントせずに、16巡のループの最後に、全4個のカウンタは元の値になる。ハードウェアの設計者は、制御ロジックを節約するため、全4個のカウンタを同時にインクリメントしようとする。呼び出し元が512ビットのX0−15をロードするならば、ラウンド0は完全に省くことができる。
Figure 0004309954
Incrementing N 1 , N 2 and N 3 during rounds 0 and 1A is optional. The software implementation takes time, so at the end of the 16-round loop, all four counters return to their original values without incrementing them. Hardware designers try to increment all four counters simultaneously to save control logic. If the caller loads 512 bits of X 0-15 , round 0 can be omitted entirely.

HMAC−SHA1
認証チップ実装の場合、HMAC−SHA1ユニットは、二つのタイプの入力:Kを使用するR、及びKを使用するR|Mにハッシングを実行するだけである。入力は2個の一定長さであるため、HMACとSHA−1をチップ上に別個のエンティティとして設けるのではなく、それらを合成し、ハードウェアを最適化することができる。SHA−1のステップ1におけるメッセージのパディング(1ビット、0ビットの文字列、及びメッセージの長さ)は、異なるメッセージがパディング後に同じように見えないことを保証するために必要である。2タイプのメッセージしか取り扱わないので、パディングは定数0でもよい。その上、SHA−1アルゴリズムの最適化バージョンが使用され、16個の32ビットワードだけが一時記憶のために使用される。これらの16個のレジスタは、最適化されたHMAC−SHA1ハードウェアによって直接ロードされる。9個の32ビット定数h−1−5及びy1−4は依然として必要であるが、それらが定数であることは、ハードウェア実装に有利である。ハードウェアの最適化されたHMAC−SHA−1は、全部で、以下の1024ビットのデータ記憶を必要とする:
5個の32ビット連鎖変数:H、H、H、H及びHが定義される;
5個の32ビット作業変数:A、B、C、D及びEが定義される;
一時記憶及び最終結果のための5個の32ビット変数:Buff1601−5が定義される;
1個の32ビット一時変数:tが定義される;
16個の32ビット一時レジスタ:X0−15が定義される。
HMAC-SHA1
In the case of an authentication chip implementation, the HMAC-SHA1 unit only performs hashing on two types of inputs: R using K 1 and R | M using K 2 . Since the inputs are two fixed lengths, instead of providing HMAC and SHA-1 as separate entities on the chip, they can be combined to optimize the hardware. Message padding (1 bit, 0 bit string, and message length) in step 1 of SHA-1 is necessary to ensure that different messages do not look the same after padding. Since only two types of messages are handled, the padding may be a constant 0. In addition, an optimized version of the SHA-1 algorithm is used, and only 16 32-bit words are used for temporary storage. These 16 registers are loaded directly by the optimized HMAC-SHA1 hardware. Although nine 32-bit constant h -1-5 and y 1-4 is still necessary, it is that they are constant, it is advantageous for hardware implementation. The hardware optimized HMAC-SHA-1 requires a total of the following 1024 bits of data storage:
Five 32-bit chain variables: H 1 , H 2 , H 3 , H 4 and H 5 are defined;
Five 32-bit work variables: A, B, C, D and E are defined;
Five 32-bit variables for temporary storage and final result: Buff160 1-5 are defined;
One 32-bit temporary variable: t is defined;
Sixteen 32-bit temporary registers: X 0-15 are defined.

以下の2セクションは、HMAC−SHA1への2タイプの呼び出しのためのステップを説明する。 The following two sections describe the steps for two types of calls to HMAC-SHA1.

H[R,K
を使用してRの鍵付きハッシュを生成するケースでは、元の入力メッセージRは、160ビットの一定長さである。したがって、処理中にこのことを有利に活用することができる。SHA−1アルゴリズムの最初の部分の間にX0−15をロードするのではなく、X0−15を直接ロードし、これにより、SHA−1の最適化プロセスブロック(ステップ2)のラウンド0を省く。擬似コードは次のステップを行う。
H [R, K 1 ]
In the case of generating a keyed hash of R using K 1 , the original input message R is 160 bits long. This can therefore be exploited advantageously during processing. Rather than loading X 0-15 during the first part of the SHA-1 algorithm to load the X 0-15 directly, thereby, the round 0 of SHA-1 optimization process block (Step 2) Omit. The pseudo code performs the following steps:

Figure 0004309954
H[R|M,K
を使用してR|Mの鍵付きハッシュを生成するケースでは、元の入力メッセージは、416(256+160)ビットの一定長さである。したがって、処理中にこのことを有利に活用することができる。SHA−1アルゴリズムの最初の部分の間にX0−15をロードするのではなく、X0−15を直接ロードし、これにより、SHA−1の最適化プロセスブロック(ステップ2)のラウンド0を省く。擬似コードは次のステップを行う。
Figure 0004309954
H [R | M, K 2 ]
In the case of using K 2 to generate a keyed hash of R | M, the original input message is a constant length of 416 (256 + 160) bits. This can therefore be exploited advantageously during processing. Rather than loading X 0-15 during the first part of the SHA-1 algorithm to load the X 0-15 directly, thereby, the round 0 of SHA-1 optimization process block (Step 2) Omit. The pseudo code performs the following steps:

Figure 0004309954
データ記憶完全性
確認証チップは、認証プロトコル3によって要求される変数を保持するため、不揮発性メモリを含む。以下の不揮発変数が定義される。
Figure 0004309954
The data storage integrity verification chip includes a non-volatile memory to hold variables required by the authentication protocol 3. The following non-volatile variables are defined:

Figure 0004309954
これらの変数がフラッシュメモリにあるならば、古い値を置き換えるため新しい値を書き込むことは簡単ではないことに注意する必要がある。メモリは、最初に消去され、次に、適切なビットをセットされる。これは、フラッシュメモリベースの変数を変更するため使用されるアルゴリズムに影響を与える。例えば、フラッシュメモリはシフトレジスタとして簡単に使用できない。汎用演算でフラッシュメモリ変数を更新するためには、以下のステップが必要になる:
Nビット値全体を汎用レジスタに読み込む;
汎用レジスタに演算を実行する;
変数に対応したフラッシュメモリを消去する;
汎用レジスタにセットされたビットに基づいてフラッシュメモリロケーションのビットをセットする。
Figure 0004309954
Note that if these variables are in flash memory, writing a new value to replace the old value is not easy. The memory is first erased and then the appropriate bit is set. This affects the algorithms used to change flash memory based variables. For example, flash memory cannot be easily used as a shift register. To update a flash memory variable with a general purpose operation, the following steps are required:
Read the entire N-bit value into a general-purpose register;
Perform operations on general-purpose registers;
Erase the flash memory corresponding to the variable;
Set the bit in the flash memory location based on the bit set in the general register.

認証チップのリセットはこれらの不揮発性変数に影響を与えない。 The reset of the authentication chip does not affect these non-volatile variables.

Mとアクセスモード
変数M[0]からM[15]は、シリアル番号、バッチ番号、及び消耗品残量のような消耗品状態データを保持するため使用される。各M[n]レジスタは16ビットであり、Mベクトル全体で256ビット(32バイト)になる。クライアントは個々のM[n]変数を読み書きできない。その代わりに、Mで表されるベクトル全体が単一論理アクセスによって読み出し、又は書き込みをされる。MはRD(リード)コマンドを使用して読み出され、WR(ライト)コマンドを使用して書き込まれる。これらのコマンドは、K1とK2の両方が確定し(SIWritten=1)、認証チップが消耗品の信頼できないチップ(IsTrusted=0)である場合に限り成功する。Mは多数の異なるデータタイプを格納するが、それらは書き込み許可が異なるだけである。各データタイプは常に読み出すことができる。一旦クライアントメモリに入ると、256ビットはクライアントによって選択された何らかの方法で解釈できる。Mの256ビット全体は、認証の章で説明したようにセキュリティの理由から少量ずつ読み出すのではなく、同時に読み出される。様々な書き込み許可が以下の表に列挙されている。
M and access mode variables M [0] to M [15] are used to hold consumable status data such as serial number, batch number, and consumable remaining amount. Each M [n] register is 16 bits, and the entire M vector is 256 bits (32 bytes). The client cannot read or write individual M [n] variables. Instead, the entire vector represented by M is read or written with a single logical access. M is read using an RD (read) command and written using a WR (write) command. These commands succeed only if both K1 and K2 are finalized (SIWritten = 1) and the authentication chip is a consumable untrusted chip (IsTrusted = 0). M stores a number of different data types, but they only differ in write permission. Each data type can always be read. Once in the client memory, the 256 bits can be interpreted in any way selected by the client. The entire 256 bits of M are read at the same time instead of being read in small increments for security reasons as described in the authentication section. Various write permissions are listed in the table below.

Figure 0004309954
書き込みに要求される保護を実現するため、2ビットアクセスモード値がM[n]毎に定められる。以下の表は、2ビットアクセスモードビットパターンの解釈を定義する。
Figure 0004309954
In order to realize the protection required for writing, a 2-bit access mode value is determined for each M [n]. The following table defines the interpretation of the 2-bit access mode bit pattern.

Figure 0004309954
16個のM[n]レジスタのための16組のアクセスモードビットは、単一のアクセスモードAccessModeレジスタにまとめられる。32ビットのAccessModeレジスタは、以下のように、n付きのM[n]に対応する。
Figure 0004309954
The 16 sets of access mode bits for the 16 M [n] registers are grouped into a single access mode AccessMode register. The 32-bit AccessMode register corresponds to M [n] with n as follows.

Figure 0004309954
各2ビット値は、上位/下位のフォーマットで記憶される。したがって、M[0−5]がアクセスモードMSRであり、M[6−15]がアクセスモードROであるならば、32ビットAccessModeレジスタは、
11−11−11−11−11−11−11−11−11−11−01−01−01−01−01−01
である。
Figure 0004309954
Each 2-bit value is stored in an upper / lower format. Therefore, if M [0-5] is the access mode MSR and M [6-15] is the access mode RO, the 32-bit AccessMode register is
11-11-11-11-11-11-11-11-11-11-01-01-01-01-01-01-01
It is.

WR(ライト)コマンドの実行中に、AccessMode[n]は各M[n]について調べられ、新しいM[n]値が古い方を置き換えるかどうかを判断する。AccessModeレジスタは認証チップのSAM(セットアクセスモード)コマンドを使用してセットされる。デクリメントオンリー比較は符号無しであり、負のレンジを要求するデクリメントオンリー値は、正のレンジにシフトさせなければならない。例えば、−50から50のレンジのデクリメントオンリーデータ項目を含む消耗品は、そのレンジが0から100へシフトされる。システムは、そのレンジ0から100を−50から50として解釈する。尚、殆どの場合に、デクリメントオンリーレンジはNから0であり、レンジシフトは必要ない。デクリメントオンリーデータ項目の場合、データは、最上位16ビット量から最下位16ビット量の順にM[n]から前方へ並べられる。最上位16ビット(M[n]に記憶されている)に対するアクセスモードは、MSRにセットされるべきである。残りのレジスタ(M[n+1]、M[n+2]等)は、それらのアクセモードがNMSRにセットされるべきである。誤ってNMSRにセットされ、関連したMSR領域が無い場合、各NMSR領域は、倍精度比較ではなく、独立であるとみなされる。 During execution of the WR (write) command, AccessMode [n] is examined for each M [n] to determine whether the new M [n] value replaces the old one. The AccessMode register is set using the SAM (Set Access Mode) command of the authentication chip. Decrement-only comparisons are unsigned, and decrement-only values that require a negative range must be shifted to the positive range. For example, a consumable containing decrement-only data items in the range −50 to 50 is shifted in range from 0 to 100. The system interprets the range 0-100 as -50-50. In most cases, the decrement only range is N to 0 and no range shift is necessary. In the case of a decrement-only data item, data is arranged forward from M [n] in order from the most significant 16-bit amount to the least significant 16-bit amount. The access mode for the most significant 16 bits (stored in M [n]) should be set to MSR. The remaining registers (M [n + 1], M [n + 2], etc.) should have their access mode set to NMSR. If incorrectly set to NMSR and there is no associated MSR region, each NMSR region is considered independent, not a double precision comparison.


は認証プロトコル中にRを変換するため使用される160ビット秘密鍵である。Kは、SSI(秘密情報セット)コマンドでK及びRと共にプログラミングされる。Kは秘密にされなければならないので、クライアントはKを直接読み出し得ない。Kを利用するコマンドはRND及びRDである。RNDは、R、FK1[R]のペアを返し、Rは乱数であり、一方、RDは入力としてX、FK2[R]のペアを要求する。Kは鍵付き一方向ハッシュ関数HMAC−SHA1で使用される。したがって、Kは、物理的にランダムな現象から収集された、物理的に生成された乱数でプログラミングされるべきである。Kは、決して、コンピュータ上で実行される乱数生成器で生成してはならない。認証チップの安全性は、決定論的では無い方法で生成されたK、K及びRに依存する。例えば、Kをセットするため、ある人は公正なコインを160回トスし、表を1として記録し、裏を0として記録する。Kは、CLRコマンドの実行時に自動的に0にクリアされる。それは、SSIコマンドだけによって非零値にセットすることができる。
K 1
K 1 is a 160-bit secret key used to convert R during the authentication protocol. K 1 is programmed with K 2 and R with SSI (the secret information set) command. Since K 1 must be kept secret, the client can not read the K 1 directly. Command to use the K 1 is the RND and RD. RND returns a pair of R, F K1 [R], where R is a random number, while RD requests an X, F K2 [R] pair as input. K 1 is used in a keyed one-way hash function HMAC-SHA1. Thus, K 1 is physically collected from random phenomenon, it should be programmed in a physically generated random number. K 1 is in no way shall be generated by the random number generator is run on a computer. The security of the authentication chip depends on K 1 , K 2 and R generated in a non-deterministic way. For example, to set the K 1, some people toss 160 times a fair coin, record the table as 1, and records the back as zero. K 1 is automatically cleared to 0 at the time of execution of the CLR command. It can be set to a non-zero value only by an SSI command.


は認証プロトコル中にM|Rを変換するため使用される160ビット秘密鍵である。Kは、SSI(秘密情報セット)コマンドでK及びRと共にプログラミングされる。Kは秘密にされなければならないので、クライアントはKを直接読み出し得ない。Kを利用するコマンドはRD及びTSTである。RDは、M、FK2[M|X]のペアを返し、Xはパラメータのうちの一つとしてRD関数へ渡される。TSTは入力としてM、FK2[M|R]のペアを要求し、Rは認証チップのRND関数から獲得された。Kは鍵付き一方向ハッシュ関数HMAC−SHA1で使用される。したがって、Kは、物理的にランダムな現象から収集された、物理的に生成された乱数でプログラミングされるべきである。Kは、決して、コンピュータ上で実行される乱数生成器で生成してはならない。認証チップの安全性は、決定論的では無い方法で生成されたK、K及びRに依存する。例えば、Kをセットするため、ある人は公正なコインを160回トスし、表を1として記録し、裏を0として記録する。Kは、CLRコマンドの実行時に自動的に0にクリアされる。それは、SSIコマンドだけによって非零値にセットすることができる。
K 2
K 2 is a 160-bit secret key used to convert M | R during the authentication protocol. K 2 is programmed with K 1 and R with SSI (the secret information set) command. Since K 2 must be kept secret, the client can not read the K 2 directly. Command to use the K 2 is the RD and TST. RD returns a pair of M, F K2 [M | X], where X is passed to the RD function as one of the parameters. TST required as input an M, F K2 [M | R] pair, where R was obtained from the RND function of the authentication chip. K 2 is used in a keyed one-way hash function HMAC-SHA1. Thus, K 2 are physically collected from random phenomenon, it should be programmed in a physically generated random number. K 2 is in no way shall be generated by the random number generator is run on a computer. The security of the authentication chip depends on K 1 , K 2 and R generated in a non-deterministic way. For example, to set the K 2, some people toss 160 times a fair coin, record the table as 1, and records the back as zero. K 2 is automatically cleared to 0 at the time of execution of the CLR command. It can be set to a non-zero value only by an SSI command.

RとIsTrusted
Rは、SSI(秘密情報セット)コマンドでK及びRと共にプログラミングされる160ビットの乱数シードである。Rは秘密にする必要がない。なぜならば、それは、RNDコマンドによって自由に呼び出し元へ与えられるからである。しかし、Rを変更できるのは認証チップだけであり、呼び出し元によって任意の選択した値にセットできない。Rは、TSTコマンド中に使用され、前のRND呼び出しからのRが、信頼できない認証チップ(チップA)においてFK2[M|R]を生成するために使用されたことを保証する。RND及びTSTの両方は、信頼されている認証チップ(チップT)だけで使用される。
IsTrustedは1ビットフラグレジスタであり、認証チップが信頼されているチップ(チップT)であるかどうかを決定する:
IsTrustedビットがセットされているならば、チップは信頼されているチップであるとみなされるので、クライアントはRND関数及びTST関数を呼び出すことができる(RD又はWRではない);
IsTrustedビットがクリアされているならば、チップは信頼されているチップであるとみなされない。したがって、RND関数及びTST関数を呼び出すことができない(その代わり、RDとWRを呼び出しても構わない)。システムは、消耗品上のRND又はTSTを決して呼び出す必要がない(なぜならば、複製チップはTSTのような関数に1を返すだけであり、RNDに対して一定値を返すだけである)。
R and IsTrusted
R is a 160-bit random number seed which is programmed with K 1 and R with SSI (the secret information set) command. R need not be kept secret. Because it is freely given to the caller by the RND command. However, only the authentication chip can change R and cannot be set to any selected value by the caller. R is used during the TST command to ensure that R from the previous RND call was used to generate F K2 [M | R] at the untrusted authentication chip (Chip A). Both RND and TST are used only with a trusted authentication chip (chip T).
IsTrusted is a 1-bit flag register that determines whether the authentication chip is a trusted chip (chip T):
If the IsTrusted bit is set, the client is able to call the RND and TST functions (not RD or WR) because the chip is considered to be a trusted chip;
If the IsTrusted bit is cleared, the chip is not considered a trusted chip. Therefore, the RND function and the TST function cannot be called (instead, RD and WR may be called). The system never needs to call RND or TST on the consumables (because the duplicate chip only returns 1 to functions like TST and only returns a constant value for RND).

IsTrustedビットは、攻撃者によって獲得できる利用可能なR、FK1[R]の個数を減少させる付加的な利点があり、しかも認証プロトコルの完全性を維持する。有効なR、FK1[R]のペアを獲得するため、攻撃者は、システム認証チップが必要であり、これは、消耗品よりも高価であり入手が困難である。R及びIsTrustedビットの両方はCLRコマンドによって0にクリアされる。これらは共に、SSTコマンドの発行によって書き込まれる。IsTrustedビットは、SSIコマンドによって、非零シード値をRに格納することによってのみセットすることができる(Rは有効なLFSR状態であるために非零であり、これは全く合理的である)。Rは、ビット1、2、4及び159にタップが付いた160ビットの最大限の周期のLFSRによって変更され、TSTへの呼び出しが成功したときだけに(1が返された場合)変更される。 The IsTrusted bit has the added benefit of reducing the number of available R, F K1 [R] that can be acquired by an attacker, while maintaining the integrity of the authentication protocol. To obtain a valid R, F K1 [R] pair, an attacker needs a system authentication chip, which is more expensive and difficult to obtain than consumables. Both R and IsTrusted bits are cleared to 0 by the CLR command. Both of these are written by issuing an SST command. The IsTrusted bit can only be set by an SSI command by storing a non-zero seed value in R (R is non-zero because it is a valid LFSR state, which is quite reasonable). R is modified by a 160-bit maximum period LFSR with bits 1, 2, 4 and 159 tapped, and only when the call to TST is successful (if 1 is returned) .

システムで信頼されているチップ(チップT)になることが予定されている認証チップは、プログラミング中にそのIsTrustedビットがセットされるべきであり、消耗品で使用される認証チップ(チップA)は(プログラミング中にSSIコマンドでRに0を格納することにより)そのIsTrustedビットがクリアのままにされるべきである。IsTrustedビットを直接読み書きするためのコマンドは存在しない。認証チップの安全性は、K及びKのランダム性、並びに、HMAC−SHA1アルゴリズムの強度だけに依存するわけではない。攻撃者が疎ルックアップテーブルを構築することを妨げるため、認証チップの安全性は、全てのシステムの耐用期間に亘るRのレンジにも依存する。したがって、Rは、物理的にランダムな現象から収集された、物理的に生成された乱数でプログラミングされるべきである。Rは、決して、コンピュータ上で実行される乱数生成器で生成してはならない。Rの生成は決定論的であってはならない。例えば、信頼できるシステムチップで使用するためのRを生成するため、ある人は公正なコインを160回トスし、表を1として記録し、裏を0として記録する。0は信頼できるRに対する唯一の有効でない初期値である(又は、IsTrustedビットはセットされない)。 An authentication chip that is scheduled to become a trusted chip in the system (chip T) should have its IsTrusted bit set during programming and the authentication chip (chip A) used in the consumable is Its IsTrusted bit should be left clear (by storing 0 in R with an SSI command during programming). There is no command for directly reading and writing the IsTrusted bit. The security of the authentication chip does not depend solely on the randomness of K 1 and K 2 and the strength of the HMAC-SHA1 algorithm. To prevent an attacker from building a sparse lookup table, the security of the authentication chip also depends on the range of R over the lifetime of all systems. Thus, R should be programmed with physically generated random numbers collected from physically random phenomena. R should never be generated by a random number generator running on a computer. The generation of R must not be deterministic. For example, to generate R for use with a reliable system chip, one person tosses a fair coin 160 times, records the front as 1, and the back as 0. 0 is the only invalid initial value for reliable R (or the IsTrusted bit is not set).

SIWritten
SIWritten(秘密情報書き込み(Secret Information Written)1ビットレジスタは、認証チップ内に記憶された秘密情報の状態を保持する。秘密情報はK、K及びRである。クライアントはSIWrittenビットに直接アクセスできない。その代わりに、SIWrittenビットはCLRコマンドによってクリアされる(このコマンドは、K、K及びRもクリアする)。認証チップが、SSIコマンド(書き込まれる値とは無関係に)を使用して秘密鍵及び乱数シードでプログラミングされたとき、SIWrittenビットは自動的にセットされる。Rは厳密には秘密ではないが、攻撃者が選択されたR、FK1[R]のペアを獲得するために自分の固有の乱数シードを生成し得ないことを保証するため、RはK及びKと一緒に書き込まなければならない。SIWritten状態ビットは、K、K又はRにアクセスする全ての関数によって使用される。SIWrittenビットがクリアされている場合、RD、WR、RND及びTSTの呼び出しはCLRの呼び出しとして解釈される。
SIWritten
SIWriten (Secret Information Written) 1-bit register holds the state of the secret information stored in the authentication chip. The secret information is K 1 , K 2 and R. The client cannot directly access the SIWriteten bit. Instead, the SIWritten bit is cleared by the CLR command (this command also clears K 1 , K 2 and R.) The authentication chip uses the SSI command (regardless of the value written). When programmed with a secret key and random number seed, the SIWritten bit is automatically set, although R is not strictly secret, but the attacker obtains the selected R, F K1 [R] pair. Can generate their own unique random number seed R must be written with K 1 and K 2. The SIWritten status bit is used by all functions that access K 1 , K 2 or R. The SIWritten bit is cleared. RD, WR, RND, and TST calls are interpreted as CLR calls.

MINTICKS
攻撃者が短時間の間にTST及びRD関数への多数の呼び出しを生成できないようにする二つのメカニズムが存在する。第1のメカニズムは、内部クロックが特定の最大値(例えば、10MHz)を超える速度で動作することを妨げるクロック制限ハードウェアコンポーネントである。第2のメカニズムは32ビットのMinTicks(最小チック)レジスタであり、これは、鍵付き関数への呼び出しの間に経過しなければならない最小のクロックチック回数を指定するため使用される。MinTicks変数はCLRコマンドによって0にクリアされる。ビットは、SMT(MinTicksセット)コマンドによってセットされる。SMTへの入力パラメータは、MinTicksのどのビットをセットすべきであるかを表現するビットパターンを含む。実際の効果は、攻撃者がMinTicksの単位でしか値を増加し得ないことである(なぜならば、SMT関数はビットをセットするだけである)。その上、呼び出し元がこのレジスタの現在の値を読み出すことができる関数は設けられていない。MinTicksの値は、動作クロック速度と、鍵付き関数呼び出しの間の合理的な時間の定め方(アプリケーションに固有)と、に依存する。1チックの間隔は動作クロック速度に依存する。これは、入力クロック速度と認証チップのクロック制限ハードウェアの最大値である。例えば、認証チップのクロック制限ハードウェアは10MHzにセットされるが(これは変更できない)、入力クロックは1MHzである。このケースでは、1チックの値は10MHzではなく、1MHzが基準になる。入力クロックが1MHzではなく20MHzであるならば、1チックの値は10MHzが基準になる(なぜならば、クロック速度は10MHzで制限されている)。
MINTICKS
There are two mechanisms that prevent an attacker from generating multiple calls to the TST and RD functions in a short time. The first mechanism is a clock limit hardware component that prevents the internal clock from operating at speeds above a certain maximum value (eg, 10 MHz). The second mechanism is a 32-bit MinTicks register, which is used to specify the minimum number of clock ticks that must elapse between calls to the keyed function. The MinTicks variable is cleared to 0 by the CLR command. The bit is set by an SMT (MinTicks set) command. The input parameters to the SMT include a bit pattern that represents which bits of MinTicks should be set. The actual effect is that the attacker can only increase the value in units of MinTicks (because the SMT function only sets the bit). Moreover, no function is provided that allows the caller to read the current value of this register. The value of MinTicks depends on the operating clock speed and how to determine a reasonable time between keyed function calls (application specific). The interval of one tick depends on the operating clock speed. This is the maximum value of the input clock speed and the clock limit hardware of the authentication chip. For example, the clock limit hardware of the authentication chip is set to 10 MHz (this cannot be changed), but the input clock is 1 MHz. In this case, the value of 1 tick is 1 MHz instead of 10 MHz. If the input clock is 20 MHz instead of 1 MHz, the value of 1 tick is based on 10 MHz (because the clock speed is limited to 10 MHz).

1チックの間隔がわかると、MinTicks値をセットすることができる。MinTicksの値は、鍵付きRD及びTST関数への呼び出しの間に経過することが要求されるMinTicks数である。この値は、リアルタイム数であり、動作チックの長さで除算される。入力クロック速度が10MHzの最大クロック速度と一致する場合を想定する。鍵付き関数の呼び出しの間に1秒の最小値を求めるならば、MinTicksの値は10000000にセットされる。攻撃者がRND、RD及びTSTを何回も呼び出すことによってX、FK1[X]のペアを収集しようとしている場合を考える。TSTへの呼び出しの間の時間が1秒になるようにMinTicks値がセットされているならば、各ペアを生成するために1秒が必要になる。225個のペア(1.25Gbの記憶量しか必要にならない)を生成するため、攻撃者は1年以上を必要とする。264個のペアが必要になる攻撃は、1個のチップを使用すると、5.84×1011年が必要になり、10億個のチップが使用されるならば、584年が必要になり、このような攻撃は時間的に全く非現実的になる(記憶必要量については言うまでもない!)。 Once the interval of one tick is known, the MinTicks value can be set. The value of MinTicks is the number of MinTicks that are required to elapse between calls to the keyed RD and TST functions. This value is a real-time number divided by the length of the operating ticks. Assume that the input clock speed matches the maximum clock speed of 10 MHz. If the minimum value of 1 second is determined during the keyed function call, the value of MinTicks is set to 10000000. Consider the case where an attacker is trying to collect X, F K1 [X] pairs by calling RND, RD and TST many times. If the MinTicks value is set so that the time between calls to the TST is 1 second, 1 second is required to generate each pair. 2 The attacker needs more than a year to generate 25 pairs (only 1.25 Gb of storage is needed). An attack that requires 2 64 pairs would require 5.84 x 10 11 years if 1 chip is used, and 584 if 1 billion chips are used. Such an attack is totally unrealistic in time (not to mention the memory requirements!).

に関しては、MinTicks変数は攻撃者を遅くさせ、攻撃のコストを高くするだけである。なぜならば、MinTicksは攻撃者が多数のシステムチップを並列に使用することを止めるものではないからである。しかし、MinTicksは、本当にKへの攻撃をより困難にさせる。なぜならば、各消耗品は異なるMを有するからである(Mの一部はランダムなリードオンリーデータである)。差分攻撃に出るためには、最小限度の差の入力が必要であり、これは、単一の消耗品(Mの実効的に定数部を含む)によって実現できる。最小限度の差の入力は、攻撃者が単一チップを使用することを要求し、MinTicksは、単一チップの使用をスローダウンさせる。差分攻撃を始めるために値の検索を開始するためのデータを取得するだけに1年を要するのであれば、これは攻撃のコストを上昇させ、複製消耗品の実効的な販売期間を短縮する。 With respect to the K 1, MinTicks variable is to slow down the attacker, only to increase the cost of the attack. This is because MinTicks does not stop an attacker from using many system chips in parallel. However, MinTicks really make the attack on the K 2 more difficult. This is because each consumable has a different M (part of M is random read-only data). In order to enter a differential attack, a minimum difference input is required, which can be realized by a single consumable (including effectively a constant part of M). The minimal difference input requires the attacker to use a single chip, and MinTicks slows down the use of a single chip. If it takes a year to get the data to start searching for a value to start a differential attack, this will increase the cost of the attack and reduce the effective sales period of the replication consumables.

認証チップコマンド
システムは簡単なオペレーションコマンドセットによって認証チップと通信する。このセクションは、プロトコル3の実装のために必要な実際のコマンド及びパラメータを詳述する。認証チップは、最低限の実装としてシリアルインタフェースによってシステムと通信するものとして定義される。より幅広いインタフェース(例えば、8、16又は32ビット)によって動作する等価的なチップを定義することは慣用的なことである。オペコードの解釈は、IsTrustedビットの現在の値と、IsWrittenビットの現在の値と、に依存し得る。以下のオペレーションが定義される。
The authentication chip command system communicates with the authentication chip by a simple operation command set. This section details the actual commands and parameters required for Protocol 3 implementation. An authentication chip is defined as a minimum implementation that communicates with the system via a serial interface. It is conventional to define an equivalent chip that operates with a wider interface (eg, 8, 16 or 32 bits). The interpretation of the opcode may depend on the current value of the IsTrusted bit and the current value of the IsWriteten bit. The following operations are defined:

Figure 0004309954
Op=オペコード、T=IsTrusted値、W=IsWrtten値、
Mn=ニューモニック、[n]=パラメータに必要なビット数。
Figure 0004309954
Op = opcode, T = IsTrusted value, W = IsWrtten value,
Mn = Pneumonic, [n] = Number of bits required for the parameter.

この表に定義されていないコマンドは、NOP(ノーオペレーション)として解釈される。その例には、(IsTrusted値又はIsWritten値とは無関係である)オペコード110及び111と、IsWritten=0のときのSSI以外のオペコードと、が含まれる。RD及びRNDのオペコードは同じであり、WR及びTSTのオペコードも同じであることに注意する必要がある。オペコードの受け取り後に動かされる実際のコマンドは、(IsWrittenが1である限り)IsTrustedビットの現在値に依存する。IsTrustedビットがクリアされているところでは、RD及びWR関数が呼び出される。IsTrustedビットがセットされると、RND及びTST関数が呼び出される。2組のコマンドは、信頼されている認証チップと信頼されていない認証チップとの間で相互に排他的であり、同じオペコードはこの関係を強いる。各コマンドは引き続くセクションで詳細に検討される。一部のアルゴリズムは具体的に設計される。なぜならば、フラッシュメモリが不揮発変数の実現形態として想定されるからである。 Commands not defined in this table are interpreted as NOP (no operation). Examples include opcodes 110 and 111 (which are independent of IsTrusted value or IsWriteten value) and opcodes other than SSI when IsWriteten = 0. Note that the RD and RND opcodes are the same, and the WR and TST opcodes are the same. The actual command that is moved after receiving the opcode depends on the current value of the IsTrusted bit (as long as IsWritten is 1). Where the IsTrusted bit is cleared, the RD and WR functions are called. When the IsTrusted bit is set, the RND and TST functions are called. The two sets of commands are mutually exclusive between a trusted authentication chip and an untrusted authentication chip, and the same opcode enforces this relationship. Each command is discussed in detail in subsequent sections. Some algorithms are specifically designed. This is because the flash memory is assumed to be a non-volatile variable implementation form.

Figure 0004309954
CLR(クリア)コマンドは、全ての認証チップメモリの内容を完全に消去するため設計される。これは、全ての鍵及び秘密情報と、アクセスモードビットと、状態データと、を含む。CLRコマンドの実行後、認証チップは、新しく製造されたときと丁度同じように、プログラマブル状態になる。それは、新しい鍵として再プログラムして、再使用することができる。CLRコマンドは、CLRコマンドオペコードだけにより構成される。認証チップはシリアルであるため、これは同時に1ビットずつ転送される。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、CLRコマンドは、CLRオペコードのビット0から2として送られる。全部で3ビットが転送される。CLRコマンドはいつでも直ちに呼び出すことができる。消去の順序は重要である。SIWrittenbit値は、(RND、TST、RD及びWRのような)鍵アクセス関数への更なる呼び出しを禁止するため、最初に消去されなければならない。AccessModeビットがSIWrittenの前にクリアされると、攻撃者は、それらがクリアされた後のある時点で電源を取り外し、Mを操作し、これにより、部分選択テキスト攻撃で秘密情報を取り出すよい機会を得る。CLRコマンドは以下のステップで実現される。
Figure 0004309954
The CLR (clear) command is designed to completely erase the contents of all authentication chip memories. This includes all keys and secret information, access mode bits, and status data. After execution of the CLR command, the authentication chip is in a programmable state just as it was newly manufactured. It can be reprogrammed as a new key and reused. The CLR command is composed only of the CLR command opcode. Since the authentication chip is serial, it is transferred one bit at a time. The bit order is from LSB to MSB of each command component. Therefore, the CLR command is sent as bits 0 to 2 of the CLR opcode. A total of 3 bits are transferred. The CLR command can be called immediately at any time. The order of erasure is important. The SIWrittenbit value must first be erased to prohibit further calls to key access functions (such as RND, TST, RD, and WR). If the AccessMode bit is cleared before SIWritten, the attacker will have the opportunity to remove power at some point after they are cleared and manipulate M, thereby extracting the secret information in a partial-select text attack. obtain. The CLR command is realized by the following steps.

Figure 0004309954
チップがクリアされると、チップは再プログラミングと再使用の準備が完了する。ブランクチップは攻撃者にとって無用である。なぜならば、Mに対して任意の値を作成することが可能であるとしても(Mは読み出し及び書き込みが可能である)、K及びKが間違っているので鍵付き関数は全く情報を提供しないからである。CLRがCLR以外の任意のオペコードのために要求されるならば、入力パラメータビットを費やす必要がない。攻撃者はチップをリセットするだけでよい。CLRを呼び出す理由は、全ての秘密情報が破壊され、チップが攻撃者にとって無用になることを保証するためである。
Figure 0004309954
Once the chip is cleared, the chip is ready for reprogramming and reuse. Blank chips are useless for attackers. Because even if it is possible to create any value for M (M can be read and written), K 1 and K 2 are wrong, so the keyed function provides no information at all. Because it does not. If CLR is required for any opcode other than CLR, there is no need to spend input parameter bits. The attacker only has to reset the chip. The reason for calling CLR is to ensure that all secret information is destroyed and the chip is useless to the attacker.

SSI−秘密情報セット(SET SECRET INFORMATION)
入力:K、K、R=[160ビット,160ビット,160ビット]
出力:無し
変更内容:K、K、R、SIWritten、IsTrusted。
SSI-Secret Information Set (SET SECRET INFORMATION)
Input: K 1 , K 2 , R = [160 bits, 160 bits, 160 bits]
Output: None Change: K 1 , K 2 , R, SIWritten, IsTrusted.

SSI(秘密情報セット(Set Secret
Information))コマンドは、K、K及びR変数にロードし、RND、TST、RD及びWRコマンドを後で呼び出すためSIWritten及びIsTrustedフラグをセットするため使用される。SSIコマンドは、SSIコマンドオペコードと、その後に続く、K、K及びRレジスタに格納されるべき秘密情報と、を含む。認証チップはシリアルであるため、これは同時に1ビットずつ転送されるべきである。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、SSIコマンドは、SSIオペコードのビット0−2と、その後に続く、Kに対する新しい値のビット0−159と、Kに対する新しい値のビット0−159と、最後に、Rに対するシード値のビット0−159として送られる。全部で483ビットが転送される。K、K、R、SIWritten、及びIsTrustedレジスタはCLRコマンドによって全て0にクリアされる。それらは、SSIコマンドを使用することによってのみセットすることができる。
SSI (Secret Information Set (Set Secret)
Information)) command is used to load the K 1 , K 2 and R variables and set the SIWriteten and IsTrusted flags to later call the RND, TST, RD and WR commands. The SSI command includes an SSI command opcode followed by secret information to be stored in the K 1 , K 2 and R registers. Since the authentication chip is serial, it should be transferred bit by bit at the same time. The bit order is from LSB to MSB of each command component. Accordingly, SSI command includes a bit 0-2 SSI opcode, followed, and bits 0-159 of new values for K 1, and bit 0-159 of new value for K 2, finally, the seed values for R Of bits 0-159. A total of 483 bits are transferred. The K 1 , K 2 , R, SIWritten, and IsTrusted registers are all cleared to 0 by the CLR command. They can only be set by using SSI commands.

SSIコマンドは、データがK、K及びRにロードされた事実を格納するためフラグSIWrittenを使用する。SIWrittenフラグ及びIsTrustedフラグをクリアされているならば(これは、CLR命令後のケースである)、K、K及びRに新しい値がロードされる。何れかのフラグがセットされているならば、SSIの呼び出しの試みによって、CLRコマンドが実行される。なぜならば、攻撃者又は間違ったクライアントだけが、CLRを先に呼び出すことなく、鍵又はランダムシードを変更しようとするからである。また、SSIコマンドは、Rに対する値に依存してIsTrustedフラグをセットする。R=0であるならば、チップは信用できないとみなされ、したがって、IsTrustedは0のまま維持される。R≠0であるならば、チップは信用できるとみなされ、IsTrustedは1にセットされる。IsTrustedビットの設定は、SSIコマンドの間だけで行われることに注意する必要がある。認証チップが再使用されるならば、CLRコマンドは最初に呼び出されなければならない。その後、鍵は、SSIコマンドで安全にプログラムされ、新たな状態情報がSAM及びWRコマンドを用いてMへロードされる。SSIコマンドは以下のステップで実行される。 The SSI command uses the flag SIWritten to store the fact that data has been loaded into K 1 , K 2 and R. If the SIWriteten and IsTrusted flags are cleared (this is the case after the CLR instruction), new values are loaded into K 1 , K 2 and R. If any flag is set, a CLR command is executed by an SSI call attempt. This is because only the attacker or the wrong client tries to change the key or random seed without first calling the CLR. The SSI command also sets the IsTrusted flag depending on the value for R. If R = 0, the chip is considered untrustworthy and therefore IsTrusted remains zero. If R ≠ 0, the chip is considered trustworthy and IsTrusted is set to 1. Note that the IsTrusted bit is set only between SSI commands. If the authentication chip is reused, the CLR command must be invoked first. The key is then securely programmed with the SSI command and new state information is loaded into M using the SAM and WR commands. The SSI command is executed in the following steps.

Figure 0004309954
RD−読み出し
入力:X、FK1[X]=[160ビット、160ビット、160ビット]
出力:M、FK2[X|M]=[256ビット、160ビット]
変更内容:R。
Figure 0004309954
RD-read input: X, F K1 [X] = [160 bits, 160 bits, 160 bits]
Output: M, F K2 [X | M] = [256 bits, 160 bits]
Details of change: R.

RD(リード)コマンドは、信頼されない認証チップから状態データ(M)の256ビット全体を安全に読み出すために使用される。有効認証チップだけがRD要求に正しく応答する。RDコマンドからの出力ビットは、入力ビットとして、検証用の信頼された認証チップ上のTSTコマンドへ供給でき、最初の256ビット(M)は、TSTが(期待通りに)1を戻す場合に後で使用するため保存される。認証チップはシリアルであるため、コマンド及び入力パラメータは同時に1ビットずつ転送されるはずである。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、RDコマンドは、RDオペコードのビット0−2と、その後に続く、Xのビット0−159と、FK1[x]のビット0−159である。全部で320ビットが転送される。X及びFK1[X]は信頼された認証チップのRNDコマンドを呼び出すことによって獲得される。信頼されたチップのRNDコマンドから出力された320ビットは、したがって、信頼されないチップのRDコマンドへそのまま供給することが可能であり、それらのビットをシステムによって保存しなくてもよい。RDコマンドは、以下の条件が充たされたときに限り使用できる:
SIWritten=1 K、K、RがSSIコマンドによってセットアップされたことを示す;
IsTrusted=0 乱数シーケンスを生成することが許可されないのでチップは信頼されないことを示す。
The RD (Read) command is used to securely read the entire 256 bits of status data (M) from an untrusted authentication chip. Only valid authentication chips respond correctly to RD requests. The output bit from the RD command can be supplied as an input bit to the TST command on the trusted authentication chip for verification, the first 256 bits (M) are later if the TST returns 1 (as expected). Saved for use in. Since the authentication chip is serial, the command and input parameters should be transferred one bit at a time. The bit order is from LSB to MSB of each command component. Thus, the RD command is bits 0-2 of the RD opcode, followed by bits 0-159 of X, and bits 0-159 of F K1 [x]. A total of 320 bits are transferred. X and F K1 [X] are obtained by calling the trusted authentication chip's RND command. The 320 bits output from the trusted chip's RND command can thus be supplied directly to the untrusted chip's RD command, and those bits may not be stored by the system. The RD command can only be used when the following conditions are met:
SIWritten = 1 indicates that K 1 , K 2 , R have been set up by the SSI command;
IsTrusted = 0 Indicates that the chip is not trusted because it is not allowed to generate a random number sequence.

加えて、RDの呼び出しは、MinTicksRemainingレジスタが0に達するまで待たなければならない。そうなった後、レジスタには、MinTicksが再ロードされ、RDへの呼び出しの間に最小限度の時間が確実に経過する。MinTicksRemainingにMinTicksが再ロードされると、RDコマンドは入力パラメータが有効であることを検証する。これは、入力Xに対するFK1[X]を内部的に生成し、次に、得られた結果を入力FK1[X]と比較することによって行われる。この生成及び比較は、入力パラメータが正しいかどうかとは無関係に同じ時間を使用しなければならない。時間が同一ではない場合、攻撃者は、FK1[X]のどのビットが間違っているかに関する情報を得ることができる。入力パラメータが無効になるのは、間違ったシステム(誤ったビットを渡す)、間違ったシステムに間違った消耗品がある場合、不良の信頼されるチップ(不良なペアを生成する)、又は認証チップへの攻撃に限られる。一定値0は入力パラメータが間違っている場合に返される。0が返されるまでに要する時間は、あらゆる不良な入力に対して同じでなければならないので、攻撃者は何が無効であるかに関する情報を全く学習できない。入力パラメータが検証されると、出力値が計算される。Mの256ビットの内容は、M[0]のビット0−15、M[1]のビット0−15から、M[15]のビット0−15の順番に転送される。FK2[X|M]は計算され、ビット0−159として出力される。Rレジスタは、X、FK1[X]ペアの検証中に、値を格納するため使用される。その理由は、RNDとRDが相互に排他的であるためである。RDコマンドは以下のステップで実施される。 In addition, the RD call must wait until the MinTicksRemaining register reaches zero. After that, the registers are reloaded with MinTicks, ensuring that a minimum amount of time elapses between calls to the RD. When MinTicks is reloaded into MinTicksRemaining, the RD command verifies that the input parameters are valid. This internally generate F K1 [X] with respect to the input X, then carried out by comparing the results obtained with the input F K1 [X]. This generation and comparison must use the same time regardless of whether the input parameters are correct. If the times are not the same, the attacker can obtain information about which bits of F K1 [X] are wrong. An input parameter is invalid if it is the wrong system (passing the wrong bit), if the wrong system has the wrong consumables, a bad trusted chip (creating a bad pair), or an authentication chip Limited to attacks on A constant value of 0 is returned if the input parameter is incorrect. Since the time taken to return 0 must be the same for every bad input, the attacker cannot learn any information about what is invalid. When the input parameters are verified, the output value is calculated. The 256-bit contents of M are transferred in the order of bits 0-15 of M [0], bits 0-15 of M [1], and bits 0-15 of M [15]. F K2 [X | M] is calculated and output as bits 0-159. The R register is used to store a value during verification of the X, F K1 [X] pair. The reason is that RND and RD are mutually exclusive. The RD command is implemented in the following steps.

Figure 0004309954
RND−ランダム
入力:無し
出力:R、FK1[R]=[160ビット、160ビット]
変更内容:無し。
Figure 0004309954
RND-Random input: None Output: R, F K1 [R] = [160 bits, 160 bits]
Changes: None.

RND(ランダム)コマンドは、RD及びTSTコマンドによって、後続の認証で使用するための有効R、FK1[R]ペアを獲得するためクライアントによって使用される。入力パラメータが無いので、RNDコマンドは単にRNDオペコードのビット0−2である。RNDコマンドは以下の条件が充たされた場合に限り使用できる:
SIWritten=1 KおよびRがSSIコマンドによってセットアップされたことを示す;
IsTrusted=1 チップは乱数シーケンスを生成することが許可されていることを示す。
The RND (Random) command is used by the client to acquire a valid R, F K1 [R] pair for use in subsequent authentication by the RD and TST commands. Since there are no input parameters, the RND command is simply bits 0-2 of the RND opcode. The RND command can only be used if the following conditions are met:
SIWritten = 1 indicates that K 1 and R have been set up by SSI command;
IsTrusted = 1 Indicates that the chip is allowed to generate a random number sequence.

RNDは、RとFK1[R]の両方を呼び出し元へ返す。RNDコマンドの288ビット出力は、信頼されないチップのRDコマンドに入力パラメータとして供給することが可能である。クライアントはそれらを全く格納する必要が無い。なぜならば、それらは再度要求されないからである。しかし、TSTコマンドは、RDコマンドに渡された乱数が最初にRNDコマンドから取得されたものである場合に限り成功する。呼び出し元がRNDだけを複数回呼び出すならば、同じR、FK1[R]のペアが毎回返されるであろう。Rは、TSTへの呼び出しが成功であった後、シーケンス内の次の乱数へ進む。より詳しくはTSTの説明を参照せよ。RNDコマンドは以下のステップで実施される。 The RND returns both R and F K1 [R] to the caller. The 288 bit output of the RND command can be provided as an input parameter to the RD command of the untrusted chip. The client does not need to store them at all. Because they are not required again. However, the TST command succeeds only if the random number passed to the RD command is the one originally obtained from the RND command. If the caller calls only RND multiple times, the same R, F K1 [R] pair will be returned each time. R proceeds to the next random number in the sequence after a successful call to TST. See the description of TST for more details. The RND command is implemented in the following steps.

Figure 0004309954

TST−テスト(TEST)
入力:X、FK2[R|X]=[256ビット、160ビット]
出力:1又は0=[1ビット]
変更内容:M、R及びMinTicksRemaining(又は攻撃が検出されたならば全てのレジスタ)。
Figure 0004309954

TST-Test (TEST)
Input: X, F K2 [R | X] = [256 bits, 160 bits]
Output: 1 or 0 = [1 bit]
Changes: M, R, and MinTicksRemaining (or all registers if an attack is detected).

TST(テスト(Test))コマンドは、信頼されない認証チップからのMの読み出しを認証するため使用される。TST(テスト)コマンドは、TSTコマンドオペコードと、その後に続く入力パラメータ:X及びFK2[R|X]と、により構成される。認証チップはシリアルであるため、これは同時に1ビットずつ転送されなければならない。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、TSTコマンドは、TSTオペコードのビット0−2と、その後に続く、Mのビット0−255と、FK2[R|M]のビット0−159である。全部で419ビットが転送される。最後の416入力ビットは、RDコマンドから信頼されない認証チップへの出力ビットとして獲得されるので、データ全体をクライアントが保存する必要はない。その代わりに、ビットは、信頼された認証チップのTSTコマンドへそのまま渡すことができる。Mのうちの256ビットだけがRDコマンドに秘密にされるべきである。TSTコマンドは、以下の条件が充たされたときに限り使用できる:
SIWritten=1 KおよびRがSSIコマンドによってセットアップされたことを示す;
IsTrusted=1 チップは乱数シーケンスを生成することが許可されていることを示す。
A TST (Test) command is used to authenticate the reading of M from an untrusted authentication chip. The TST (test) command is composed of a TST command opcode followed by input parameters: X and F K2 [R | X]. Since the authentication chip is serial, it must be transferred bit by bit at the same time. The bit order is from LSB to MSB of each command component. Therefore, the TST command is bits 0-2 of the TST opcode, followed by bits 0-255 of M, and bits 0-159 of F K2 [R | M]. A total of 419 bits are transferred. The last 416 input bits are obtained as output bits from the RD command to the untrusted authentication chip, so the entire data does not need to be saved by the client. Instead, the bit can be passed directly to the TST command of the trusted authentication chip. Only 256 bits of M should be kept secret to the RD command. The TST command can only be used when the following conditions are met:
SIWritten = 1 indicates that K 2 and R have been set up by SSI command;
IsTrusted = 1 Indicates that the chip is allowed to generate a random number sequence.

加えて、TSTの呼び出しは、MinTicksRemainingレジスタが0に達するまで待たなければならない。そうなった後、レジスタには、MinTicksが再ロードされ、TSTへの呼び出しの間に最小限度の時間が確実に経過する。TSTは、内部M値を入力M値によって置き換えさせる。次に、FK2[M|R]が計算され、160ビット入力ハッシュ値と比較される。生成される単一出力ビットは、両者が同じであるならば1であり、両者が異なるならば0である。内部M値を使用することは、チップ上のスペースを節約し、RD及びTSTが相互に排他的なコマンドであることの理由である。出力ビットが1であるならば、Rはシーケンス内の次の乱数になるように更新される。これは、RD及びTSTテストが呼び出される毎に、呼び出し元に強制的に新しい乱数を使用させる。結果の出力ビットは、入力文字列全体が比較されるまでは出力されないので、TST関数内の比較を評価するために要する時間は常に同じである。このようにして、攻撃者は、実行時間、又は出力が与えられる前に処理されたビット数を比較できない。 In addition, the call to TST must wait until the MinTicksRemaining register reaches zero. After that, the registers are reloaded with MinTicks, ensuring that a minimum amount of time elapses between calls to the TST. TST causes the internal M value to be replaced by the input M value. Next, F K2 [M | R] is calculated and compared with the 160-bit input hash value. The single output bit generated is 1 if they are the same and 0 if they are different. Using an internal M value saves space on the chip and is the reason that RD and TST are mutually exclusive commands. If the output bit is 1, R is updated to be the next random number in the sequence. This forces the caller to use a new random number each time the RD and TST tests are called. Since the resulting output bits are not output until the entire input string is compared, the time required to evaluate the comparison in the TST function is always the same. In this way, the attacker cannot compare the execution time or the number of bits processed before the output is given.

次の乱数は、160ビットの最大周期のLFSR(タップはビット159、4、2及び1で選択)を使用してRから生成される。Rの初期160ビット値はSSIコマンドによってセットアップされ、0以外のいかなる乱数でもよい(0で満たされたLFSRは際限のない0のストリームを生成する)。Rはビット1、2、4及び159をまとめてXOR論理演算し、XOR論理演算の結果をb159への入力として用いて160ビット全部を右へ1ビットシフトすることにより変換される。新しいRは次のRND呼び出しの際に返される。TSTから0を返すために要する時間は、全ての不良な入力に対して同じであり、攻撃者は無効な入力に関して何も学習し得ないことに注意する必要がある。 The next random number is generated from R using a LFSR with a maximum period of 160 bits (tap selected by bits 159, 4, 2 and 1). The initial 160-bit value of R is set up by an SSI command and can be any random number other than 0 (LFSR filled with 0 produces an unlimited stream of 0). R is converted by performing an XOR logic operation on bits 1, 2, 4 and 159 together and shifting the entire 160 bits to the right by 1 bit using the result of the XOR logic operation as an input to b 159 . The new R is returned on the next RND call. Note that the time required to return 0 from the TST is the same for all bad inputs, and the attacker cannot learn anything about invalid inputs.

TSTコマンドは以下のステップで実施される。 The TST command is implemented in the following steps.

Figure 0004309954
尚、ステップ7では、単純にそのままRを進めることができない。なぜならば、Rはフラッシュメモリであり、セットされたビットが0になるためには消去しなければならないからである。電源が、古いRの値を消去した後で新しいRの値が書き込まれる前に、ステップ7の間に認証チップから取り外された場合、Rは消去されるが再プログラミングされない。したがって、IsTrusted=1でありながら、R=0であるという状況が生まれ、この状況が起こり得るのは攻撃者が原因となる場合だけである。ステップ4はこの事象を検出し、攻撃が検出された場合に動作する。この問題は、Rのための第2の160ビットフラッシュレジスタと有効性ビットとを設け、新しい値がロードされた後にトグル切替することで防ぐことができる。これは、スペースの理由で本実施形態には組み込まれていないが、チップ空間がそれを許容するならば、補助的な160ビットフラッシュレジスタがこの目的のために有用であろう。
Figure 0004309954
In step 7, R cannot be simply advanced as it is. This is because R is a flash memory and must be erased in order for the set bit to become zero. If the power supply is removed from the authentication chip during step 7 after erasing the old R value and before the new R value is written, R is erased but not reprogrammed. Therefore, the situation that IsTrusted = 1 but R = 0 is born, and this situation can only occur if the attacker is responsible. Step 4 detects this event and operates when an attack is detected. This problem can be prevented by providing a second 160-bit flash register for R and a validity bit and toggling after a new value is loaded. This is not incorporated into this embodiment for space reasons, but if the chip space allows it, an auxiliary 160-bit flash register would be useful for this purpose.

WR−書き込み(WRITE)
入力:Mnew=[256ビット]
出力:無し
変更内容:M。
WR-write (WRITE)
Input: M new = [256 bits]
Output: None Change content: M.

WR(書き込み(Write))コマンドは、認証チップ状態データを格納するMの書き込み可能な部分を更新するため使用される。WRコマンド自体は安全ではない。WRコマンドの後には、(RDコマンドによる)認証されたMの読み出しが続き、指定されたとおりに変更がなされたことを保証する。WRコマンドは、WRコマンドオペコードと、その後に続くMへ書き込まれるべき新しい256ビットのデータと、を渡すことによって呼び出される。認証チップはシリアルであるため、Mの新しい値は同時に1ビットずつ転送されなければならない。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、WRコマンドは、WRオペコードのビット0−2と、その後に続く、M[0]のビット0−15と、M[1]のビット0−15からM[15]のビット0−15まである。全部で259ビットが転送される。WRコマンドは、SIWritten=1のとき、即ち、K、K、RがSSIコマンドによってセットアップされたことを示すときに限り使用できる(SIWrittenが0であるならば、K、K、Rは未だセットアップされていないので、代わりにCLRコマンドが呼び出される)。特定のM[n]への書き込みの可能性は、AccesssModeレジスタに格納されているような対応したアクセスモードビットにより支配される。AccessModeビットはSAMコマンドを用いてセットできる。新しい値をM[n]へ書き込みとき、M[n]はフラッシュメモリであるということを考慮しなければならない。M[n]の全てのビットを消去した後、適切なビットをセットしなければならない。二つのステップが別々のサイクルで行われるので、攻撃の可能性は無防備のままである。攻撃者は、消去後、しかし、新しい値をプログラミングする前に、電源を取り外すことが可能である。しかしながら、攻撃者はこれを行っても利益がない:
この手段によってリード/ライトM[n]が0に変更されることは全く利益がない。なぜならば、攻撃者はWRコマンドを使用して任意の値を書き込めるからである;
この手段によってリードオンリーM[n]が0に変更されることによって、付加的なテキストペアを知ることができる(ここで、M[n]は元の値ではなく0である)。将来M[n]値を使用する場合、それらは既に0であるため、全く情報が与えられない;
デクリメントオンリーM[n]が0に変更されると、消耗品が使い切られる時間が早まるだけである。これは、消耗品を使用することによって得られるような何ら新しい情報を攻撃者に与えることはない。
The WR (Write) command is used to update the writable part of M that stores the authentication chip state data. The WR command itself is not secure. The WR command is followed by an authenticated M read (by the RD command) to ensure that the changes have been made as specified. The WR command is invoked by passing the WR command opcode followed by new 256-bit data to be written to M. Since the authentication chip is serial, the new value of M must be transferred one bit at a time. The bit order is from LSB to MSB of each command component. Therefore, the WR command includes bits 0-2 of the WR opcode, followed by bits 0-15 of M [0], bits 0-15 of M [1], and bits 0-15 of M [15]. is there. A total of 259 bits are transferred. The WR command can only be used when SIWritten = 1, ie, indicating that K 1 , K 2 , R have been set up by the SSI command (if SIWritten is 0, K 1 , K 2 , R Is not set up yet, the CLR command is called instead). The possibility of writing to a particular M [n] is governed by the corresponding access mode bit as stored in the AccessMode register. The AccessMode bit can be set using a SAM command. When writing a new value to M [n], it must be taken into account that M [n] is a flash memory. After erasing all bits of M [n], the appropriate bit must be set. Since the two steps are performed in separate cycles, the possibility of attack remains unprotected. An attacker can remove the power supply after erasure, but before programming a new value. However, attackers do not benefit from doing this:
Changing the read / write M [n] to 0 by this means has no benefit. This is because an attacker can write arbitrary values using the WR command;
By changing the read-only M [n] to 0 by this means, an additional text pair can be known (where M [n] is 0 instead of the original value). When using M [n] values in the future, they are already 0, so no information is given;
When the decrement only M [n] is changed to 0, the time until the consumable is used up is only accelerated. This does not give the attacker any new information that can be gained by using consumables.

WRコマンドは以下のステップで実施される。 The WR command is implemented in the following steps.

Figure 0004309954
SAM−アクセスモードセット(SET ACCESS MODE)
入力:AccessModenew=[32ビット]
出力:AccessMode=[32ビット]
変更内容:AccessMode。
Figure 0004309954
SAM-access mode set (SET ACCESS MODE)
Input: AccessMode new = [32 bits]
Output: AccessMode = [32 bits]
Details of change: AccessMode.

SAM(アクセスモードセット(Set Access Mode))コマンドは、AccessModeレジスタの32ビットをセットするため使用され、消耗品認証チップでの使用だけが有効である(IsTrustedフラグ=0の場合)。SAMコマンドは、SAMコマンドオペコードと、その後に続く、AccessModeレジスタにビットをセットするために使用される32ビット値と、を渡すことによって呼び出される。認証チップはシリアルであるため、データは同時に1ビットずつ転送されなければならない。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、SAMコマンドは、SAMオペコードのビット0−2と、その後に続く、AccessModeにセットされるビットのビット0−31と、である。全部で35ビットが転送される。AccessModeレジスタはCLRコマンドの実行時に限り0にクリアされる。00というアクセスモードはRW(リード/ライト)のアクセスモードを示すので、CLR後にAccessModeビットをセットしないことは、全てのMが読み書きできることを意味する。SAMコマンドだけがAccessModeレジスタのビットをセットする。したがって、クライアントは、32ビット語に適当なビットをセットし、入力パラメータとしての32ビット値を用いてSAMを呼び出すことにより、M[n]に対するアクセスモードビットをRWからRO(リードオンリー)へ変更可能である。これは、様々な時点での、おそらく製造プロセスの種々のステージにおけるアクセスモードビットのプログラミングを可能にさせる。例えば、リードオンリーランダムデータは、初期鍵プログラミングステージ中に書き込むことが可能であり、一方、消耗品シリアル番号のような項目のための第2のプログラミングステージが許可される。 The SAM (Set Access Mode) command is used to set the 32 bits of the AccessMode register and is only valid for use with the consumables authentication chip (when the IsTrusted flag = 0). The SAM command is invoked by passing a SAM command opcode followed by a 32-bit value that is used to set a bit in the AccessMode register. Since the authentication chip is serial, data must be transferred one bit at a time. The bit order is from LSB to MSB of each command component. Thus, the SAM command is bits 0-2 of the SAM opcode, followed by bits 0-31 of bits set in AccessMode. A total of 35 bits are transferred. The AccessMode register is cleared to 0 only when the CLR command is executed. Since an access mode of 00 indicates an RW (read / write) access mode, not setting the AccessMode bit after CLR means that all M can read and write. Only the SAM command sets the bits in the AccessMode register. Therefore, the client changes the access mode bit for M [n] from RW to RO (read only) by setting the appropriate bit in the 32-bit word and calling SAM with the 32-bit value as the input parameter. Is possible. This allows programming of access mode bits at various points in time, perhaps at various stages of the manufacturing process. For example, read-only random data can be written during the initial key programming stage, while a second programming stage for items such as consumable serial numbers is allowed.

SAMコマンドはビットをセットするだけであるので、その効果は、M[n]に対応するアクセスモードビットをRWからMSR、NMSR又はROの何れかへ進行させ得ることである。尚、MSRのアクセスモードはROへ変更可能であるが、これは、攻撃者には役立たないことに注意する必要がある。なぜならば、不正に加工された認証チップへの書き込み後のMの認証は、書き込みが不成功であったことを検出し、オペレーションを中止するからである。ビットの設定は、フラッシュメモリが最も巧く機能する方法に対応する。AccessModeレジスタ内のビットをクリアする唯一の方法は、例えば、デクリメントオンリーM[n]をリード/ライトに変更するための唯一の方法は、CLRコマンドを使用することである。CLRコマンドは、AccessModeレジスタを消去(クリア)するだけではなく、鍵及び全てのMをクリアする。このようにして、M[n]に対応するAccessMode[n]ビットは、CLRコマンドの間で1回だけ有効に変更することができる。SAMコマンドは(適切なビットが入力パラメータによってセットされた後)AccessModeレジスタの新しい値を返す。入力パラメータを0としてSAMを呼び出すことにより、AccessModeは変更されず、したがって、AccessModeの現在値が呼び出し元へ返される。 Since the SAM command only sets a bit, the effect is that the access mode bit corresponding to M [n] can be advanced from RW to either MSR, NMSR or RO. Note that the MSR access mode can be changed to RO, but this does not help the attacker. This is because the authentication of M after writing to an illegally processed authentication chip detects that the writing was unsuccessful and stops the operation. The setting of the bit corresponds to the way that the flash memory works best. The only way to clear a bit in the AccessMode register is, for example, to use the CLR command to change the decrement only M [n] to read / write. The CLR command not only erases (clears) the AccessMode register, but also clears the key and all M. In this way, the AccessMode [n] bit corresponding to M [n] can be effectively changed only once between CLR commands. The SAM command returns the new value of the AccessMode register (after the appropriate bits are set by the input parameters). By calling the SAM with the input parameter set to 0, the AccessMode is not changed, so the current value of the AccessMode is returned to the caller.

SAMコマンドは以下のステップで実施される。 The SAM command is implemented in the following steps.

Figure 0004309954
GIT−IsTrustedを取得(GET ISTRUSTED)
入力:無し
出力:IsTrusted=[1ビット]
変更内容:無し。
Figure 0004309954
Acquired GIT-IsTrusted (GET ISTRUSTED)
Input: None Output: IsTrusted = [1 bit]
Changes: None.

GIT(IsTrusted取得(Get IsTrusted)コマンドは、認証チップ上のIsTrustedビットの現在値を読むため使用される。戻されるビットが1であるならば、認証チップは信頼できるシステム認証チップである。戻されるビットが0であるならば、認証チップは消耗品認証チップである。GITコマンドは、GITコマンドオペコードだけを含む。認証チップはシリアルであるため、これは同時に1ビットずつ転送されなければならない。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、SAMコマンドは、SAMオペコードのビット0−2として送信される。全部で3ビットが転送される。GITコマンドは以下のステップで実施される。 The GIT (Get IsTrusted) command is used to read the current value of the IsTrusted bit on the authentication chip. If the returned bit is 1, the authentication chip is a trusted system authentication chip. If the bit is 0, the authentication chip is a consumable authentication chip, the GIT command contains only the GIT command opcode, and since the authentication chip is serial, it must be transferred bit by bit at the same time. The order is from LSB to MSB of each command component, so the SAM command is transmitted as bits 0-2 of the SAM opcode, a total of 3 bits are transferred, the GIT command is implemented in the following steps: .

Figure 0004309954
SMT−MinTicksセット(SET MINTICKS)
入力:MinTicksnew=[32ビット]
出力:無し
変更内容:MinTicks。
Figure 0004309954
SMT-MinTicks set (SET MINTICKS)
Input: MinTicks new = [32 bits]
Output: None Changed content: MinTicks.

SMT(MinTicksセット(Set MinTicks))コマンドは、MinTicksレジスタのビットをセットし、TST及びRDへの呼び出しの間に経過すべきMinTicks数を定めるため使用される。SMTコマンドは、SMTコマンドオペコードと、その後に続く、MinTicksレジスタにビットをセットするために使用される32ビット値と、を渡すことによって呼び出される。認証チップはシリアルであるため、データは同時に1ビットずつ転送されなければならない。ビット順序は、各コマンドコンポーネントのLSBからMSBである。したがって、SMTコマンドは、SMTオペコードのビット0−2と、その後に続く、MinTicksにセットされるビットのビット0−31と、である。全部で35ビットが転送される。MinTicksレジスタはCLRコマンドの実行時に限り0にクリアされる。0という値は、鍵付き関数の呼び出しの間にチックを経過させなくてもよいことを示す。したがって、この関数は、クロック速度制限ハードウェアがチップに動作を許可する頻度で呼び出される。 The SMT (Set MinTicks) command is used to set the MinTicks register bit and determine the number of MinTicks that should elapse between calls to TST and RD. The SMT command is invoked by passing an SMT command opcode followed by a 32-bit value used to set a bit in the MinTicks register. Since the authentication chip is serial, data must be transferred one bit at a time. The bit order is from LSB to MSB of each command component. Thus, the SMT command is bits 0-2 of the SMT opcode, followed by bits 0-31 of the bits set in MinTicks. A total of 35 bits are transferred. The MinTicks register is cleared to 0 only when the CLR command is executed. A value of 0 indicates that ticks do not have to pass between keyed function calls. Thus, this function is called at a frequency that the clock speed limit hardware allows the chip to operate.

SMTコマンドはビットをセットするだけなので、その効果は、クライアントが値をセットできるようにさせ、更なる呼び出しが行われた場合に時間遅延を増大させるだけである。既にセットされたビットをセットすることは効果がなく、クリアされているビットをセットすることだけが、チップを更に遅くさせるために作用する。ビットの設定はフラッシュメモリが最も巧く機能する方法に対応する。MinTicksレジスタ内のビットをクリアする唯一の方法は、例えば、10チックの値を4チックの値に変更するための唯一の方法は、CLRコマンドを使用することである。しかし、CLRコマンドは、MinTicksレジスタを0にクリアするだけではなく、全ての鍵及びMをクリアする。したがって、それは攻撃者にとっては役に立たない。このようにして、MinTicksレジスタは、CLRコマンドの間で1回だけ有効に変更することができる。 Since the SMT command only sets the bit, the effect is to allow the client to set the value and only increase the time delay if further calls are made. Setting a bit that has already been set has no effect, and only setting a bit that has been cleared serves to further slow down the chip. The setting of the bit corresponds to the way that the flash memory works best. The only way to clear a bit in the MinTicks register, for example, is to use the CLR command to change the value of 10 ticks to a value of 4 ticks. However, the CLR command not only clears the MinTicks register to 0, but also clears all keys and M. Therefore it is useless for attackers. In this way, the MinTicks register can be effectively changed only once between CLR commands.

SMTコマンドは以下のステップで実施される。 The SMT command is implemented in the following steps.

Figure 0004309954
認証チップのプログラミング
認証チップは物理的に安全な環境内で論理的に安全な情報でプログラミングしなければならない。その結果として、プログラミング手続は論理的セキュリティと物理的セキュリティの両方を取り扱う。論理的セキュリティは、K、K、R及び乱数M[n]の値が、コンピュータではなく、物理的にランダムなプロセスによって生成されることを保証するプロセスである。また、それは、チップの部品のプログラミングされる順序が最も論理的に安全であることを保証するプロセスでもある。物理的セキュリティは、プログラミングステーションが物理的に安全であり、したがって、鍵生成ステージ期間と鍵の記憶の耐用期間の両方で、K及びKが秘匿されることを保証するプロセスである。その上、プログラミングステーションは、鍵を獲得又は破壊する物理的攻撃に対抗しなければならない。認証チップは、K及びKが秘匿されることを保証するための固有のセキュリティメカニズムを備えているが、プログラミングステーションはK及びKを安全に保持しなければならない。
Figure 0004309954
Authentication Chip Programming The authentication chip must be programmed with logically secure information in a physically secure environment. As a result, the programming procedure deals with both logical security and physical security. Logical security is a process that ensures that the values of K 1 , K 2 , R, and random number M [n] are generated by a physically random process, not a computer. It is also a process that ensures that the order in which the chip components are programmed is the most logically secure. Physical security is a process that ensures that the programming station is physically secure, and therefore K 1 and K 2 are kept secret during both the key generation stage period and the lifetime of key storage. In addition, the programming station must counter physical attacks that acquire or destroy keys. Although the authentication chip has its own security mechanism to ensure that K 1 and K 2 are concealed, the programming station must keep K 1 and K 2 secure.

概要
製造後、認証チップは使用可能にされる前にプログラミングする必要がある。全てのチップにおいて、K及びKの値を確定しなければならない。チップがシステム認証チップを目的としているならば、Rの初期値を決めなければならない。チップが消耗品認証チップを目的としているならば、Rは0にセットし、M及びAccessModeの初期値も設定しなければならない。したがって、以下のステージが確認される:
システムと消耗品の間の繰り返しを決定する;
システム及び消耗品用の鍵を決定する;
システム及び消耗品用のMinTicksを決定する;
鍵、ランダムシート、MinTicks及び未使用Mをプログラムする;
状態データ及びアクセスモードをプログラムする。
Overview After manufacture, the authentication chip needs to be programmed before it can be used. For all chips, the values of K 1 and K 2 must be determined. If the chip is intended for a system authentication chip, the initial value of R must be determined. If the chip is intended for a consumable authentication chip, R must be set to 0 and the initial values for M and AccessMode must also be set. Therefore, the following stages are confirmed:
Determine the iteration between the system and consumables;
Determine keys for systems and consumables;
Determine MinTicks for the system and consumables;
Program keys, random sheets, MinTicks and unused M;
Program state data and access mode.

消耗品又はシステムが必要でなくなると、取り付けられた認証チップは再使用可能である。これは、もう一度ステージ4から始めて、チップを再プログラミングすることによって簡単に実現できる。各ステージは以下のセクションで説明する。 When no consumable or system is needed, the attached authentication chip can be reused. This can be easily achieved by starting again at stage 4 and reprogramming the chip. Each stage is described in the following sections.

ステージ0:製造
認証チップの製造は特別なセキュリティを必要としない。製造ステージでは、チップにプログラミングされている秘密情報はない。アルゴリズム及びチッププロセスは特別ではない。標準的なフラッシュプロセスが使用される。チップ製造者とプログラミングステーションの間での認証チップの盗難は、複製品製造者にブランクチップを与えることになるだけである。これは、認証チップの販売を危うくすることは殆どなく、認証チップによって何も認証されない。プログラミングステーションは、消耗品及びシステムのプロダクト鍵を含む唯一のメカニズムであるため、複製品製造者は、正しい鍵を用いてチップをプログラムできない。複製品製造者は、自分専用のシステム及び消耗品用にブランクチップをプログラミングすることは可能であるが、それらの品を見破られずに販売することは困難であろう。その上、1回の盗みではビジネスの基礎を置くことは難しいであろう。
Stage 0: The manufacture of the authentication chip does not require any special security. At the manufacturing stage, there is no secret information programmed into the chip. The algorithm and chip process are not special. A standard flash process is used. The theft of the authentication chip between the chip manufacturer and the programming station only gives the replica manufacturer a blank chip. This hardly compromises the sale of the authentication chip and nothing is authenticated by the authentication chip. Since the programming station is the only mechanism that contains the consumable and system product key, the replica manufacturer cannot program the chip with the correct key. Replica manufacturers can program blank chips for their own systems and consumables, but it would be difficult to sell without seeing those items. In addition, it would be difficult to base the business on a single theft.

ステージ1:システムと消耗品の間の相互作用の決定
システムとは何か、及び消耗品とは何か、の判断は、認証チップのプログラミングが可能になる前に決定されるべきである。どの消耗品がどのシステムで使用可能であるかに関する判断をする必要がある。なぜならば、接続されるシステムと消耗品だけが同じ鍵情報を共有しなければならないからである。また、それらは、状態データの一部の解釈が未決定であっても、状態データ使用メカニズムを共有すべきである。簡単な例は、車と、車キーの場合である。車自体はシステムであり、車キーは消耗品である。各車には数個の車キーがあり、各キーは特定の車と同じ鍵情報を格納する。しかし、各車(システム)は(その車キーと共有される)異なる鍵をもつであろう。なぜならば、ある車の車キーが別の車で機能することが求められないからである。別の例は、特定のトナーカートリッジを必要とするコピー機の場合である。簡単に言えば、コピー機はシステムであり、トナーカットリッジは消耗品である。しかし、カートリッジとコピー機の間にどのような互換性があるかを判断する必要がある。この判断は、従来、トナーカートリッジの物理的パッケージングによって行われ、ある種のカートリッジは、新しいモデルのコピー機の設計判断に基づいて、その新しいモデルのコピー機に適合し、或いは、適合しない。認証チップが使用されるとき、連動すべきコンポーネントは同じ鍵情報を共有しなければならない。
Stage 1: Determining what is the interaction between the system and the consumable, and what is the consumable, should be determined before the authentication chip can be programmed. A determination needs to be made as to which consumables are available on which systems. This is because only the connected system and consumables must share the same key information. They should also share a state data usage mechanism, even if interpretation of some of the state data is undetermined. A simple example is the case of a car and a car key. The car itself is a system, and the car key is a consumable item. Each car has several car keys, and each key stores the same key information as a particular car. However, each car (system) will have a different key (shared with its car key). This is because the car key of one car is not required to function in another car. Another example is the case of a copier that requires a specific toner cartridge. Simply put, the copier is a system and the toner cut ridge is a consumable item. However, it is necessary to determine what compatibility is available between the cartridge and the copier. This determination is conventionally made by physical packaging of the toner cartridge, and certain cartridges may or may not be compatible with the new model copier based on the design decision of the new model copier. When an authentication chip is used, the components to be linked must share the same key information.

更に、消耗品はタイプ毎に、M(状態データ)の異なる分割方法が必要になる。Mの使用法は、アプリケーション毎に変化するものであり、M[n]及びAccessMode[n]の割付方法も同様である:
特定用途の消耗品状態データを定義する;
将来の使用のため(必要に応じて)一部のM[n]レジスタを確保する。それらを0にセットし、リードオンリーにセットする。値は互換性を保つためにシステムでテストすることができる;
残りのM[n]レジスタ(少なくとも1個、しかし、M[15]であってはならない)をリードオンリーにセットし、各M[n]の内容を完全にランダムにする。これによって、複製品製造者は認証鍵への攻撃がより困難になる;
以下の例は、状態データが編成される方法を示す。
Furthermore, consumables require different division methods for M (status data) for each type. The usage of M varies from application to application, and the allocation method for M [n] and AccessMode [n] is similar:
Define consumable status data for specific applications;
Reserve some M [n] registers for future use (if necessary). Set them to 0 and set them to read-only. Values can be tested on the system for compatibility;
Set the remaining M [n] registers (at least one, but not M [15]) read-only, and make the contents of each M [n] completely random. This makes it more difficult for replicators to attack authentication keys;
The following example shows how the state data is organized.

例1
車キーが付随した車を想定する。16ビット鍵番号は、所定の車の車キーを一意に識別するために十分足りる。Mの256ビットは以下の通り分割される。
Example 1
Assume a car with a car key attached. A 16-bit key number is sufficient to uniquely identify a car key for a given car. The 256 bits of M are divided as follows.

Figure 0004309954
車製造者が全ての車の全ての論理的鍵を保持するならば、車キーを紛失したときに、新しい物理的な車キーを製造することは些細な問題である。新しい車キーは、M[0]に新しい鍵番号を格納するが、その車の認証チップと同じK及びKを含む。車システムは、特定の鍵番号を無効にすることができる(例えば、鍵を紛失したとき)。このようなシステムは、鍵0(マスター鍵)を最初に挿入し、次に全ての有効な鍵を挿入し、次に、鍵0をもう一度挿入することを要求するかもしれない。これらの有効な鍵だけが車と連動するようになる。最悪のケースでは、例えば、全ての車キーを紛失すると、その車に対する新しい論理的な鍵の組を生成し、必要に応じて、関連した物理的な車キーを生成することができる。カーエンジン番号は、その鍵を特定の車に結びつけるために使用される。将来用データは、レンタル情報、例えば、ドライバ/貸出者の詳細情報のような事項を格納する。
Figure 0004309954
If the car manufacturer holds all the logical keys for all cars, it is a trivial problem to make a new physical car key when the car key is lost. The new car key stores the new key number in M [0] but includes the same K 1 and K 2 as the car's authentication chip. The car system can invalidate a specific key number (eg, when the key is lost). Such a system may require that key 0 (master key) be inserted first, then all valid keys inserted, and then key 0 inserted again. Only these valid keys will work with the car. In the worst case, for example, if all car keys are lost, a new logical key pair for the car can be generated, and the associated physical car key can be generated if necessary. The car engine number is used to bind the key to a specific car. The future data stores items such as rental information, for example, detailed information of the driver / lender.

例2
100000回のコピー毎に交換しなければならないコピー機画像ユニットの例を想定する。残りページ数を記憶するため32ビットが必要になる。Mの256ビットは次の通り分割される。
Example 2
Consider an example of a copier image unit that must be replaced after every 100,000 copies. 32 bits are required to store the remaining number of pages. The 256 bits of M are divided as follows.

Figure 0004309954
10000回のコピー毎に交換しなければならない低品質画像ユニットが製作されたとき、32ビットのページカウントは、既存コピー機との互換性のためにそのまま使用される。これにより、数タイプの消耗品を同じシステムで使用できるようになる。
Figure 0004309954
When a low quality image unit is produced that must be replaced after every 10,000 copies, the 32-bit page count is used as is for compatibility with existing copiers. This allows several types of consumables to be used in the same system.

例3
25枚の写真を格納するポラロイド型カメラの例を考える。残り写真数を記憶するためには16ビットのカウントダウンだけあればよい。Mの256ビットは次の通り分割される。
Example 3
Consider an example of a polaroid camera that stores 25 photos. In order to store the number of remaining pictures, only a 16-bit countdown is required. The 256 bits of M are divided as follows.

Figure 0004309954
M[2]の残り写真数は、同じカメラシステムと使用するための多数の消耗品タイプの構築を可能にさせる。例えば、写真数36の新しい消耗品は簡単にプログラムできる。カメラの発表後、2年が経過した場合を考えると、新しいタイプのカメラが発表されている。それは、古い消耗品を使用することが可能であるが、新しいフィルムタイプも処理できる。M[3]はフィルムタイプを定義するため使用できる。古いフィルムタイプは0であり、新しいフィルムタイプは他の新しい値である。新しいシステムはこれを利用することができる。元のシステムはM[3]に非零値を検出し、新しいフィルムタイプとの非互換性を認識する。新しいシステムは、M[3]の値を理解し、適切に応じる。古い消耗品との互換性を保つため、新しい消耗品及びシステムは、古いものと同じ鍵情報をもつことが必要である。新しいシステム及びその専用消耗品と完全に断ち切るためには、新しい鍵セットが必要になるであろう。
Figure 0004309954
The remaining number of photos in M [2] allows the construction of multiple consumable types for use with the same camera system. For example, a new consumable with 36 photos can be easily programmed. Considering the case where two years have passed since the announcement of the camera, a new type of camera has been announced. It can use old consumables but can also handle new film types. M [3] can be used to define the film type. The old film type is 0 and the new film type is another new value. New systems can take advantage of this. The original system detects a non-zero value in M [3] and recognizes the incompatibility with the new film type. The new system understands the value of M [3] and responds appropriately. To maintain compatibility with old consumables, new consumables and systems need to have the same key information as the old ones. A new key set will be required to completely disconnect from the new system and its dedicated consumables.

例4
シアン、マゼンタ、及びイエローの三つのインクを格納するプリンタ消耗品の例を考える。各インク量は別々にデクリメントされるべきである。Mの256ビットは次の通り分割される。
Example 4
Consider an example of a printer consumable that stores three inks, cyan, magenta, and yellow. Each ink amount should be decremented separately. The 256 bits of M are divided as follows.

Figure 0004309954
ステージ2:システム及び消耗品の鍵の決定
どのシステムとどの消耗品が同じ鍵を共有すべきであるかに関する決定がなされると、それらの鍵を定義しなければならない。したがって、K及びKの値が決定される。殆どのケースでは、K及びKは全体で1回だけ生成される。連動すべき(現在及び将来の)全てのシステム及び消耗品は、同じ鍵K及びKの値をもつ。したがって、K及びKは秘匿されなければならない。なぜならば、システム/消耗品の組み合わせに対するセキュリティメカニズム全体は、鍵が見られてしまうと、役に立たなくなるからである。鍵が暴露されると、その損害は、システム及び消耗品の数、並びに、それらを新たな暴露されていない鍵で再プログラミングすることの容易さに依存する。トナーカートリッジを用いるコピー機の場合、最悪のケースでは、複製品製造者は固有の認証チップを製造し(又は、さらに悪い場合には、それらを購入し)、判明した鍵でチップをプログラムし、固有の消耗品に挿入する。車キー付きの車のケースでは、各車は、異なる鍵の組をもつ。このことにより、2通りの一般的なシナリオが生まれる。第1のシナリオでは、車及び車キーがそれらの鍵を用いてプログラムされた後、K及びKが削除され、それらの値の記録が保持されず、即ち、K及びKを暴露する方法がない。しかし、その車のための予備の車キーは、車の認証チップを再プログラミングしない限り製作できない。第2のシナリオでは、車製造者はK及びKを保持し、その車のための新しいキーを製作可能である。K及びKの暴露は、ある者が特定の車専用の車キーを製作できることを意味する。
Figure 0004309954
Stage 2: Determining System and Consumable Keys Once a decision is made regarding which systems and which consumables should share the same key, those keys must be defined. Therefore, the values of K 1 and K 2 are determined. In most cases, K 1 and K 2 are generated only once in total. All systems and consumables (current and future) to be linked have the same key K 1 and K 2 values. Thus, K 1 and K 2 must be concealed. This is because the entire security mechanism for the system / consumable combination is useless once the key is seen. When a key is exposed, the damage depends on the number of systems and consumables and the ease with which they can be reprogrammed with a new unexposed key. In the case of a copier using a toner cartridge, in the worst case, the replica manufacturer manufactures unique authentication chips (or, in the worst case, purchases them), programs the chip with the found key, Insert into unique consumables. In the case of cars with car keys, each car has a different set of keys. This creates two general scenarios. In the first scenario, after cars and car keys are programmed with those keys, K 1 and K 2 are deleted and no record of their values is kept, ie exposing K 1 and K 2 There is no way to do it. However, a spare car key for that car cannot be made without reprogramming the car's authentication chip. In the second scenario, the car manufacturer holds K 1 and K 2 and can make a new key for the car. Exposure of K 1 and K 2, means that a person can be fabricated the car keys in a particular car only.

したがって、認証チップで使用される鍵及びランダムデータは、非決定論的な手段によって生成されるべきである(完全にコンピュータで生成された疑似乱数は使用できない。なぜならば、それは、生成器のシードを知ることによって将来の全ての数が得られるという点で決定論的であるからである)。K及びKは、コンピュータではなく、物理的にランダムなプロセスによって生成されるべきである。しかし、ランダム性の自然発生源に基づくランダムビット生成器は、外因の影響を受けやすく、故障し易い。そのような装置は、統計的なランダム性を定期的にテストすべきであることが避けられない。 Thus, the key and random data used in the authentication chip should be generated by non-deterministic means (fully computer generated pseudo-random numbers cannot be used because it uses the generator seed Because knowing is deterministic in that all future numbers can be obtained). K 1 and K 2 should be generated by a physically random process, not a computer. However, random bit generators based on random natural sources are susceptible to external causes and are prone to failure. It is inevitable that such devices should be tested periodically for statistical randomness.

簡単ではあるが、有用な乱数発生源は、SGIからのLavarand(登録商標)システムである。この生成器は、数分間隔で6個のラバランプを撮影するデジタルカメラを使用する。ラバランプは無秩序なタービュラント系を含む。得られたデジタル画像はSHA−1実装部に供給され、SHA−1実装部は、7方向のハッシュを生成し、デジタル化された画像から7バイト毎に160ビット値を生じる。7組の160ビットの合計は140バイトになる。この140バイトの値がBBS生成器に供給され、出力ビットストリームのスタート位置を決める。BBSからの出力160ビットは、鍵、又は認証チップ53である。 A simple but useful random number generator is the Lavarand® system from SGI. This generator uses a digital camera that captures six rubber lamps at intervals of a few minutes. Lava lamps include disordered turbulent systems. The resulting digital image is supplied to the SHA-1 implementation, which generates a 7-way hash and produces a 160-bit value for every 7 bytes from the digitized image. The total of seven sets of 160 bits is 140 bytes. This 140 byte value is supplied to the BBS generator to determine the start position of the output bitstream. The output 160 bits from the BBS is a key or an authentication chip 53.

非決定論的なランダムプロセスの極端な例は、クリーンルーム内で、Kのためにコインを160回トスし、Kのためにコインを160回トスすることである。それぞれの表又は裏に応じて、1又は0が鍵プログラマ装置のパネルに入力される。このプロセスは、(検証のための)数人の観測者が沈黙した状態(誰かが隠しマイクを持っているかもしれない)で行われる。重要なことは、安全なデータ入力及び記憶は、それほど簡単ではないということである。鍵プログラマ装置及び付随するプログラミングステーションの物理的セキュリティは、その固有の完全なドキュメントが必要である。鍵K及びKが決定された後、それらは、認証チップがその鍵を使用する必要のある限り保持されなければならない。最初の車/車キーのシナリオでは、K及びKは、単一のシステムチップ及び数個の消耗品チップがプログラムされた後に破壊されている。コピー機/トナーカートリッジのケースでは、K及びKは、トナーカートリッジがコピー機の役に立っている間に限り保持されなければならない。それらは秘匿されるべきである。 An extreme example of a non-deterministic random process is toss a coin 160 times for K 1 and toss 160 times for K 2 in a clean room. Depending on the front or back, 1 or 0 is entered into the panel of the key programmer device. This process is performed with several observers (for verification) silent (someone may have a hidden microphone). Importantly, secure data entry and storage is not so easy. The physical security of the key programmer device and the accompanying programming station requires its own complete documentation. After the keys K 1 and K 2 are determined, they must be retained as long as the authentication chip needs to use the key. In the first car / car key scenario, K 1 and K 2 are destroyed after a single system chip and several consumable chips are programmed. In the case of a copier / toner cartridge, K 1 and K 2 must be held only while the toner cartridge is useful for the copier. They should be kept secret.

ステージ3:システム及び消耗品のMinTicksの決定
MinTicksの値は、認証チップの動作クロック速度(システム固有)と、RD又はTST関数呼び出しの間の妥当な時間の根拠(アプリケーション固有)と、に依存する。単一チックの間隔は動作クロック速度に依存する。これは、入力クロック速度と認証チップのクロック制限ハードウェアの最大値である。例えば、認証チップのクロック制限ハードウェアは10MHzにセットされるが(これは変更できない)、入力クロックは1MHzである。このケースでは、1チックの値は10MHzではなく、1MHzが基準になる。入力クロックが1MHzではなく20MHzであるならば、1チックの値は10MHzが基準になる(なぜならば、クロック速度は10MHzで制限されている)。1チックの間隔がわかると、MinTicks値をセットすることができる。MinTicksの値は、鍵付きRD又はST関数への呼び出しの間に経過することが要求されるMinTicks数である。入力クロック速度が10MHzの最大クロック速度と一致する場合を想定する。TSTの呼び出しの間に1秒の最小値を求めるならば、MinTicksの値は10000000にセットされる。2秒のような値は、(1ページ当たりに1回の認証で、1ページが2から3秒毎に生成される)プリンタのようなシステムの場合には全く妥当な値である。
Stage 3: Determining MinTicks for system and consumables The value of MinTicks depends on the operating clock speed of the authentication chip (system specific) and the rationale for the reasonable time between RD or TST function calls (application specific) . The interval between single ticks depends on the operating clock speed. This is the maximum value of the input clock speed and the clock limit hardware of the authentication chip. For example, the authentication chip clock limit hardware is set to 10 MHz (which cannot be changed), but the input clock is 1 MHz. In this case, the value of 1 tick is 1 MHz instead of 10 MHz. If the input clock is 20 MHz instead of 1 MHz, the value of 1 tick is relative to 10 MHz (because the clock speed is limited to 10 MHz). Once the interval of one tick is known, the MinTicks value can be set. The value of MinTicks is the number of MinTicks that are required to elapse between calls to the keyed RD or ST function. Assume that the input clock speed matches the maximum clock speed of 10 MHz. If the minimum value of 1 second is determined during the TST call, the value of MinTicks is set to 10000000. A value such as 2 seconds is quite reasonable for a system such as a printer (one page is generated every 2 to 3 seconds with one authentication per page).

ステージ4:鍵、ランダムシード、最終チック及び未使用Mのプログラム
認証チップは、製造後、状態が不明である。或いは、認証チップは、ある消耗品で既に使用済みであり、別の消耗品で使用するために再プログラムしなければならない。確認証チップの各々は、クリアされ、新しい鍵及び新しい状態データでプログラムされる。認証チップのクリア処理及びその後のプログラミングは、安全なプログラミングステーション環境で行われる。
Stage 4: The key, random seed, final tick and unused M program authentication chips are in unknown state after manufacture. Alternatively, the authentication chip has already been used with one consumable and must be reprogrammed for use with another consumable. Each verification chip is cleared and programmed with a new key and new status data. Authentication chip clearing and subsequent programming is performed in a secure programming station environment.

信頼されたシステム認証チップのプログラミング
チップが信頼されたシステムチップであるならば、Rのシード値が生成される。それは、物理的にランダムなプロセスから抽出された乱数であり、0ではない。以下のタスクは、以下の順に、安全なプログラミング環境で行われる:
リセット チップをリセット
CLR[]
Load R
R(160ビットレジスタ)に物理的ランダムデータをロード
SSI[K,K,R]
SMT[MinTicksSystem]。
If the trusted system authentication chip programming chip is a trusted system chip, an R seed value is generated. It is a random number extracted from a physically random process and is not zero. The following tasks are performed in a secure programming environment in the following order:
Reset Reset chip CLR []
Load R
Load physical random data into R (160-bit register) SSI [K 1 , K 2 , R]
SMT [MinTicks System ].

ここで、認証チップはシステムへ挿入するための準備が完了している。認証チップは完全にプログラムされている。システム認証チップがこの時点で盗まれたならば、複製品製造者は、Kへの既知テキスト攻撃に出るために、又はKへの部分選択テキスト攻撃に出るために、R、FK1[R]のペアを生成すべくそれらを使用できる。これは、各々が信頼された認証チップを含む多数のシステムの購入と差がない。セキュリティは、認証プロトコルの強度と、K及びKのランダム性と、に依存する。 Here, the authentication chip is ready for insertion into the system. The authentication chip is fully programmed. If the system authentication chip is stolen at this point, the replica manufacturer can use R, F K1 [to go into a known text attack on K 1 or a partial text attack on K 2 . R] can be used to generate pairs. This is no different from purchasing multiple systems, each containing a trusted authentication chip. Security depends on the strength of the authentication protocol and the randomness of K 1 and K 2 .

信頼されない消耗品認証チップのプログラミング
チップが信頼されない消耗品認証チップである場合、プログラミングは信頼されたシステム認証チップのプログラミングとは少し異なる。最初に、Rのシード値は0である。それは、M及びAccessModeの値用の付加的なプログラミングを行う。未使用M[n]は0でプログラムされ、ランダムM[n]はランダムデータでプログラムされる。以下のタスクは、以下の順に、安全なプログラミング環境で行われる:
リセット チップをリセット
CLR[]
Load R
R(160ビットレジスタ)に0をロード
SSI[K,K,R]
Load X
X(256ビットレジスタ)に0をロード
Set 適当なM[n]に対応したXに物理的ランダムデータをセット
WR[X]
Load Y
Y(32ビットレジスタ)に0をロード
Set 適当なM[n]に対応したYにリードオンリーアクセスモードをセット
SAM[Y]
SMT[MinTicksConsumable]。
If the programming chip of the untrusted consumable authentication chip is an untrusted consumable authentication chip, the programming is slightly different from the programming of the trusted system authentication chip. Initially, the seed value for R is zero. It does additional programming for the values of M and AccessMode. Unused M [n] is programmed with 0, and random M [n] is programmed with random data. The following tasks are performed in a secure programming environment in the following order:
Reset Reset chip CLR []
Load R
Load 0 into R (160-bit register) SSI [K 1 , K 2 , R]
Load X
Load 0 to X (256-bit register) Set Set physical random data to X corresponding to appropriate M [n] WR [X]
Load Y
Load 0 to Y (32-bit register) Set Set read-only access mode to Y corresponding to appropriate M [n] SAM [Y]
SMT [MinTicks Consumable ].

ここで、信頼されない消耗品チップは一般的な状態データでプログラムする準備が完了している。認証チップがこの時点で盗まれたならば、攻撃者は、制限選択テキスト攻撃を実行できる。最もよい状況では、Mの一部分はリードオンリー(0及びランダムデータ)であり、Mの残りは攻撃者によって(WRコマンドを用いて)完全に選択される。攻撃者による多数のRD呼び出しは、限定されたMに対するFK2[M|R]を獲得する。最悪の状況では、Mは攻撃者によって完全に選択される(なぜならば、256ビットの全てが状態データに使用されるためである)。しかし、どちらの場合でも、攻撃者はRの値を選択できない。なぜならば、RはRNDへの呼び出しによってシステム認証チップから供給されるためである。選択されたRを獲得する唯一の方法は、ブルートフォース攻撃である。ステージ4及び5が同じプログラミングステーションで実行された場合(好ましく、且つ理想的な状況)、認証チップはステージ間で取り外せないことに注意すべきである。この場合、認証チップがこの時点で盗まれる可能性はない。認証チップを1回でプログラムするか、又は2回でプログラムするかの決定は、システム/消耗品製造者の要求次第である。 Here, the untrusted consumable chip is ready to be programmed with general status data. If the authentication chip is stolen at this point, the attacker can perform a restricted choice text attack. In the best situation, part of M is read-only (0 and random data) and the rest of M is fully selected by the attacker (using the WR command). Numerous RD calls by an attacker obtain F K2 [M | R] for a limited M. In the worst case, M is completely selected by the attacker (because all 256 bits are used for state data). However, in either case, the attacker cannot select the value of R. This is because R is supplied from the system authentication chip by a call to RND. The only way to acquire the selected R is a brute force attack. Note that if stages 4 and 5 are performed in the same programming station (preferred and ideal situation), the authentication chip cannot be removed between stages. In this case, there is no possibility that the authentication chip is stolen at this point. The decision to program the authentication chip once or twice is up to the system / consumable manufacturer's request.

ステージ5:状態データ及びアクセスモードのプログラム
このステージは、消耗品認証チップの場合だけに必要である。なぜならば、M及びAccessModeレジスタはシステム認証チップ上では変更できないからである。M[n]の未使用及びランダム値は既にステージ4でプログラムされている。残りの状態データをプログラムする必要があり、関連したAccessMode値をセットする。このステージの速度は、MinTicksレジスタに格納された値によって制限されることに注意する必要がある。このステージは、ステージ4とステージ5が実行される場所/時間の物理的場所の違い又は時間の違いを考慮して、ステージ4から分離されている。理想的には、ステージ4及び5は同時に同じプログラミングステーションで実行される。ステージ4は有効認証チップを生成するが、それらに初期状態値(0以外)をロードしない。これは、チップのプログラミングを消耗品の生産ラインの運行と一致させることができる。ステージ5は何回も実行し、毎回、異なる状態データ値及びアクセスモード値を設定することが可能であるが、1回だけ実行され、残りの全ての状態データ値をセットし、残りの全てのアクセスモード値をセットする可能性の方が高い。例えば、生産ラインがセットアップされ、認証チップのバッチ番号及びシリアル番号が生産される物理的な消耗品に応じて生成される。これを一致させることは、状態データが物理的に異なる工場でロードされる場合にはかなり難しくなる。
Stage 5: Status Data and Access Mode Program This stage is only required for consumable authentication chips. This is because the M and AccessMode registers cannot be changed on the system authentication chip. Unused and random values of M [n] are already programmed in stage 4. The remaining state data needs to be programmed and the associated AccessMode value is set. Note that the speed of this stage is limited by the value stored in the MinTicks register. This stage is separated from stage 4 in view of the physical location difference or time difference where stage 4 and stage 5 are executed. Ideally, stages 4 and 5 are executed simultaneously in the same programming station. Stage 4 generates valid authentication chips but does not load them with initial state values (other than 0). This can make chip programming consistent with the operation of the consumable production line. Stage 5 can be executed multiple times, each time a different state data value and access mode value can be set, but only once, all remaining state data values are set, all remaining More likely to set the access mode value. For example, the production line is set up, and the batch number and serial number of the authentication chip are generated according to the physical consumable to be produced. This can be quite difficult if the state data is loaded at a physically different factory.

ステージ5のプロセスは、最初に、チップが有効消耗品チップであることを保証するために検査を行い、ここでは、認証チップからデータを収集するRDが含まれ、次に、初期データ値のWRが行われ、更に、新しいデータ値を永久的にセットするためSAMが行われる。これらのステップの概要を次に記載する:
IsTrusted=GIT[];
IsTrustedがセットされているならば、エラー(間違った種類のチップ!)で終了する;
有効な入力ペアを取得するため有効システムチップのRNDを呼び出し;
有効な入力ペアを渡して、プログラムされるべきチップのRDを呼び出し;
認証チップのRDからの結果をX(256ビットレジスタ)にロードする;
X及び消耗品チップが有効であることを保証するため有効システムチップのTSTを呼び出し;
TSTが0を返したならば、エラー(システムに対し間違った消耗品チップ)で終了する。
Xのビットに初期状態値をセット;
WR[X];
Y(32ビットレジスタ)に0をロード;
新しい状態値のためのアクセスモードに対応したYのビットをセット;
SAM[Y]。
The stage 5 process first performs a test to ensure that the chip is a consumable chip, which includes an RD that collects data from the authentication chip, and then the WR of the initial data value. In addition, a SAM is performed to permanently set new data values. A summary of these steps follows:
IsTrusted = GIT [];
If IsTrusted is set, exit with error (wrong kind of chip!);
Call RND of valid system chip to get valid input pair;
Call the RD of the chip to be programmed, passing a valid input pair;
Load the result from the RD of the authentication chip into X (256 bit register);
Call the TST of the active system chip to ensure that X and the consumable chip are valid;
If TST returns 0, exit with an error (wrong consumable chip for the system).
Set the initial state value in the X bit;
WR [X];
Load 0 into Y (32-bit register);
Set the Y bit corresponding to the access mode for the new status value;
SAM [Y].

勿論、検証(ステージ1から7)は、ステージ4及び5が同じプログラミングステーションで次々と行われる場合には行わなくてもよい。しかし、この検証は、ステージ5がステージ4とは別個のプログラミングプロセスとして実行される他の全ての状況では行われるべきである。これらの認証チップがここで盗まれた場合には、それらは既に特定の消耗品で使用するためにプログラムされている。攻撃者は、盗んだチップを複製消耗品に取り付けることができる。このような盗難は、複製された製品の個数を盗難されたチップの個数に制限する。1回の盗難では、複製品製造者が費用対効果に優れたビジネスを行うために十分な供給数が得られない。このチップの別の用途は、攻撃者が部分選択テキスト攻撃又はブルートフォース攻撃に出るために、認証チップ付きの同数の消耗品を購入しなくても済むことである。このような攻撃が行われても、鍵の特別な安全性の欠陥はない。 Of course, verification (stages 1 to 7) may not be performed if stages 4 and 5 are performed one after another at the same programming station. However, this verification should be done in all other situations where stage 5 is executed as a separate programming process from stage 4. If these authentication chips are stolen here, they are already programmed for use with specific consumables. An attacker can attach a stolen chip to a replica consumable. Such theft limits the number of replicated products to the number of stolen chips. A single theft does not provide enough supplies for a replica manufacturer to do a cost-effective business. Another use of this chip is that an attacker does not have to purchase the same number of consumables with an authentication chip in order to enter a partial selection text attack or brute force attack. Even with such an attack, there are no special security flaws in the key.

製造
認証チップの回路は物理的攻撃に対抗できなければならない。製造インプリメンテーションガイドラインの概要を説明し、その後に、チップの物理的防御の仕様を(攻撃の順に)説明する。
The circuit of the manufacturing authentication chip must be able to counter physical attacks. An overview of the manufacturing implementation guidelines is given, followed by a description of the physical defense specifications of the chip (in order of attack).

製造のガイドライン
製造に関する認証チップの実装用の一般的なガイドラインを以下に列挙する:
標準プロセス
最小サイズ(なるべく)
クロックフィルタ
雑音発生器
タンパー防止及び検出回路
タンパー検出付き保護メモリ
プログラムコードのローディング用ブート回路
鍵データパス用のFETの特殊実装
可能な場所でのポリシリコン層内のデータコネクション
過小過多電力検出ユニット
テスト回路無し。
Manufacturing guidelines The following are general guidelines for mounting certified chips for manufacturing:
Standard process minimum size (as much as possible)
Clock filter Noise generator Tamper prevention and detection circuit Protected memory with tamper detection Boot circuit for loading program code Key data path FETs for data path Specially mounted FET layer for data connection Under-over-power detection unit test circuit None.

標準プロセス
認証チップは(フラッシュのような)標準的な製造プロセスで実装できる。これは、製造場所の非常に広範囲の選択を可能にさせること
明確であり、且つ正常に動作するテクノロジーを使用すること
コストを低減すること
を充たすために必要である。標準プロセスは物理的な保護メカニズムを可能にさせることに注意する必要がある。
Standard process authentication chips can be implemented with standard manufacturing processes (such as flash). This is clear to allow a very wide selection of manufacturing locations and is necessary to meet the cost savings of using technology that works properly. Note that the standard process allows physical protection mechanisms.

最小サイズ
認証チップ53は、低コスト消耗品のための認証メカニズムとして組み込むことができるように製造コストを低くしなければならない。したがって、チップサイズはできるだけ小さいままにすることが望ましい。各認証チップは、802ビットの不揮発性メモリが必要である。その上、最適化されたHMAC−SHA1に必要な記憶容量は1024ビットである。チップの残りの部分(状態機械、プロセッサ、CPU、又はプロトコル3を実施するために選択されたもの)は、トランジスタの個数が最小限に抑えられ、チップ当たりのコストが最小限になるように最低限に維持される。秘密鍵情報を保有する回路面積、また亜h、鍵に関する情報が漏れる虞のある回路面積も最小限に抑えられるべきである(特殊データパスのための以下のノンフラッシングCMOSを参照せよ)。
The minimum size authentication chip 53 must have a low manufacturing cost so that it can be incorporated as an authentication mechanism for low cost consumables. Therefore, it is desirable to keep the chip size as small as possible. Each authentication chip requires a 802-bit non-volatile memory. Moreover, the storage capacity required for the optimized HMAC-SHA1 is 1024 bits. The rest of the chip (chosen to implement the state machine, processor, CPU, or protocol 3) is minimal so that the number of transistors is minimized and the cost per chip is minimized To the limit. The area of the circuit that holds the secret key information, and the area of the circuit that may leak information about the sub-h, key should be minimized (see the non-flushing CMOS below for special data paths).

クロックフィルタ
認証チップ回路は特定のクロック速度レンジで動作するように設計される。ユーザはクロック信号を直接供給するので、攻撃者は、処理中の特定の時点で回路に乱調状態を生じさせ用とする可能性がある。この一例は、高いクロック速度(回路が設計対象とした速度よりも高い)は、XORが適切に動作することを妨げ、2個の入力のうちの最初の入力がそのまま返される場合である。このようなスタイルの過渡現象障害攻撃は、秘密鍵情報を復元する際に非常に有効である。ここらか学ぶべきことは、入力クロック信号は信頼できないということである。入力クロック信号は信頼できないので、最大周波数までで動作するように制限されるべきである。これはいろいろな方法で実現できる。クロック信号をフィルタ処理する一つの方法は、「エッジオン」を遅延器へ渡すエッジ検出ユニットを使用することであり、次に、遅延によって入力クロック信号の通過を許可する。図174は、クロックフィルタ内のクロック信号フローの説明図である。遅延は、最大クロック速度が特定の周波数(例えば、4MHz)になるようにセットされる。この遅延はプログラマブルではなく、固定であることに注意すべきである。フィルタ処理されたクロック信号は、必要に応じて内部で更に分周される。
The clock filter authentication chip circuit is designed to operate in a specific clock speed range. Since the user provides the clock signal directly, the attacker can cause the circuit to become messed up at a particular point in the process. An example of this is when a high clock speed (higher than the circuit was designed for) prevents the XOR from operating properly and the first of the two inputs is returned as is. Such a transient failure attack is very effective in restoring the secret key information. What should be learned is that the input clock signal is not reliable. The input clock signal is unreliable and should be restricted to operate up to the maximum frequency. This can be achieved in various ways. One way to filter the clock signal is to use an edge detection unit that passes “edge on” to the delay, and then allows the input clock signal to pass through the delay. FIG. 174 is an explanatory diagram of the clock signal flow in the clock filter. The delay is set so that the maximum clock speed is a specific frequency (eg, 4 MHz). Note that this delay is not programmable and is fixed. The filtered clock signal is further divided internally as needed.

雑音発生器
各認証チップは連続した回路雑音を発生する雑音発生器を含む。雑音は、チップの通常の動作からの他の電磁放射と干渉し、雑音をIdd信号に加える。雑音発生器の設置は、放射波長の長さのために認証チップに問題を起こさない。雑音発生器は、電子雑音、クロックサイクル毎の複数状態変化を発生し、タンパー防止及び検出回路用の疑似ランダムビットソースとして使用される。雑音発生器の簡単な実装は、非零の数でシードされた64ビットLFSRである。雑音発生器で使用されるクロックは、できるだけ多くの雑音を発生させるため、チップの最大クロックレートで動く。
Noise Generator Each authentication chip includes a noise generator that generates continuous circuit noise. The noise interferes with other electromagnetic radiation from the normal operation of the chip and adds noise to the I dd signal. The installation of the noise generator does not cause problems with the authentication chip due to the length of the emission wavelength. The noise generator generates electronic noise, multiple state changes per clock cycle, and is used as a pseudo-random bit source for tamper prevention and detection circuits. A simple implementation of a noise generator is a 64-bit LFSR seeded with a non-zero number. The clock used by the noise generator runs at the maximum clock rate of the chip to generate as much noise as possible.

タンパー防止及び検出回路
1組の回路が認証チップへの物理的攻撃のテスト及び防止のために必要である。しかし、実際に攻撃として検出される者は、意図的な物理的攻撃ではないかもしれない。したがって、認証チップ内で以下の2タイプの攻撃、即ち、
物理的攻撃の出現を確信できる場合
物理的攻撃の出現を確信できない場合
を区別することが重要である。
A set of tamper prevention and detection circuits is required for testing and preventing physical attacks on the authentication chip. However, those who are actually detected as attacks may not be intentional physical attacks. Therefore, the following two types of attacks within the authentication chip:
It is important to distinguish when you can be sure of the appearance of a physical attack.

この2タイプの検出は、検出の結果として実行されることが違う。第1のケース、即ち、物理的攻撃の出現を確信できる場合、フラッシュメモリ鍵情報の消去が目的にかなった動作である。第2のケース、即ち、物理的攻撃の出現を確信できない場合、何かの間違いがあるかもしれない。動作を行うべきではあるが、秘密鍵情報を消去する動作ではない。第2のケースでとるべき適切な動作は、チップリセットである。検出されたものがチップに永久的な損傷を加える攻撃であるならば、次にも同じ状態が出現し、チップは再度リセットする。これに対して、検出されたものがチップの通常の動作環境の一部であるならば、このリセットは鍵を損ねない。 The two types of detection differ in that they are executed as a result of detection. In the first case, that is, when it can be certain that a physical attack appears, the erasure of flash memory key information is an appropriate operation. If the second case is uncertain that a physical attack will appear, there may be some mistake. Although the operation should be performed, it is not an operation for deleting the secret key information. A suitable action to take in the second case is a chip reset. If what is detected is an attack that permanently damages the chip, then the same condition appears again and the chip resets again. On the other hand, if what is detected is part of the normal operating environment of the chip, this reset does not compromise the key.

回路が状況を理解できない事象の良い例は、電源誤動作である。この誤動作は、鍵に関する情報を暴こうとする意図的な攻撃かもしれない。しかし、それは、接続間違い、又は単に、電源遮断シーケンスの開始かもしれない。したがって、チップをリセットだけすることが最良であり、鍵を消去しない。チップが電源遮断中であれば、何も失われない。システムが故障している場合、リセットの繰り返しによって、消費者はシステムを修理する。両方のケースで、消耗品は損なわれていない。回路が状況を理解できる事象の良い例は、チップ内のデータラインの切断である。この攻撃が何らかの方法で検出された場合、これは、チップの故障(製造欠陥)、又は攻撃の結果に限られる。何れのケースでも、秘密情報の消去は、目的にかなった選択すべきステップである。 A good example of an event where the circuit cannot understand the situation is a power supply malfunction. This malfunction may be a deliberate attack that attempts to reveal information about the key. However, it may be a misconnection or simply the start of a power down sequence. Therefore, it is best to only reset the chip and not erase the key. If the chip is powered down, nothing is lost. If the system has failed, the consumer will repair the system by repeated resets. In both cases, the consumables are intact. A good example of an event that allows the circuit to understand the situation is the disconnection of a data line in the chip. If this attack is detected in any way, this is limited to a chip failure (manufacturing defect) or the result of the attack. In any case, erasure of secret information is a step that should be selected for the purpose.

この結果として、各認証チップは図示されるように2本のタンパー検出ラインを含む。一方は明確な攻撃用であり、もう一方は攻撃可能性のためのものである。これらのタンパー検出ラインには、多数のタンパー検出テストユニットが接続され、各ユニットは様々な形態のタンパーリングをテストする。その上、タンパー検出ライン及び回路自体は不正に手を加えられないことを保証したい。 As a result, each authentication chip includes two tamper detection lines as shown. One is for clear attack and the other is for attack potential. A number of tamper detection test units are connected to these tamper detection lines, and each unit tests various forms of tamper rings. Moreover, it is desirable to ensure that the tamper detection line and the circuit itself cannot be tampered with.

タンパー検出ラインの一方の端は、(一般的な動作回路よりも高速でクロッキングする)疑似ランダムビットのソースである。上記の雑音発生器回路は適当なソースである。生成されたビットは、2種類のパスを通り、一方のパスは原データを搬送し、他方は原データの反転を搬送する。これらのビットを搬送する配線は、一般的なチップ回路(例えば、メモリ、鍵操作回路等)よりも上の層にある。配線はランダムビット発生器もカバーする。ビットは、XORゲートによって多数の場所で再結合される。ビットが異なる場合(そうあるべきである)、1が出力され、特定のユニットによって使用される(例えば、メモリ読み出しからの各出力ビットはこのビット値とAND演算される)。ラインは、最終的に、フラッシュメモリ消去回路に集まり、そこで、XORからの0によって完全な消去がトリガーされる。ラインには多数のトリガーが取り付けられ、各々はチップ上の物理的攻撃を検出する。各トリガーは、GNDへ繋がれた大型nMOSトランジスタを有する。タンパー検出ラインは、このnMOSトランジスタを物理的に通る。テストが失敗したとき、トリガーはタンパー検出ラインを0にする。XORテストは、このクロックサイクル、又は次のクロックサイクル(平均的に)の何れかで失敗し、チップをリセット又は消去する。図175は、テストと、消去回路又はリセット回路の何れかに接続されたXORと、を用いるタンパー検出回路の基本原理の説明図である。 One end of the tamper detection line is a source of pseudo-random bits (clocking faster than a typical operating circuit). The noise generator circuit described above is a suitable source. The generated bits go through two types of paths, one carrying the original data and the other carrying the inversion of the original data. The wiring for carrying these bits is in a layer above a general chip circuit (for example, a memory, a key operation circuit, etc.). The wiring also covers the random bit generator. Bits are recombined at multiple locations by XOR gates. If the bits are different (should be), 1 is output and used by a particular unit (eg, each output bit from the memory read is ANDed with this bit value). The line eventually gathers in the flash memory erase circuit, where a complete erase is triggered by a zero from XOR. A number of triggers are attached to the line, each detecting a physical attack on the chip. Each trigger has a large nMOS transistor connected to GND. The tamper detection line physically passes through this nMOS transistor. When the test fails, the trigger sets the tamper detection line to zero. The XOR test fails either on this clock cycle or the next clock cycle (on average) and resets or erases the chip. FIG. 175 is an explanatory diagram of the basic principle of a tamper detection circuit using a test and an XOR connected to either the erase circuit or the reset circuit.

タンパー検出ラインは、図176の大型nMOSトランジスタのレイアウトに示されているように、各Testの出力トランジスタのドレインを通る。タンパー検出ラインは切断できない。なぜならば、これは、ランダムソースからの1と0の流れを止めるからである。それにより、XORテストは失敗する。タンパー検出ラインは、各テストを物理的に通るので、タンパー検出ラインを切断することなく、特定のテストを除去することは不可能である。重要なことは、XORは、攻撃の機会を減らすため、タンパー検出ラインに沿って様々な場所からの値を取ることである。図177は、チップの様々な部分で使用されるタンパー検出ラインから多数のXORをとる状況を示している。これらのXORの各々は、各ユニット又はサブユニットで使用されるチップ正常ビットChipOKを生成しているとみなすことができる。 The tamper detection line passes through the drain of the output transistor of each Test, as shown in the large nMOS transistor layout of FIG. The tamper detection line cannot be cut. This is because it stops the flow of 1s and 0s from random sources. As a result, the XOR test fails. Since the tamper detection line physically passes through each test, it is impossible to remove a specific test without cutting the tamper detection line. Importantly, XOR takes values from various locations along the tamper detection line to reduce the chance of attack. FIG. 177 illustrates a situation where multiple XORs are taken from tamper detection lines used in various parts of the chip. Each of these XORs can be regarded as generating a chip normal bit ChipOK used in each unit or subunit.

サンプル用途としては、各ユニットにOKビットを設け、これを各サイクルで与えられたChipOKビットとAND演算することがある。OKビットはリセットで1がロードされる。OKビットが0であるならば、ユニットは次のリセットまで失敗(フェイル)である。タンパー検出ラインが正しく機能するならば、チップは、リセットを行うか、又は全ての鍵情報を消去する。リセット回路又は消去回路が破壊されているならば、このユニットは機能しないので、攻撃者を阻止する。リセットライン及び消去ライン、並びに、関連した回路の行き先は、非常に状況に敏感である。それは、個別のタンパーテストと非常に類似した方法で保護されるべきである。攻撃者がリセット回路に繋がる配線を簡単に切断できるのであれば、リセットパルスを生成しても意味がない。実際の実装形態は、リセットでクリアされるべき項目と、それらの項目をクリアする方法と、に依存する部分が大きい。 As a sample application, an OK bit is provided in each unit, and this is ANDed with the ChipOK bit given in each cycle. The OK bit is loaded with 1 at reset. If the OK bit is 0, the unit has failed (failed) until the next reset. If the tamper detection line functions correctly, the chip resets or erases all key information. If the reset circuit or erasure circuit is destroyed, this unit will not function, thus preventing an attacker. The reset and erase lines and associated circuit destinations are very sensitive to the situation. It should be protected in a manner very similar to the individual tamper test. If the attacker can easily cut the wiring connected to the reset circuit, it does not make sense to generate a reset pulse. The actual implementation largely depends on the items to be cleared by reset and the method of clearing those items.

最後に、図178は、タンパーラインがチップの雑音発生器回路を保護する様子を示す図である。発生器及びNOTゲートは同じ高さにあり、一方、タンパー検出ラインは発生器よりも高いところを通る。 Finally, FIG. 178 shows how the tamper line protects the chip noise generator circuit. The generator and NOT gate are at the same height, while the tamper detection line passes higher than the generator.

タンパー検出付き保護メモリ
秘密情報又はプログラムコードはフラッシュメモリに記憶するだけでは不十分である。フラッシュメモリ及びRAMは、プログラムコード又は鍵情報の特定のビットを変更(又はセット)使用とする攻撃者から保護されなければならない。使用されるメカニズムは、(上述の)タンパー検出回路で使用されているメカニズムに準拠する。ソリューションの第1の部分は、タンパー検出ラインが各フラッシュ又はRAMビットの直ぐ上を確実に通ることである。これは、攻撃者がフラッシュ又はRAMの内容をプローブできないことを保証する。配線の保護部の破損はタンパー検出ラインの切断である。この破損は、消去信号をセットするので、メモリの内容が消去される。タンパー検出ライン上の高周波雑音も受動的な観測の妨げになる。
It is not sufficient to store the protected memory secret information or program code with tamper detection only in the flash memory. Flash memory and RAM must be protected from attackers who modify (or set) specific bits of program code or key information. The mechanism used is compliant with the mechanism used in the tamper detection circuit (described above). The first part of the solution is to ensure that the tamper detection line passes just above each flash or RAM bit. This ensures that an attacker cannot probe the contents of flash or RAM. The breakage of the protection part of the wiring is the cutting of the tamper detection line. This damage sets the erase signal so that the contents of the memory are erased. High frequency noise on the tamper detection line also hinders passive observation.

フラッシュに対するソリューションの第2の部分は、多重レベルデータ記憶装置を使用し、しかも、それらの多重レベルのうちのサブセットだけを有効ビット表現のために使用することである。一般的に、多重レベルフラッシュ記憶装置が使用されるとき、単一のフローティングゲートが2ビット以上を保持する。例えば、4電圧状態トランジスタは、2ビットを表現できる。最小電圧及び最大電圧がそれぞれ00及び11で表すことにすると、2個の中間電圧は01及び10を表す。認証チップの場合、単一ビットを表現するために2個の中間電圧を使用し、両端の2個は無効状態であるとみなす。攻撃者がゲートの回路を閉じる、又は切断することにより、ビットの状態を強制的にある方向又は別の方向にさせようとした場合に、無効電圧(従って、無効状態)が現れる。 The second part of the solution for flash is to use multilevel data storage, and only a subset of those multilevels are used for valid bit representation. In general, when multilevel flash storage is used, a single floating gate holds more than one bit. For example, a 4-voltage state transistor can represent 2 bits. If the minimum and maximum voltages are represented by 00 and 11, respectively, the two intermediate voltages represent 01 and 10. In the case of an authentication chip, two intermediate voltages are used to represent a single bit, and two at both ends are considered invalid. When an attacker attempts to force the state of a bit in one direction or another by closing or disconnecting the gate circuit, an invalid voltage (and therefore an invalid state) appears.

RAMに対するソリューションの第2の部分は、パリティビットを使用することである。レジスタのデータ部分は(攻撃後には一致しなくなる)パリティビットを使って検査できる。フラッシュ及びRAMから到来するビットは、共通タンパー検出ラインに接続された(1ビットに一つずつの)多数のテストユニットによって確認される。タンパー検出回路は、データが通過する最初の回路である(したがって、攻撃者によるデータラインの切断を阻止する)。 The second part of the solution for RAM is to use parity bits. The data portion of the register can be examined using parity bits (which do not match after an attack). Bits coming from flash and RAM are verified by a number of test units (one per bit) connected to a common tamper detection line. The tamper detection circuit is the first circuit through which data passes (thus preventing the attacker from cutting the data line).

プログラムコードのローディング用ブート回路
プログラムコードは、ROMではなく、多重レベルフラッシュに保持されるべきである。なぜならば、ROMはテストできない方法で変更されやすいからである。したがって、ブートメカニズムは、プログラムをフラッシュメモリに取り込むために必要である(フラッシュメモリは製造後中間状態になっている)。ブート回路はROM内には置かれず、小型の状態機械で十分である。そうでなければ、ブートコードは検出できない方法によって変更される。ブート回路は、全てのフラッシュメモリを消去し、消去が正しく動作したことを確認し、次に、プログラムコードをロードする。フラッシュメモリは、プログラムをローディングする前に消去しなければならない。そうでなければ、攻撃者はチップをブート状態に置き、既存の鍵を抽出しただけのプログラムをロードすることができる。状態機械は、新しいプログラムコードをロードする前に、全てのフラッシュメモリがクリアされていることを保証するため(攻撃者が消去ラインを切断していないことを保証するため)検査を行う。プログラムコードのローディングは、(鍵のような)秘密情報がロードされる前に、安全なプログラミングステーションによって行われる。
Boot circuit program code loading program code should be held in multi-level flash, not ROM. This is because ROM is easy to change in a way that cannot be tested. Therefore, the boot mechanism is necessary for taking the program into the flash memory (the flash memory is in an intermediate state after manufacture). The boot circuit is not placed in the ROM and a small state machine is sufficient. Otherwise, the boot code is changed in such a way that it cannot be detected. The boot circuit erases all the flash memory, confirms that the erase has worked correctly, and then loads the program code. The flash memory must be erased before loading the program. Otherwise, the attacker can place the chip in the boot state and load a program that has just extracted the existing key. Before loading the new program code, the state machine performs a check to ensure that all flash memory has been cleared (to ensure that the attacker has not cut the erase line). The loading of the program code is done by a secure programming station before secret information (such as a key) is loaded.

鍵データパス用の特殊なFETの実装
CMOSインバータ(nMOSトランジスタと組み合わされたpMOSトランジスタを含む)場合の通常のFET実装の状況が図179に示されている。遷移中に、nMOSトランジスタとpMOSトランジスタの両方が中間的な抵抗値をもつ短い期間が存在する。その結果としての電源−グラウンド短絡回路は、電流を一時的に増大させ、実際上、CMOS装置によって消費される電流の大部分を占める。少量の赤外線光が短絡回路の期間に放出され、シリコン基板を介して観測することができる(シリコンは赤外線を透過する)。また、少量の光がトランジスタゲート容量と伝送ライン容量の充電中及び放電中に放出される。
Special FET Implementation for Key Data Path A typical FET implementation situation for a CMOS inverter (including a pMOS transistor combined with an nMOS transistor) is shown in FIG. During the transition, there is a short period in which both the nMOS transistor and the pMOS transistor have intermediate resistance values. The resulting power supply-ground short circuit temporarily increases the current and in effect accounts for the majority of the current consumed by the CMOS device. A small amount of infrared light is emitted during the short circuit and can be observed through the silicon substrate (silicon transmits infrared). A small amount of light is emitted during charging and discharging of the transistor gate capacitance and the transmission line capacitance.

秘密鍵情報を操作する回路の場合、このような情報は秘匿されなければならない。代替的なノンフラッシングCMOS実装が、鍵、又はその鍵に基づいて部分的に計算された値を操作する全てのデータパスのため使用される。二つの重なり合わないクロックφ1及びφ2の使用によって、フラッシュしないメカニズムが得られる。φ1は全てのnMOSトランジスタの第2ゲートに接続され、φ2は全てのpMOSトランジスタの第2ゲートに接続される。遷移は、クロックと組み合わされた場合に発生する。φ1及びφ2は重なり合わないので、pMOS及びnMOSトランジスタは、同時に中間的な抵抗値をとることがない。その構成は図180に示されている。 In the case of a circuit that operates secret key information, such information must be kept secret. Alternative non-flashing CMOS implementations are used for all data paths that operate on a key or a value that is partially calculated based on that key. The use of two non-overlapping clocks φ1 and φ2 provides a non-flashing mechanism. φ1 is connected to the second gates of all nMOS transistors, and φ2 is connected to the second gates of all pMOS transistors. Transitions occur when combined with a clock. Since φ1 and φ2 do not overlap, the pMOS and nMOS transistors do not take intermediate resistance values at the same time. The configuration is shown in FIG.

最後に、通常のCMOSインバータは、重要なノンフラッシングCMOSコンポーネントの近傍に配置することができる。これらのインバータは上記のタンパー検出ラインからそれらの入力信号を取り出す。タンパー検出ラインは通常の動作回路の何倍も高速に動作するので、正味の影響は、ノンフラッシングCMOSコンポーネントの各々の場所付近に高いレートで生じる光バーストである。明るい光は、付近の弱い光の観測を邪魔するので、観測者は、チップそのものでどのようなスイッチング動作が行われているかを検出し得ない。これらの通常のCMOSインバータは、回路雑音の量を効果的に増加させ、SN比を低下させ、役に立つEMIを覆い隠す。 Finally, conventional CMOS inverters can be placed in the vicinity of important non-flashing CMOS components. These inverters take their input signals from the tamper detection line. Since tamper detection lines operate many times faster than normal operating circuits, the net effect is a burst of light that occurs at a high rate near each location of the non-flashing CMOS component. Since bright light interferes with observation of weak light in the vicinity, the observer cannot detect what switching operation is being performed on the chip itself. These conventional CMOS inverters effectively increase the amount of circuit noise, lower the signal-to-noise ratio, and mask useful EMI.

ノンフラッシングCMOSの使用によって多数の副作用が現れる:
チップの実効速度は、1クロックサイクル当たりのクロック立ち上がり時間の2倍だけ減少する。これは、認証チップの場合、問題にならない;
ノンフラッシングCMOSによって引き出される電流量が減少する(なぜならば、短絡回路が現れないからである)。しかし、これは、通常のCMOSインバータの使用によって相殺される;
クロックの配線によってチップ面積が増加し、特に、φ1及びφ2の多数のバージョンが様々な伝搬のレベルを考慮に入れるために要求されるからである。チップ面積の推定量は通常の実装の2倍である;
認証チップのフラッシュしないエリアの設計は、通常のCMOS設計を用いた場合よりも多少複雑になる。特に、標準的なセルコンポーネントが使用できず、そのエリアがフルカスタム化されるからである。これは、認証チップのように小さいものの場合、特に、チップ全体をこの方法で保護しなくても構わないときには、問題にならない。
The use of non-flushing CMOS presents a number of side effects:
The effective chip speed is reduced by twice the clock rise time per clock cycle. This is not a problem for authentication chips;
The amount of current drawn by the non-flashing CMOS is reduced (because no short circuit appears). However, this is offset by the use of a normal CMOS inverter;
This is because the clock wiring increases the chip area, and in particular, multiple versions of φ1 and φ2 are required to take into account various levels of propagation. The estimated amount of chip area is twice that of normal packaging;
The design of the non-flash area of the authentication chip is somewhat more complicated than when using a normal CMOS design. In particular, standard cell components cannot be used and the area is fully customized. This is not a problem when the authentication chip is small, particularly when the entire chip does not have to be protected by this method.

可能な場所でのポリシリコン層内の配線
どこでも可能であれば、鍵又は秘密データが流れる配線は、ポリシリコン層内に作られるべきである。必要であれば、メタル1に設けられるが、決して(タンパー検出ラインを含む)最上部のメタル層に設けるべきではない。
Wiring in the polysilicon layer where possible Where possible, the wiring through which the key or secret data flows should be made in the polysilicon layer. If necessary, it is provided on the metal 1, but it should never be provided on the uppermost metal layer (including the tamper detection line).

過小過多電力検出ユニット
各認証チップは、電源攻撃を妨げるため、過小過多電力検出ユニットが必要である。過小過多電力検出ユニットは、電源誤動作を検出し、電源レベルがある許容範囲に収まることを保証するため、電圧基準に対して電源レベルをテストする。このユニットは、単一の電圧基準と、2個のコンパレータを含む。過小過多電力検出ユニットは、リセットタンパー検出ラインに接続してもよく、これにより、トリガーされたときにリセットを引き起こす。過小過多電力検出ユニットの副作用は、電源遮断中に電圧が降下したとき、リセットがトリガーされ、作業レジスタを消去することである。
Under / over power detection unit Each authentication chip needs a under / over power detection unit to prevent power supply attacks. The under / over power detection unit detects power supply malfunctions and tests the power supply level against a voltage reference to ensure that the power supply level is within a certain tolerance. This unit includes a single voltage reference and two comparators. The under / over power detection unit may be connected to a reset tamper detection line, thereby causing a reset when triggered. A side effect of the under / over power detection unit is that when the voltage drops during power down, a reset is triggered and the working register is erased.

テスト回路無し
認証チップ上のテストハードウェアは簡単に脆弱性を持ち込み得る。その結果として、認証チップは、BIST又はスキャンパスを含むべきではない。したがって、認証チップは外部テストベクトルを用いてテスト可能にされる。これは、認証チップが複雑ではないので実現可能である。
Test hardware on an authentication chip without a test circuit can easily introduce vulnerabilities. As a result, the authentication chip should not include a BIST or scan path. Thus, the authentication chip is made testable using the external test vector. This can be realized because the authentication chip is not complicated.

ROM読み出し
この攻撃は、鍵がアドレス指定可能なROMに記憶されていることに依存する。各認証チップはその認証鍵を、アドレス指定可能なROMではなく内部フラッシュメモリに記憶しているので、この攻撃は無関係である。
Read ROM This attack relies on the key being stored in an addressable ROM. This attack is irrelevant because each authentication chip stores its authentication key in an internal flash memory rather than an addressable ROM.

チップのリバースエンジニアリング
チップのリバースエンジニアリングは、認証の安全性がアルゴリズムに由来している場合に限り有用である。しかし、本発明の認証チップは、アルゴリズムの秘密性ではなく、秘密鍵に依存している。これに対して、本発明の認証アルゴリズムは公開されていて、いずれにしても、大量生産消耗品の攻撃者は、チップの内部の詳細な設計図を獲得する可能性があったと考えられる。これらの要因から見て、チップ自体のリバースエンジニアリングは、記憶されたデータとは対照的に、脅威ではない。
Chip Reverse Engineering Chip reverse engineering is useful only if the security of the authentication is derived from an algorithm. However, the authentication chip of the present invention relies on a secret key, not on algorithm confidentiality. On the other hand, the authentication algorithm of the present invention is open to the public, and in any case, it is considered that the mass production consumable attacker may have obtained a detailed design drawing inside the chip. In view of these factors, reverse engineering of the chip itself is not a threat as opposed to stored data.

認証プロセスの不当使用
この攻撃がとり得る形態は幾つかあり、各々の形態は成功の程度に違いがある。全てのケースにおいて、複製品製造者はシステム設計と消耗品設計の両方を入手できると考えられる。ある攻撃者は、認証コードを生成するのではなく、システムを騙して有効なコードを返すチップを構築しようとする。この攻撃は以下の二つの理由から実現不可能である。第1の理由は、システム認証チップ及び消耗品認証チップは、物理的には同じであるとしても、別々にプログラムされている点にある。特に、RDオペコード及びRNDオペコードは同一であり、WRオペコードとTSTオペコードも同様である。システム認証チップはRDコマンドを実行できない。なぜならば、全ての呼び出しは、RDではなく、RNDへの呼び出しとして解釈されるからである。この攻撃が失敗する第2の理由は、別々のシリアルデータラインがシステムからシステム認証チップ及び消耗品認証チップへ設けられるからである。その結果として、どちらのチップも、もう一方へ送信される内容、或いは、もう一方から受信される内容を見ることができないからである。攻撃者が、(消耗品残量をデクリメントする)WRコマンドを無視する複製チップを構築した場合、プロトコル3は、その後のRDがWRは出現しなかったことを検出することを保証する。システムは、したがって、消耗品を使用しなくなり、攻撃者を阻止する。これは、攻撃者が認証前に接触の欠損をシミュレートした場合にも成り立ち、認証が行われないので、消耗品の使用は発生しない。したがって、攻撃者は、複製消耗品が受け付けられるように各システムを変更する範囲に制限される。
Unauthorized use of the authentication process There are several possible forms of this attack, and each form varies in the degree of success. In all cases, the replica manufacturer will be able to obtain both system and consumable designs. Some attackers try to build a chip that tricks the system into returning a valid code, rather than generating an authentication code. This attack is not feasible for two reasons. The first reason is that the system authentication chip and the consumables authentication chip are programmed separately even if they are physically the same. In particular, the RD opcode and the RND opcode are the same, and the WR opcode and the TST opcode are the same. The system authentication chip cannot execute the RD command. This is because all calls are interpreted as calls to RND, not RD. The second reason that this attack fails is that separate serial data lines are provided from the system to the system authentication chip and the consumable authentication chip. As a result, neither chip can see the content sent to or received from the other. If the attacker builds a duplicate chip that ignores the WR command (decrements the remaining consumables), protocol 3 ensures that subsequent RDs detect that no WR has appeared. The system therefore stops using consumables and prevents attackers. This is also the case when an attacker simulates a loss of contact before authentication, and authentication is not performed, so consumables are not used. Therefore, the attacker is limited to a range in which each system is changed so that a copy consumable is accepted.

システムの変更
変更の最も簡単な方法は、システムの認証チップを、TSTへの呼び出し毎に成功だけを通知するチップと置き換えることである。これは、認証毎に何回もTSTを呼び出し、最初の数回は偽の値を与え、TSTからの失敗の通知を要求するシステムによって妨げられる。TSTへの最後の呼び出しは成功することが予想される。TSTの偽の呼び出しの回数は、RD、又はシステムクロックから戻された結果の一部分から決定してもよい。残念ながら、攻撃者は、単に、システムを書き換えることができるので、新しいシステム複製認証チップ53は、消耗品チップ又はクロックから返された結果を監視できる。複製システム認証チップは、監視された値がそのTST関数へ与えられたときに、成功しか返さない。複製消耗品はRDのハッシュ結果として任意の値を返すことができ、複製システムチップはその値を有効であることを明らかにする。したがって、システムがシステム認証チップを何回も呼び出しても意味がない。なぜならば、書き換え攻撃は、全てのシステムに対してではなく、再配線されたシステムだけに対して正しく動作するからである。システムに対する類似した攻撃の形態は、システムROMの取り替えである。ROMプログラムコードは、認証が行われることの無いように変更可能である。これに関しては何もできない。なぜならば、システムは消費者の手にあるからである。勿論、これはあらゆる保証を無効にするが、消費者は、複製消耗品が非常に安価であり、且つ本物の品物よりも簡単に入手できるのであれば、変更する価値があると考えるであろう。
The simplest way to change the system is to replace the system's authentication chip with a chip that only reports success on every call to the TST. This is hampered by a system that calls the TST many times for each authentication, gives a false value the first few times, and requests notification of failure from the TST. The last call to TST is expected to succeed. The number of false calls to TST may be determined from RD or a portion of the result returned from the system clock. Unfortunately, since the attacker can simply rewrite the system, the new system copy authentication chip 53 can monitor the results returned from the consumable chip or clock. The replication system authentication chip only returns success when the monitored value is given to its TST function. The replication consumable can return any value as a hash result of the RD, and the replication system chip reveals that the value is valid. Therefore, it does not make sense for the system to call the system authentication chip many times. This is because the rewrite attack works correctly only on rewired systems, not on all systems. A similar form of attack on the system is a system ROM replacement. The ROM program code can be changed so that authentication is not performed. I can't do anything about this. This is because the system is in the hands of consumers. Of course, this voids any warranty, but consumers would consider it worth changing if the copy consumables are very cheap and easier to obtain than the real ones. .

システム/消耗品製造者は、したがって、この種類の攻撃がどの程度起こり得るかを判断しなければならない。このような調査は、システム及び消耗品の価格構成、システムサービスの頻度、物理的な変更を加えたときの消費者の利益、消費者がその変更を実行するために出向く場所を当然に含む。システムを変更する限界のケースは、複製品製造者が、複製消耗品を必要とする完全な複製システムを提供する場合である。これは、単なる競合、又は特許権の侵害である。いずれにしても、これは認証チップの目的の範囲外であり、複製される技術やサービスに依存する。 The system / consumable manufacturer must therefore determine how likely this type of attack can occur. Such surveys naturally include the pricing structure of the system and consumables, the frequency of system services, the consumer's benefit when making physical changes, and the places where consumers go to perform the changes. The limiting case of changing the system is when the replica manufacturer provides a complete replica system that requires replica consumables. This is just competition or patent infringement. In any case, this is outside the scope of the authentication chip and depends on the technology and service being replicated.

従来のプロービングによるチップ動作の直接視
チップ動作を視察するためには、チップは動作していなければならない。しかし、タンパー防止及び検出回路は、鍵を処理又は保持するチップの区域を覆う。これらの区域を、タンパー防止ラインを通して見ることは不可能である。攻撃者は、単にタンパー防止層を通してチップをスライスできない。なぜならば、そうすることによって、タンパー検出ラインが破断し、電源投入時に全ての鍵を消去するからである。単に消去回路を破壊するだけでは不十分である。なぜならば、認証チップ内の多数のユニットに供給される多数のChipOKビット(このとき全て0)は、チップの通常の動作回路の機能を停止させるからである。攻撃のためにチップをセットアップするためには、攻撃者は、タンパー検出ラインを削除し、フラッシュメモリの消去を停止し、ChipOKラインを信頼していたコンポーネントを何とかして書き換えることが必要である。たとえ、この全てを実行できたとしても、チップをこのレベルまでスライスする動作は、鍵を保持する不揮発性メモリ内の電荷パターンを殆ど破壊し、プロセスを無益にするであろう。
In order to observe the direct chip operation of the conventional probing chip operation, the chip must be operating. However, the tamper prevention and detection circuit covers the area of the chip that processes or holds the key. It is impossible to see these areas through the tamper-proof line. The attacker cannot simply slice the chip through the anti-tamper layer. This is because doing so breaks the tamper detection line and erases all keys when the power is turned on. Simply destroying the erase circuit is not sufficient. This is because a large number of ChipOK bits (all 0 at this time) supplied to a large number of units in the authentication chip stop the function of the normal operation circuit of the chip. In order to set up a chip for an attack, the attacker needs to delete the tamper detection line, stop erasing the flash memory, and somehow rewrite the component that trusted the ChipOK line. Even if all this can be done, slicing the chip to this level will almost destroy the charge pattern in the non-volatile memory holding the key, making the process useless.

不揮発性メモリの直接視
認証チップがフラッシュメモリのフローティングゲートを露出させるようにスライスされ、それらを放電させない場合、鍵は、おそらくSTM又はSKMを用いて直接視できるであろう。しかし、ゲートを放電させずにチップをこのレベルまでスライスすることは、おそらく不可能である。湿式エッチング、プラズマエッチング、イオンミリング、又は化学機械研磨は、ほぼ確実にフローティングゲート上に存在する小さい電荷を放出する。これは、通常のフラッシュメモリの場合に成り立つが、多重レベルフラッシュメモリの場合にはより確かである。
If the non-volatile memory direct view authentication chip is sliced to expose the flash memory floating gate and does not discharge them, the key will probably be viewable directly using STM or SKM. However, it is probably impossible to slice the chip to this level without discharging the gate. Wet etching, plasma etching, ion milling, or chemical mechanical polishing almost certainly releases the small charge present on the floating gate. This is true for normal flash memory, but is more certain for multilevel flash memory.

状態変化によって生じる光バーストの監視
秘密鍵情報を操作する回路の全ての区域は、上記のノンフラッシングCMOSに実現される。これは、大部分の光バーストの放出を阻止する。ノンフラッシングCMOSの直ぐ近くに配置された通常のCMOSインバータは、キャパシタの充電及び放電によって生じる僅かな放射を見えなくする。インバータはタンパー検出回路に接続されるので、インバータは、ノンフラッシングCMOSの状態変化毎に何回も(高いクロックレートで)状態を変化する。
All areas of the circuit that manipulates the monitoring secret key information of the optical burst caused by the state change are realized in the non-flashing CMOS. This prevents the emission of most light bursts. Conventional CMOS inverters placed in close proximity to non-flashing CMOS obscure the slight radiation caused by capacitor charging and discharging. Since the inverter is connected to the tamper detection circuit, the inverter changes its state many times (at a high clock rate) for every non-flashing CMOS state change.

EMIの監視
上記の雑音発生器は回路雑音を誘起する。雑音は、チップの通常の動作からの他の電磁放射を妨害し、内部データ転送の有意な読み出しが曖昧になる。
EMI Monitoring The noise generator described above induces circuit noise. Noise interferes with other electromagnetic radiation from the normal operation of the chip, obscuring significant readouts of internal data transfers.

dd変動の監視
この種の攻撃に対するソリューションは、Idd信号におけるSN比を減少させることである。これは、回路の雑音量を増大させ、信号量を減少させることにより実現される。雑音発生器回路(これは、EMI攻撃に対する防御としても機能する)は、Idd中の重要な情報を目立たなくするため、サイクル毎に十分な状態変化を引き起こす。その上、チップの鍵を伝搬するデータパスの特別なノンフラッシングCMOS実装は、状態変化が生じたときに電流が流れることを阻止する。これは、信号量を減少させる利点がある。
Monitoring I dd variation A solution to this type of attack is to reduce the signal-to-noise ratio in the I dd signal. This is achieved by increasing the amount of noise in the circuit and decreasing the amount of signal. The noise generator circuit (which also serves as a defense against EMI attacks) causes enough state changes every cycle to obscure important information in I dd . Moreover, a special non-flashing CMOS implementation of the data path that propagates the key of the chip prevents current from flowing when a state change occurs. This has the advantage of reducing the amount of signal.

差分故障解析
差分故障ビット誤りは、イオン化、マイクロ波放射、又は環境ストレスによって、目標とした形ではなく、取り込まれる。この種の攻撃の最も起こりやすい影響は、フラッシュメモリの変更(無効な状態を引き起こす)又はRAMの変更(不良パリティ)である。無効な状態及び不良なパリティは、タンパー検出回路によって検出され、鍵の消去を生じさせる。タンパー検出ラインは鍵操作回路を覆うので、鍵操作回路に取り込まれたあらゆる誤りは、タンパー検出ラインの誤りによって反映される。タンパー検出ラインが影響されるならば、チップは、継続的にリセットをするか、又は単にパワーアップ時に鍵を消去し、攻撃を無益にする。目標としていない攻撃に頼り、「チップのちょうど良い部分がちょうど良い方法で影響を受ける」ことを望むのではなく、攻撃者は、(上書き攻撃、ゲート破壊等の)目標とした故障を持ち込むことをやってみる方がよい。
Differential Fault Analysis Differential fault bit errors are captured rather than targeted by ionization, microwave radiation, or environmental stress. The most likely effect of this type of attack is a flash memory change (causing an invalid state) or a RAM change (bad parity). Invalid states and bad parity are detected by the tamper detection circuit and cause key erasure. Since the tamper detection line covers the key operation circuit, any error taken into the key operation circuit is reflected by an error in the tamper detection line. If the tamper detection line is affected, the chip continually resets or simply erases the key at power-up, making the attack useless. Rather than relying on untargeted attacks and not wanting “just the right part of the chip to be affected in the right way”, the attacker wants to bring the targeted failure (overwrite attack, gate destruction, etc.) It is better to try it.

クロック誤作動攻撃
(上記の)クロックフィルタはクロック誤動作攻撃の実現性を除外する。
The clock malfunction attack (above) eliminates the feasibility of a clock malfunction attack.

電源攻撃
(上記の)過小過大電力検出ユニットは電源攻撃の実現性を除外する。
The power attack (above) under / over power detection unit excludes the possibility of power attack.

ROMの上書き
認証チップは、プログラムコード、鍵、及び秘密情報を、ROMではなく、フラッシュメモリに格納する。したがって、この攻撃は可能性がない。
The ROM overwrite authentication chip stores the program code, key, and secret information in the flash memory, not in the ROM. Therefore, this attack is not possible.

EEPROM/フラッシュの変更
認証チップは、プログラムコード、鍵、及び秘密情報をフラッシュメモリに格納する。しかし、フラッシュメモリは、2本のタンパー防止及び検出ラインによって覆われている。これらのラインの何れか一方が(ゲートを破壊するプロセスにおいて)破断されると、攻撃はパワーアップ時に検出され、各チップは、(連続的に)リセットするか、又はフラッシュメモリから鍵を消去する。しかし、たとえ、攻撃者が何とかしてフラッシュメモリのビットへアクセスし、特定のビットを保持しているゲートを破壊するか、若しくは、省くことができるとしても、これは、そのビットを強制的に無充電、又はフル充電の状態にする。これらはどちらも、認証チップの多重レベルフラッシュメモリの使用法では無効状態である(二つの中間状態だけが有効である)。データ値がフラッシュから転送されたとき、検出回路は、消去タンパー検出ラインをトリガーさせ、これにより、フラッシュメモリの残りの部分を消去し、チップをリセットする。したがって、EEPROM/フラッシュメモリの変更攻撃は無益である。
The EEPROM / flash change authentication chip stores the program code, key, and secret information in the flash memory. However, the flash memory is covered by two tamper prevention and detection lines. If any one of these lines breaks (in the process of breaking the gate), the attack is detected at power-up and each chip resets (continuously) or erases the key from flash memory . However, even if an attacker can somehow access a bit in flash memory and destroy or omit the gate holding a particular bit, this forces that bit to Set to no charge or full charge. Both of these are invalid states for use of the multi-level flash memory of the authentication chip (only two intermediate states are valid). When the data value is transferred from the flash, the detection circuit triggers the erase tamper detection line, thereby erasing the remaining portion of the flash memory and resetting the chip. Therefore, the EEPROM / flash memory modification attack is useless.

ゲート破壊攻撃
ゲート破壊攻撃は、単一ゲートを変更し、動作中にチップに情報を暴露させる攻撃者の能力に依存している。しかし、秘密情報を操作する回路は、2本のタンパー防止及び検出ラインの一方によって覆われている。これらのラインの何れか一方が(ゲートを破壊するプロセスにおいて)破断されると、攻撃はパワーアップ時に検出され、各チップは、(連続的に)リセットするか、又はフラッシュメモリから鍵を消去する。この種の攻撃に出るためには、攻撃者は、最初に、どのゲートを目標にすべきかを決定するためにチップをリバースエンジニアリングしなければならない。目標ゲートの場所が決定された後、攻撃者は、保護しているタンパー検出ラインを破断し、フラッシュメモリの消去を停止し、ChipOKラインを信頼していたコンポーネントを何とかして書き換えることが必要である。回路の書き換えはチップをスライスすることなく実行できず、たとえ、実行できたとしても、チップをこのレベルまでスライスする動作は、鍵を保持する不揮発性メモリ内の電荷パターンを殆ど破壊し、プロセスを無益にするであろう。
Gate destruction attacks Gate destruction attacks rely on the attacker's ability to change a single gate and expose information to the chip during operation. However, the circuit that manipulates the secret information is covered by one of the two tamper prevention and detection lines. If any one of these lines breaks (in the process of breaking the gate), the attack is detected at power-up and each chip resets (continuously) or erases the key from flash memory . To participate in this type of attack, the attacker must first reverse engineer the chip to determine which gate should be targeted. After the target gate location is determined, the attacker must break the protected tamper detection line, stop erasing the flash memory, and somehow rewrite the component that trusted the ChipOK line. is there. Circuit rewriting cannot be performed without slicing the chip, and even if it can be performed, the operation of slicing the chip to this level almost destroys the charge pattern in the nonvolatile memory holding the key, and Will be useless.

上書き攻撃
上書き攻撃は、鍵の個々のビットを、その前の値を知ることなく、セットし得ることに依存している。それは、従来のプロービング攻撃と同じようにチップをプロービングし、ゲート破壊攻撃と同じようにゲートを破壊することに依存する。これらの両方の攻撃は(それぞれのセクションで説明したように)タンパー防止及び検出回路とChipOKラインを使用しているので成功しない。しかし、たとえ、攻撃者が何とかしてフラッシュメモリのビットへアクセスし、特定のビットを保持しているゲートを破壊するか、若しくは、省くことができるとしても、これは、そのビットを強制的に無充電、又はフル充電の状態にする。これらはどちらも、認証チップの多重レベルフラッシュメモリの使用法では無効状態である(二つの中間状態だけが有効である)。データ値がフラッシュから転送されたとき、検出回路は、消去タンパー検出ラインをトリガーさせ、これにより、フラッシュメモリの残りの部分を消去し、チップをリセットする。同じように、RAMから読み出された改ざんされている値のパリティチェックによって、消去タンパー検出ラインがトリガーされる。したがって、上書き攻撃は無益である。
Overwrite attacks Overwrite attacks rely on being able to set individual bits of a key without knowing their previous values. It relies on probing the chip like a conventional probing attack and destroying the gate like a gate breaking attack. Both of these attacks are unsuccessful because they use tamper prevention and detection circuitry and the ChipOK line (as described in the respective sections). However, even if an attacker can somehow access a bit in flash memory and destroy or omit the gate holding a particular bit, this forces that bit to Set to no charge or full charge. Both of these are invalid states for use of the multi-level flash memory of the authentication chip (only two intermediate states are valid). When the data value is transferred from the flash, the detection circuit triggers the erase tamper detection line, thereby erasing the remaining portion of the flash memory and resetting the chip. Similarly, the erase tamper detection line is triggered by a parity check of the tampered value read from the RAM. Thus, overwriting attacks are useless.

残留メモリ攻撃
認証チップ内の作業用レジスタ又はRAMは、電源が取り外されたとき、認証鍵の一部を保持している。作業用レジスタ及びRAMは、電源の取り外し後、ある時間その情報を保持し続ける。チップがスライスされ、レジスタ/RAMのゲートが、それらを放電させることなく露出されたとき、データは、STMを使用して、おそらく直接視できるであろう。第1の防御は、上述の電源誤動作攻撃に対する防御の説明からわかる。電源が取り外されると、リセット状態がメモリのクリアを引き起こすのとちょうど同じように、全てのレジスタ及びRAMがクリアされる。この攻撃が成功する見込みは、フラッシュメモリの読み出しの見込みよりもひくり。RAM電荷は(本質的に)フラッシュメモリよりも簡単に失われる。RAMを明らかにするためのチップのスライス化は、(電荷が、単に、メモリがリフレッシュされていないこと、及びスライス化を実行するために要する時間を原因として失われていないとしても)確実に電荷を失わせる。したがって、この攻撃は無益である。
The working register or RAM in the residual memory attack authentication chip holds a part of the authentication key when the power is removed. The working register and RAM keep the information for a certain time after the power supply is removed. When the chip is sliced and the register / RAM gates are exposed without discharging them, the data will probably be directly viewable using STM. The first defense can be understood from the description of the defense against the power supply malfunction attack described above. When the power supply is removed, all registers and RAM are cleared, just as the reset condition causes the memory to be cleared. The chances of this attack being successful are less than the chances of reading the flash memory. RAM charge is (essentially) lost more easily than flash memory. Chip slicing to reveal the RAM ensures that the charge (even if not simply lost due to the memory not being refreshed and the time it takes to perform the slicing). To lose. Therefore, this attack is useless.

チップ窃盗攻撃
認証チップの耐用期間には、区別可能なフェーズが存在する。チップは、以下のステージの何れかのときに盗まれる可能性がある:
製造後、鍵をプログラミングする前;
鍵のプログラミング後、状態データをプログラミングする前;
状態データのプログラミング後、消耗品又はシステムに挿入する前;
システム又は消耗品に挿入された後。
There are distinct phases in the lifetime of a chip theft attack authentication chip. A chip can be stolen at any of the following stages:
After manufacturing, before programming the key;
After programming the key and before programming the state data;
After programming the status data, before inserting it into a consumable or system;
After being inserted into the system or consumables.

チップ製造とプログラミングステーションの間の盗難は、複製品製造者にブランクチップを与えるだけである。これは、認証チップの販売を危うくするだけであり、認証チップによって認証されるものはない。プログラミングステーションは、消耗品及びシステム製品鍵をもつ唯一のメカニズムであり、複製品製造者はチップを正しい鍵でプログラミングできない。複製品製造者は、自分専用のシステム及び消耗品用にブランクチップをプログラミングすることは可能であるが、それらの品を見破られずに販売することは困難であろう。盗難の第2の形態は、認証チップが2以上の別個のプログラミングフェーズを通るような状況だけで起こり得る。これは起こり得るが、可能性は低い。いずれにしても、最悪の状況は、状態データがプログラミングされておらず、全てのMがリード/ライトになっている場合である。このケースでは、攻撃者はチップに対して適応的選択テキスト攻撃に出ることが可能である。HMAC−SHA1アルゴリズムはこの攻撃に対抗できる。盗難の第3の形態は、プログラミングステーションと取付工場との間で行われる。認証チップは、既に特定のシステム用、又は特定の消耗品用にプログラムされている。これらのチップの唯一の用途として、泥棒はこれらを複製システム又は複製消耗品に収容する。複製システムは見当違いであり、複製システムは認証チップ53を必要とさえしないであろう。複製消耗品の場合、このような盗難は、複製品の数を盗み取られたチップの数に制限する。1回の窃盗は、複製品製造者が費用対効果に優れたビジネスを行うために十分な供給数が得られない。盗難の最後の形態は、システム又は消耗品自体の盗難である。盗難が製造者側で発生した場合、物理的セキュリティプロトコルを強化しなければならない。盗難が他の場所で行われた場合、それは、その品の所有者、及び警察又は保険会社だけの問題である。認証チップが使用するセキュリティメカニズムは、消耗品及びシステムが一般の人の支配下にあることを前提としている。その結果として、それらが盗まれても、鍵の安全性に重大な影響はない。 The theft between the chip manufacture and the programming station only gives the replica manufacturer a blank chip. This only jeopardizes the sale of the authentication chip and nothing is authenticated by the authentication chip. The programming station is the only mechanism with consumables and system product keys, and the replica manufacturer cannot program the chip with the correct key. While replica manufacturers can program blank chips for their own systems and consumables, it would be difficult to sell without seeing those items. The second form of theft can only occur in situations where the authentication chip goes through two or more separate programming phases. This can happen but is unlikely. In any case, the worst situation is when no state data is programmed and all M are read / write. In this case, the attacker can go on an adaptive selected text attack against the chip. The HMAC-SHA1 algorithm can counter this attack. A third form of theft takes place between the programming station and the installation shop. The authentication chip is already programmed for a specific system or a specific consumable. As the only use of these chips, thieves house them in a replication system or replication consumables. The replication system is misplaced and the replication system will not even require the authentication chip 53. For replica consumables, such theft limits the number of replicas to the number of stolen chips. A single theft does not provide enough supplies for a replica manufacturer to do a cost-effective business. The final form of theft is theft of the system or the consumable itself. If theft occurs on the manufacturer side, the physical security protocol must be strengthened. If theft takes place elsewhere, it is only a matter of the item owner and the police or insurance company. The security mechanism used by the authentication chip assumes that consumables and systems are under the control of the general public. As a result, even if they are stolen, there is no significant impact on the security of the keys.

認証チップ設計
認証チップは、物理的及び論理的外部インタフェースをもつ。物理的インタフェースは認証チップをどのように物理的システムに接続できるかを規定し、論理的インタフェースはシステムがどのように認証チップと通信できるかを規定する。
Authentication chip design The authentication chip has physical and logical external interfaces. The physical interface defines how the authentication chip can be connected to the physical system, and the logical interface defines how the system can communicate with the authentication chip.

物理的インタフェース
認証チップは、小型の4ピンCMOSパッケージである(実際の内部サイズは、0.25μmフラッシュプロセスを使用する約0.30mmである)。4ピンは、グランド(GND)、クロック(CLK)、パワー(Power)、及びデータ(Data)である。パワーは公称電圧である。電圧が公称電圧からある量以上変動すると、チップはリセットする。推奨されるクロック速度は4から10MHzである。内部回路は、クロック信号をフィルタ処理し、安全最大クロック速度を超えないことを保証する。データは、シリアルデータラインに沿って、同時に1ビットずつ送受信される。チップは、パワーアップ時、パワーダウン時にリセットを実行する。その上、チップ内のタンパー検出及び防止回路は、攻撃が検出された場合、(検出された攻撃に応じて)チップをリセットさせるか、又はフラッシュメモリを消去させる。特殊プログラミングモードは、CLK電圧を特定レベルに保持することによってイネーブル状態にされる。これは次のセクションで更に説明される。
The physical interface authentication chip is a small 4-pin CMOS package (the actual internal size is about 0.30 mm 2 using a 0.25 μm flash process). The 4th pin is a ground (GND), a clock (CLK), a power (Power), and data (Data). Power is a nominal voltage. If the voltage fluctuates more than a certain amount from the nominal voltage, the chip resets. The recommended clock speed is 4 to 10 MHz. Internal circuitry filters the clock signal to ensure that the safe maximum clock speed is not exceeded. Data is transmitted and received one bit at a time along the serial data line. The chip performs a reset at power-up and power-down. In addition, the tamper detection and prevention circuit in the chip causes the chip to reset or erase the flash memory (depending on the detected attack) if an attack is detected. Special programming mode is enabled by holding the CLK voltage at a specific level. This is further explained in the next section.

論理的インタフェース
認証チップは、ノーマルモードとプログラミングモードの二つの動作モードを有する。二つのモードが必要になる理由は、動作プログラムコードは、(安全性の理由から)ROMではなくフラッシュメモリに記憶されるからである。プログラミングモードは、製造後にテスト目的のため使用され、動作プログラムコードを詰め込み、一方、ノーマルモードは、その後のチップの使用のために用いられる。
The logical interface authentication chip has two operation modes, a normal mode and a programming mode. The reason that the two modes are required is that the operating program code is stored in flash memory instead of ROM (for safety reasons). The programming mode is used for test purposes after manufacture and is packed with operating program code, while the normal mode is used for subsequent chip use.

プログラミングモード
プログラミングモードはCLKライン上に特定電圧を所定の時間だけ維持することによって有効にされる。チップがプログラミングモードに入るとき、全てのフラッシュメモリは消去される(全ての秘密鍵情報及びプログラムコードを含む)。認証チップは、次に、消去を検証する。消去が成功であるならば、認証チップは、新しいプログラムコードに対応した384バイトのデータを受け取る。バイトは、バイトからバイト383の順に転送される。ビットは、ビットからビットの順に転送される。384バイト全部のプログラムコードがロードされると、認証チップはハングする。消去が成功しなかった場合、認証チップは全くデータをフラッシュメモリにロードすることなくハングする。チップがプログラムされた後、チップを再スタートすることができる。チップがCLKライン上の通常電圧でリセットされたとき、ノーマルモードに入る。
Programming Mode Programming mode is enabled by maintaining a specific voltage on the CLK line for a predetermined time. When the chip enters programming mode, all flash memory is erased (including all secret key information and program code). The authentication chip then verifies the erasure. If the erase is successful, the authentication chip receives 384 bytes of data corresponding to the new program code. The bytes are transferred in the order of byte 0 to byte 383 . Bits are transferred in the order of bit 0 to bit 7 . When all 384 bytes of program code are loaded, the authentication chip hangs. If the erase is not successful, the authentication chip hangs without loading any data into the flash memory. After the chip is programmed, the chip can be restarted. When the chip is reset with normal voltage on the CLK line, it enters normal mode.

ノーマルモード
認証チップは、プログラミングモードではないときには、ノーマルモードである。認証チップがノーマルモードでスタートアップしたとき(例えば、パワーアップリセット)、認証チップは、そのときフラッシュメモリのプログラムコード領域に格納されているプログラムを実行する。プログラムコードは、システムと認証チップの間に通信メカニズムを組み込み、システムからのコマンド及びデータを受け取り、出力値を生成する。認証チップはシリアル通信をするので、ビットは同時に1ビットずつ転送される。システムは、簡単なオペレーションコマンドセットによって認証チップと通信する。各コマンドは3ビットオペコードによって定義される。オペコードの解釈は、IsTrustedビット及びIsWrittenビットの現在値に依存する。
The normal mode authentication chip is in the normal mode when not in the programming mode. When the authentication chip starts up in normal mode (for example, power-up reset), the authentication chip then executes the program stored in the program code area of the flash memory. The program code incorporates a communication mechanism between the system and the authentication chip, receives commands and data from the system, and generates output values. Since the authentication chip performs serial communication, bits are transferred one bit at a time. The system communicates with the authentication chip via a simple set of operation commands. Each command is defined by a 3-bit opcode. The interpretation of the opcode depends on the current values of the IsTrusted and IsWriten bits.

以下のオペレーションが定義される。 The following operations are defined:

Figure 0004309954
Op=オペコード、T=IsTrusted値、W=IsWritten値、
Mn=ニューモニック、[n]=パラメータに必要なビット数。
Figure 0004309954
Op = opcode, T = IsTrusted value, W = IsWritten value,
Mn = Pneumonic, [n] = Number of bits required for the parameter.

この表に定義されていないコマンドは、NOP(ノーオペレーション)として解釈される。その例には、(IsTrusted値又はIsWritten値とは無関係である)オペコード110及び111と、IsWritten=0のときのSSI以外のオペコードと、が含まれる。RD及びRNDのオペコードは同じであり、WR及びTSTのオペコードも同じであることに注意する必要がある。オペコードの受け取り後に動かされる実際のコマンドは、(IsWrittenが1である限り)IsTrustedビットの現在値に依存する。IsTrustedビットがクリアされているところでは、RD及びWR関数が呼び出される。IsTrustedビットがセットされると、RND及びTST関数が呼び出される。2組のコマンドは、信頼されている認証チップと信頼されていない認証チップとの間で相互に排他的である。認証チップ上でコマンドを実行するため、(システムのような)クライアントは、コマンドオペコードと、その後に続く、そのオペコードに必要な入力パラメータと、を送る。オペコードは、最下位ビットから最上位ビットまで送られる。例えば、SSIコマンドを送るため、ビット1、0及び0がこの順に送られる。各入力パラメータも同じ方法で送られ、最初に最下位ビットから送られ、最後に最上位ビットまでが送られる。戻り値はこの方法で読み出され、最初に最下位ビットが読まれ、最後に最上位ビットが読まれる。クライアントは獲得するビット数がわかっていなければならない。 Commands not defined in this table are interpreted as NOP (no operation). Examples include opcodes 110 and 111 (which are independent of IsTrusted value or IsWriteten value) and opcodes other than SSI when IsWriteten = 0. Note that the RD and RND opcodes are the same, and the WR and TST opcodes are the same. The actual command that is moved after receiving the opcode depends on the current value of the IsTrusted bit (as long as IsWritten is 1). Where the IsTrusted bit is cleared, the RD and WR functions are called. When the IsTrusted bit is set, the RND and TST functions are called. The two sets of commands are mutually exclusive between a trusted authentication chip and an untrusted authentication chip. To execute a command on the authentication chip, a client (such as a system) sends a command opcode followed by the input parameters required for that opcode. The opcode is sent from the least significant bit to the most significant bit. For example, to send an SSI command, bits 1, 0 and 0 are sent in this order. Each input parameter is sent in the same way, first from the least significant bit, and finally to the most significant bit. The return value is read in this way, the least significant bit is read first, and the most significant bit is read last. The client must know how many bits to acquire.

一部のケースでは、あるチップのコマンドからの出力ビットは、別のチップのコマンドへの入力ビットとしてそのまま供給される。この一例は、RNDコマンドとRDコマンドである。信頼された認証チップ上のRNDへの呼び出しからの出力ビットはシステムによって保持されなくてもよい。その代わりに、システムは、その出力ビットをそのまま信頼されない認証チップのRDコマンドの入力へ転送することができる。各コマンドの説明は、それがその場合であるかを示している。各コマンドは後続のセクションで詳細に検討される。一部のアルゴリズムは、常駐レジスタがフラッシュメモリに保持されているので、特別に設計されている。 In some cases, the output bits from one chip command are supplied as input bits to another chip command. An example of this is an RND command and an RD command. The output bits from the call to RND on the trusted authentication chip may not be retained by the system. Instead, the system can transfer the output bit as is to the input of the RD command of the authentication chip that is not trusted. The description of each command indicates whether that is the case. Each command is discussed in detail in subsequent sections. Some algorithms are specially designed because resident registers are held in flash memory.

レジスタ
認証チップ内のメモリは認証プロトコルによって要求される変数を記憶するため不揮発性メモリを含む。以下の不揮発性メモリ(フラッシュ)変数が定義される。
The memory in the register authentication chip includes a non-volatile memory for storing variables required by the authentication protocol. The following non-volatile memory (flash) variables are defined:

Figure 0004309954
アーキテクチャ概要
このセクション・章は、認証チップの必要な機能を実装することができる専用CPUの上位定義を与える。このCPUは汎用CPUではないことに注意する必要がある。認証ロジックを実装するためオーダーメードされている。WRITE、TST、RND等のような認証チップのユーザが目にする認証コマンドは、CPU命令セットでかかれた小型プログラムとして全て実装される。CPUは、32ビットのアキュムレータ(殆どのオペレーションで使用される)と、多数のレジスタと、を含む。CPUは、認証ロジックを実装するため専用に仕立てられた8ビット命令を含む。各8ビット命令は、典型的に、4ビットのオペコードと、4ビットのオペランドと、により構成される。
Figure 0004309954
Architecture Overview This section / chapter gives a high-level definition of a dedicated CPU that can implement the necessary functions of the authentication chip. It should be noted that this CPU is not a general purpose CPU. Made to order to implement authentication logic. The authentication commands seen by the user of the authentication chip such as WRITE, TST, RND, etc. are all implemented as a small program written in the CPU instruction set. The CPU includes a 32-bit accumulator (used for most operations) and a number of registers. The CPU includes 8-bit instructions tailored specifically to implement the authentication logic. Each 8-bit instruction is typically composed of a 4-bit opcode and a 4-bit operand.

動作速度
内部クロック周波数リミッタユニットは、チップが所定の周波数よりも速い速度で動作することを防止する。この周波数は、製造中にチップに組み込まれ、変更不可である。この周波数は約4から10MHzであることが推奨される。
The operating speed internal clock frequency limiter unit prevents the chip from operating at a speed faster than a predetermined frequency. This frequency is built into the chip during manufacture and cannot be changed. It is recommended that this frequency be about 4 to 10 MHz.

コンポジション及びブロック図
認証チップは以下のコンポーネントを含む。
The composition and block diagram authentication chip includes the following components:

Figure 0004309954
図181は認証チップの概略ブロック図である。タンパー防止及び検出回路は図示されない。雑音発生器、過小過大電力検出ユニット、及びプログラミングモード検出ユニットは、タンパー防止及び検出回路に接続され、残りのユニットへは接続されない。
Figure 0004309954
FIG. 181 is a schematic block diagram of the authentication chip. The tamper prevention and detection circuit is not shown. The noise generator, under / over power detection unit, and programming mode detection unit are connected to the tamper prevention and detection circuit and not to the rest of the units.

メモリマップ
図182はメモリマップの一例を示す図である。認証チップは外部メモリを持たないが、内部メモリを有する。内部メモリは9ビットによってアドレス指定され、32ビット幅又は8ビット幅である(アドレスに依存する)。32ビット幅メモリは不揮発性データ、HAMC−SHA1のため使用される変数、及び定数を保持するため使用される。8ビット幅メモリは、プログラムと、プログラムによって使用される様々なジャンプテーブルと、を保持するため使用される。アドレス分割(予備メモリレンジを含む)はアドレス生成及び復号化を最適化するため設計される。
Memory Map FIG. 182 shows an example of a memory map. The authentication chip does not have an external memory, but has an internal memory. The internal memory is addressed by 9 bits and is 32 or 8 bits wide (depending on the address). A 32-bit wide memory is used to hold non-volatile data, variables used for HAMC-SHA1, and constants. 8-bit wide memory is used to hold the program and the various jump tables used by the program. Address partitioning (including spare memory ranges) is designed to optimize address generation and decoding.

定数
図183は定数メモリマップの一例の説明図である。定数領域は32ビット定数により構成される。これらは、(32ビットの全部が0、及び32ビットの全部が1のような)単純な定数、HAMCアルゴリズムによって使用される定数、並びに、SHA−1アルゴリズムで使用するため必要な定数y0−3及びh0−4である。これらの値はリセットによって影響を受けない。定数を利用する唯一のオペコードはLDKである。このケースでは、オペランド及びメモリ配置は、アドレス生成及び復号化を最小限に抑えるため、密接に関連付けられている。
Constant FIG. 183 is an explanatory diagram of an example of a constant memory map. The constant area is composed of 32-bit constants. These are simple constants (such as all 32 bits are 0 and all 32 bits are 1), constants used by the HAMC algorithm, and constants y 0− required for use in the SHA-1 algorithm. 3 and h 0-4 . These values are not affected by the reset. The only opcode that uses constants is LDK. In this case, the operands and memory placement are closely related to minimize address generation and decoding.

RAM
図184はRAMメモリマップの一例の説明図である。RAM領域は、認証チップの汎用機能のために必要な32個のパリティチェック付き32ビットレジスタを含むが、チップの動作中だけである。RAMは揮発性メモリであり、一旦電源が取り外されると、値は失われる。実際上、メモリは、(メモリ残留のために)その値をパワーダウン後のある時間は維持するが、パワーアップ後に利用可能であるとは考えられない。これは、この文書の他のセクションで記載されているセキュリティの問題である。RAMは、HMAC−SHA1アルゴリズムで使用される変数、即ち、A−E、一時変数T、160ビット作業用ハッシュ値のためのスペースH、(HMACによって要求される)ハッシュ結果の一時記憶のためのスペースB160、及び拡張ハッシングメモリの512ビット用のスペースXを含む。全てのRAM変数は、リセット後に0にクリアされるが、プログラムコードはこれを当てにしてはならない。RAMアドレスを利用するオペコードは、LD、ST、ADD、LOG、XOR及びPRLである。全てのケースで、オペランド及びメモリ配置は、アドレス生成及び復号化を最小限に抑えるため、密接に関連付けられている(マルチワード変数は最上位ワードが先に格納される)。
RAM
FIG. 184 is an explanatory diagram of an example of a RAM memory map. The RAM area contains 32 32-bit registers with parity check that are necessary for the general purpose function of the authentication chip, but only during chip operation. The RAM is a volatile memory and the value is lost once the power is removed. In practice, the memory maintains its value for some time after power-down (due to memory remaining), but is not considered available after power-up. This is a security issue described in other sections of this document. RAM is a variable used in the HMAC-SHA1 algorithm: AE, temporary variable T, space H for 160-bit working hash value, for temporary storage of hash results (required by HMAC) Space B160 and space X for 512 bits of extended hashing memory are included. All RAM variables are cleared to 0 after reset, but the program code must not rely on this. The operation codes that use the RAM address are LD, ST, ADD, LOG, XOR, and PRL. In all cases, operands and memory placement are closely related to minimize address generation and decoding (multiword variables are stored most significant word first).

フラッシュメモリ−変数
図185はフラッシュメモリ変数メモリマップの一例の説明図である。フラッシュメモリ領域は、認証チップ内の不揮発性情報を格納する。フラッシュメモリは、電源の取り外し後もその値を維持し、次に電源が入れられたとき、変化していないことが期待できる。マルチステートフラッシュメモリに保持された不揮発性情報は、2個の160ビット鍵(K及びK)と、現在ランダム値(R)と、状態データ(M)と、MinTicks値(MT)と、AccessMode値(AM)と、IsWritten(ISW)フラグと、IsTrusted(IST)フラグと、を含む。フラッシュ値は、リセットによって変わらないが、プログラミングモードに入ったときに(0に)クリアされる。フラッシュアドレスを利用するオペレーションは、LD、ST、ADD、PRL、ROR、CLR及びSETである。全てのケースで、オペランド及びメモリ配置は、アドレス生成及び復号化を最小限に抑えるため、密接に関連付けられている。マルチワード変数K、K及びMは、アドレッシングの必要条件のため、最上位ワードから先に格納される。使用されるアドレッシングスキームは、Nで始まり、0で終わるインデックスによるベースアドレスオフセットである。このようにして、Mは最初にアクセスされるワードであり、Mは、ループ処理でアクセスされる最後の32ビットワードである。マルチワード変数Rは、同じインデキシングスキームを使用するLFSR生成を簡単にするため、最下位ワードから先に格納される。
Flash Memory-Variable FIG. 185 is an explanatory diagram of an example of a flash memory variable memory map. The flash memory area stores non-volatile information in the authentication chip. The flash memory maintains its value after the power is removed and can be expected to remain unchanged the next time the power is turned on. The non-volatile information held in the multi-state flash memory includes two 160-bit keys (K 1 and K 2 ), a current random value (R), state data (M), a MinTicks value (MT), It includes an AccessMode value (AM), an IsWritten (ISW) flag, and an IsTrusted (IST) flag. The flash value does not change upon reset, but is cleared (to 0) when entering programming mode. Operations that use the flash address are LD, ST, ADD, PRL, ROR, CLR, and SET. In all cases, the operands and memory placement are closely related to minimize address generation and decoding. Multiword variables K 1 , K 2 and M are stored first from the most significant word due to addressing requirements. The addressing scheme used is a base address offset with an index starting with N and ending with 0. In this way, M N is the word which is first accessed, M 0 is the last 32-bit word to be accessed by the loop. The multiword variable R is stored from the least significant word first to simplify LFSR generation using the same indexing scheme.

フラッシュメモリ−プログラム
図186はフラッシュメモリのプログラムメモリマップの一例の説明図である。第2のマルチステートフラッシュメモリ領域は、384×8ビットである。この領域は、JSR、JSI及びTBR命令のためのアドレステーブルと、DBRコマンド用のオフセットと、定数と、プログラム自体と、を格納する。フラッシュメモリは、リセットによって変わらないが、プログラミングモードに入ったときに(0に)クリアされる。一旦、プログラミングモードに入ると、8ビットフラッシュメモリに、新しい384バイトの組をロードすることができる。これが終了すると、チップはリセットされ、通常のチップ動作が行われる。
Flash Memory-Program FIG. 186 is an explanatory diagram of an example of a program memory map of the flash memory. The second multi-state flash memory area is 384 × 8 bits. This area stores an address table for JSR, JSI, and TBR instructions, an offset for DBR commands, a constant, and the program itself. The flash memory is not changed by reset, but is cleared (to 0) when entering the programming mode. Once in programming mode, the 8-bit flash memory can be loaded with a new set of 384 bytes. When this is finished, the chip is reset and normal chip operation is performed.

レジスタ
多数のレジスタが認証チップに定義される。それらは、関数実行中に一時記憶として使用される。一部は算術関数用であり、他の一部はカウンティング及びインデキシングに使用され、その他はシリアルI/Oのため使用される。これらのレジスタは不揮発性(フラッシュ)メモリに保持しなくてもよい。それらは、(フラッシュメモリとは異なり)消去サイクル無しで読み出し又は書き込みをすることができる。秘密情報を格納する一時記憶レジスタは、タンパー防止及び検出回路並びにパリティチェックによって、物理的攻撃から保護されなければならない。全てのレジスタはリセット後に0にクリアされる。しかし、プログラムコードは特定の状態を前提とすべきではなく、レジスタ値を適切に設定すべきである。これらのレジスタは、タンパー防止及び検出回路のために定義された様々なOKビットを含まなくてもよいことに注意する必要がある。OKビットは種々のユニットに散在され、リセット後に1にセットされる。
Register A number of registers are defined in the authentication chip. They are used as temporary storage during function execution. Some are for arithmetic functions, some are used for counting and indexing, and others are used for serial I / O. These registers need not be held in non-volatile (flash) memory. They can be read or written without an erase cycle (unlike flash memory). Temporary storage registers that store secret information must be protected from physical attacks by tamper prevention and detection circuitry and parity checks. All registers are cleared to 0 after reset. However, the program code should not assume a specific state, but should set the register values appropriately. Note that these registers may not include the various OK bits defined for tamper protection and detection circuitry. The OK bits are scattered across the various units and are set to 1 after reset.

サイクル
1ビットサイクル値は、CPUがフェッチサイクル(0)であるか、実行サイクル(1)であるかを決める。サイクルは、実際には、前のサイクル値を保持する1ビットレジスタから得られる。サイクルは命令セットから直接アクセスできない。それは内部レジスタ専用である。
The cycle 1 bit cycle value determines whether the CPU is a fetch cycle (0) or an execution cycle (1). The cycle is actually derived from a 1-bit register that holds the previous cycle value. Cycles cannot be accessed directly from the instruction set. It is for internal registers only.

プログラムカウンタ
6レベルの深さの9ビットプログラムカウンタアレイ(PCA)が定義される。それは、3ビットスタックポインタ(SP)によってインデキシングされる。現在プログラムカウンタ(PC)は、現在実行中命令のアドレスを格納し、事実上、PCA[SP]である。更に、9ビットAdrレジスタが定義され、(インデックス付きアクセス、又は間接メモリアクセスのための)現在メモリ基準の分解アドレスを格納する。PCA、SP及びAdrレジスタは、命令セットから直接アクセスできない。これらは内部レジスタ専用である。
A 9-bit program counter array (PCA) is defined which is 6 levels deep. It is indexed by a 3 bit stack pointer (SP). The current program counter (PC) stores the address of the currently executing instruction and is effectively PCA [SP]. In addition, a 9-bit Adr register is defined to store the current memory-based resolved address (for indexed or indirect memory access). The PCA, SP and Adr registers are not directly accessible from the instruction set. These are dedicated to internal registers.

CMD
8ビットCMDレジスタは、現在実行中のコマンドを保持するため使用される。CMDレジスタレジスタは命令セットから直接アクセス不可であるが、内部レジスタ専用である。
CMD
The 8-bit CMD register is used to hold the command currently being executed. The CMD register register is not directly accessible from the instruction set, but is dedicated to internal registers.

アキュムレータ及びZフラグ
アキュムレータは32ビット汎用レジスタである。これは、算術演算への入力の一つとして使用され、メモリレジスタ間で情報を転送するため使用されるレジスタである。Zレジスタは1ビットフラグであり、アキュムレータが書き込まれるときに更新される。Zレジスタはアキュムレータの零性を格納する。アキュムレータに最後に書き込まれた値が0であるならば、Z=1であり、最後に書き込まれた値が非0であるならば、Z=0である。アキュムレータとZレジスタの両方は命令セットから直接アクセス可能である。
The accumulator and Z flag accumulator are 32-bit general purpose registers. This is a register used as one of the inputs to arithmetic operations and used to transfer information between memory registers. The Z register is a 1-bit flag and is updated when the accumulator is written. The Z register stores the zero value of the accumulator. If the last value written to the accumulator is zero, Z = 1, and if the last value written is non-zero, Z = 0. Both accumulators and Z registers are directly accessible from the instruction set.

カウンタ
多数の専用カウンタ/インデックスレジスタが定義される。
Counter A number of dedicated counter / index registers are defined.

Figure 0004309954
これらの全てのカウンタ・レジスタは、命令セットから直接アクセス可能である。これらに特定の値をロードするための専用命令が存在し、別の命令は、それらをデクリメント又はインクリメントし、或いは、特定のカウンタが零であるかどうかに応じて分岐する。2個の専用フラグ(レジスタではない)がC1及びC2に関連付けられ、これらのフラグはC1又はC2の零性を保持する。これらのフラグは、ループ制御のために使用され、以下に列挙される。これれのフラグはレジスタではないが、レジスタと同様にテストできる。
Figure 0004309954
All these counter registers are directly accessible from the instruction set. There are dedicated instructions for loading a particular value, and another instruction decrements or increments them or branches depending on whether a particular counter is zero. Two dedicated flags (not registers) are associated with C1 and C2, and these flags retain the zeroness of C1 or C2. These flags are used for loop control and are listed below. These flags are not registers, but can be tested in the same way as registers.

Figure 0004309954
フラグ
CPU動作モードに対応する多数の1ビットフラグが定義される。
Figure 0004309954
A number of 1-bit flags corresponding to the flag CPU operation mode are defined.

Figure 0004309954
これらの全ての1ビットフラグは命令セットから直接アクセス可能である。専用命令がこれらのフラグをセット及びクリアするため設けられる。
Figure 0004309954
All these 1-bit flags are directly accessible from the instruction set. Dedicated instructions are provided to set and clear these flags.

書き込み完全性のため使用されるレジスタ Registers used for write integrity

Figure 0004309954
I/Oのため使用されるレジスタ
4個の1ビットレジスタがクライアント(システム)と認証チップの間の通信のため定義される。これらのレジスタは、InBit(入力ビット)、InBitValid(入力ビット有効)、OutBit(出力ビット)、及びOutBitValid(出力ビット有効)である。InBit及びInBitValidは、クライアントがコマンド及びデータを認証チップへ送るための手段を提供する。OutBit及びOutBitValidはクライアントが認証チップから情報を受けるための手段を提供する。クライアントは、コマンド及びパラメータビットを、同時に1ビットずつ認証チップへ送る。認証チップはスレーブ装置であるため、認証チップの観点では:
InBitからの読み出しは、InBitValidがクリアされている間はハングする。InBitValidは、クライアントが次の入力ビットをInBitに書き込むまでクリアされたままである。InBitの読み出しはInBitValidビットをクリアし、次のInBitをクライアントから読み出せるようになる。クライアントは、InBitValidビットがクリアされるまでビットを認証チップに書き込めない;
OutBitへの書き込みは、OutBitValidがセットされている間はハングする。OutBitValidは、クライアントがOutBitからビットを読み出すまでセットされたままである。OutBitの書き込みはOutBitValidビットをセットし、次のOutBitをクライアントが読み出せるようにする。クライアントは、OutBitValidビットがセットされるまで認証チップからビットを読み出せない。
Figure 0004309954
Registers used for I / O Four 1-bit registers are defined for communication between the client (system) and the authentication chip. These registers are InBit (input bit), InBitValid (input bit valid), OutBit (output bit), and OutBitValid (output bit valid). InBit and InBitValid provide a means for clients to send commands and data to the authentication chip. OutBit and OutBitValid provide a means for the client to receive information from the authentication chip. The client sends the command and parameter bits to the authentication chip one bit at a time. Since the authentication chip is a slave device, from the authentication chip perspective:
Reading from InBit hangs while InBitValid is cleared. InBitValid remains cleared until the client writes the next input bit to InBit. Reading InBit clears the InBitValid bit so that the next InBit can be read from the client. The client cannot write bits to the authentication chip until the InBitValid bit is cleared;
Writing to OutBit hangs while OutBitValid is set. OutBitValid remains set until the client reads a bit from OutBit. Writing OutBit sets the OutBitValid bit so that the client can read the next OutBit. The client cannot read the bit from the authentication chip until the OutBitValid bit is set.

タイミングアクセスのため使用されるレジスタ
1個の32ビットレジスタがタイマーとして使用するため定義される。MTR(MinTicksRemaining)レジスタは、命令が実行されると、その都度デクリメントする。MTRレジスタが0になると、それは零に留まる。MTRは1ビットフラグMTRZに関連付けられ、MTRZはMTRの零性を格納する。MTRZが1であるならば、MTRレジスタは零である。MTRZが0であるならば、MTRレジスタは未だ零ではない。MTRは(リセット後、又は特定の鍵アクセス関数後)常にMinTicks値から始まり、最終的に0まで減少する。MTRをセットし、MTRZを専用命令でテストすることができるが、MTRの値は命令によって直接読み出せない。
Register used for timing access One 32-bit register is defined for use as a timer. An MTR (MinTicksRemaining) register is decremented each time an instruction is executed. When the MTR register goes to 0, it stays at zero. MTR is associated with a 1-bit flag MTRZ, and MTRZ stores MTR zeroness. If MTRZ is 1, the MTR register is zero. If MTRZ is 0, the MTR register is not yet zero. The MTR always starts with the MinTicks value (after reset or after a specific key access function) and eventually decreases to zero. MTR can be set and MTRZ can be tested with a dedicated instruction, but the value of MTR cannot be read directly by the instruction.

レジスタの要約
以下のテーブルは(レジスタ名の順に)全ての一時レジスタを要約する。そのテーブルは、レジスタ名と、サイズ(ビット単位)と、その指定されたレジスタがどこにあるかを列挙する。
Register Summary The following table summarizes all temporary registers (in order of register name). The table lists the register name, size (in bits), and where the specified register is located.

Figure 0004309954
命令セット
CPUは、認証ロジックを実現するため特別に用意された8ビット命令で動作する。8ビット命令の大半は、4ビットオペコードと、4ビットオペランドと、により構成される。上位4ビットはオペコードを含み、下位4ビットがオペランドを含む。
Figure 0004309954
The instruction set CPU operates with a specially prepared 8-bit instruction for realizing the authentication logic. Most 8-bit instructions are composed of a 4-bit opcode and a 4-bit operand. The upper 4 bits contain an opcode and the lower 4 bits contain an operand.

オペコード及びオペランド(要約)
オペコードは以下の表に要約されている。
Opcodes and operands (summary)
The opcodes are summarized in the following table.

Figure 0004309954
以下の表は、どのオペランドがどのオペコードと共に使用できるかを要約した表である。この表は、オペコードのニューモニックによってアルファベット順に並べられている。各オペランドのバイナリ値は、その次の表に示されている。
Figure 0004309954
The following table summarizes which operands can be used with which opcodes. The table is arranged in alphabetical order by the mnemonic of the opcode. The binary value of each operand is shown in the next table.

Figure 0004309954
以下のオペランド表は、4ビットオペランドの解釈を示し、全ての4ビットが直接解釈のため使用されている。
Figure 0004309954
The following operand table shows the interpretation of 4-bit operands, and all 4 bits are used for direct interpretation.

Figure 0004309954
以下の命令は、オペランドの最上位ビットに基づいて選択を行う。
Figure 0004309954
The following instructions make a selection based on the most significant bit of the operand.

Figure 0004309954
オペランドの下位3ビットは、オフセット(DBR,TBR)か、専用テーブル(SC)からの値であるか、LOGの場合のように、それらは論理演算のための第2の入力を選択する。解釈は、ADD、LD、及びSTオペコードの解釈と一致する。
Figure 0004309954
The lower 3 bits of the operand are an offset (DBR, TBR), a value from a dedicated table (SC), or they select a second input for a logical operation, as in LOG. The interpretation is consistent with the interpretation of ADD, LD, and ST opcodes.

Figure 0004309954
ADD−アキュムレータへの加算
ニューモニック: ADD
オペコード: 1000
用法: ADD
値。
Figure 0004309954
ADD-Addition mnemonic to accumulator: ADD
Opcode: 1000
Usage: ADD
value.

ADD命令は、指定されたオペランドを、モジュロー232の加法でアキュムレータに加算する。オペランドは、A、B、C、D、E、T、AM、MT、AE[C1]、H[C1]、B160[C1]、R[C1]、K[C1]、M[C1]、又はX[N4]のうちの一つである。また、Zフラグはこの演算中に、ロードされた値が零か非零かに応じてセットされる。 The ADD instruction adds the specified operand to the accumulator by modulo 2 32 addition. Operands are A, B, C, D, E, T, AM, MT, AE [C1], H [C1], B160 [C1], R [C1], K [C1], M [C1], or One of X [N4]. Also, the Z flag is set during this calculation depending on whether the loaded value is zero or non-zero.

CLR−ビットをクリア
ニューモニック: CLR
オペコード: 0110
用法: CLR
フラグ/レジスタ。
CLR-Clear Bit Numonic: CLR
Opcode: 0110
Usage: CLR
Flag / register.

CLR命令は、指定された内部フラグ、又はフラッシュメモリレジスタをクリアさせる。フラッシュメモリのケースでは、CLR命令はある時間を要するが、次の命令は、フラッシュメモリの消去が終了するまで引き延ばされる。クリアできるレジスタは、WE及びK2MXである。クリアできるフラッシュメモリは、R、M[C1]、Group1、及びGroup2である。Group1は、IST及びISWフラグである。それらがクリアされると、唯一の有効な上位レベルコマンドはSSI命令である。Group2は、MT、AM、K1及びK2レジスタである。Rは別個に消去される。なぜならば、RはTSTへの呼び出し毎に更新されるからである。また、Mは、インデックスメカニズムによって消去され、Mの個々の部分を更新することができる。また、対応したSET命令がある。 The CLR instruction causes the designated internal flag or flash memory register to be cleared. In the case of flash memory, the CLR instruction takes some time, but the next instruction is deferred until the flash memory is finished erasing. The registers that can be cleared are WE and K2MX. The flash memories that can be cleared are R, M [C1], Group1, and Group2. Group 1 is an IST and ISW flag. When they are cleared, the only valid upper level command is the SSI instruction. Group2 is an MT, AM, K1, and K2 register. R is erased separately. This is because R is updated on every call to TST. Also, M is erased by the index mechanism and individual parts of M can be updated. There is also a corresponding SET instruction.

DBR−デクリメント及びブランチ
ニューモニック: DBR
オペコード: 0001
用法: DBR
カウンタ、オフセット。
DBR-decrement and branch mnemonics: DBR
Opcode: 0001
Usage: DBR
Counter, offset.

この命令は、簡単なループを構築するメカニズムを提供する。オペランドのハイビットは、C1のテストか、C2のテスト(2個のカウンタ)を選択する。指定されたカウンタが非零であるならば、カウンタはデクリメントされ、所定のオフセットの値(符号拡張)がPCに加算される。指定されたカウンタが零であるならば、カウンタはデクリメントされ、処理はPC+1で継続する。8エントリーのオフセットテーブルがアドレス011000000(プログラムメモリの64番目のエントリー)に格納される。オフセットの8ビットは符号付き数として取り扱われる。このようにして、0xFFは−1として扱われ、0x01は+1として取り扱われる。典型的に、その値はループで使用するため負である。 This instruction provides a mechanism for building a simple loop. The high bit of the operand selects the C1 test or the C2 test (two counters). If the specified counter is non-zero, the counter is decremented and a predetermined offset value (sign extension) is added to the PC. If the specified counter is zero, the counter is decremented and processing continues with PC + 1. An 8-entry offset table is stored at address 011000000 (the 64th entry in the program memory). The 8 bits of the offset are treated as a signed number. In this way, 0xFF is treated as -1 and 0x01 is treated as +1. Typically, the value is negative for use in the loop.

JSI−サブルーチン間接ジャンプ
ニューモニック: JSI
オペコード: 01001
用法: JSI(Acc)。
JSI-Subroutine Indirect Jump Pneumonic: JSI
Opcode: 01001
Usage: JSI (Acc).

JSI命令は、アキュムレータの現在値に依存したサブルーチンへのジャンプを可能にさせる。この命令は、現在PCをスタックへプッシュし、PCに新しい値をロードする。新しいPCの上位8ビットはジャンプテーブル2からロードされ(オフセットはアキュムレータの下位5ビットによって与えられる。)、PCの最下位ビットは0にクリアされる。このようにして、全てのサブルーチンは偶数アドレスでスタートしなければならない。スタックは、6個の実行レベル(5回のサブルーチン深さ)を提供する。プログラマは、この深さを超えないこと、又は戻り値が上書きされること(スタックがラップするため)を保証する責任がある。 The JSI instruction allows a jump to a subroutine depending on the current value of the accumulator. This instruction pushes the current PC onto the stack and loads the PC with a new value. The upper 8 bits of the new PC are loaded from jump table 2 (the offset is given by the lower 5 bits of the accumulator) and the least significant bit of the PC is cleared to zero. In this way, all subroutines must start with even addresses. The stack provides 6 execution levels (5 subroutine depths). The programmer is responsible for ensuring that this depth is not exceeded, or that the return value is overwritten (because the stack wraps).

JSR−サブルーチンジャンプ
ニューモニック: JSR
オペコード: 001
用法: JSR
オフセット。
JSR-Subroutine Jump Pneumonic: JSR
Opcode: 001
Usage: JSR
offset.

JSR命令は、最も一般的なサブルーチン構造の用法を提供する。この命令は、現在PCをスタックへプッシュし、PCに新しい値をロードする。新しいPCの上位8ビットはアドレステーブル1から与えられ、テーブルへのオフセットは5ビットオペランド(32通りのアドレスを実現できる)によって与えられる。PCの最下位ビットは0にクリアされる。このようにして、全てのサブルーチンは偶数アドレスでスタートしなければならない。スタックは、6個の実行レベル(5回のサブルーチン深さ)を提供する。プログラマは、この深さを超えないこと、又は戻り値が上書きされること(スタックがラップするため)を保証する責任がある。 The JSR instruction provides the most common usage of subroutine structures. This instruction pushes the current PC onto the stack and loads the PC with a new value. The upper 8 bits of the new PC are given from address table 1 and the offset to the table is given by a 5-bit operand (32 addresses can be implemented). The least significant bit of the PC is cleared to 0. In this way, all subroutines must start with even addresses. The stack provides 6 execution levels (5 subroutine depths). The programmer is responsible for ensuring that this depth is not exceeded, or that the return value is overwritten (because the stack wraps).

LD−アキュムレータへのロード
ニューモニック: LD
オペコード: 1011
用法: LD
値。
LD-Accumulator Road Pneumonics: LD
Opcode: 1011
Usage: LD
value.

LD命令は、指定されたオペランドからアキュムレータにロードする。オペランドは、A、B、C、D、E、T、AM、MT、AE[C1]、H[C1]、B160[C1]、R[C1]、K[C1]、M[C1]、又はX[N4]のうちの一つである。また、Zフラグはこの演算中に、ロードされた値が零か非零かに応じてセットされる。 The LD instruction loads into the accumulator from the specified operand. Operands are A, B, C, D, E, T, AM, MT, AE [C1], H [C1], B160 [C1], R [C1], K [C1], M [C1], or One of X [N4]. Also, the Z flag is set during this calculation depending on whether the loaded value is zero or non-zero.

LDK−定数のロード
ニューモニック: LDK
オペコード: 1110
用法: LDK
定数。
LDK-constant road mnemonic: LDK
Opcode: 1110
Usage: LDK
constant.

LDK命令は、アキュムレータに指定された定数をロードする。定数は、HMAC−SHA1のために必要な32ビット値と、汎用処理のために最も有用な全て0及び全て1と、である。したがって、
0x00000000
0x36363636
0x5C5C5C5C
0xFFFFFFFF
又は、C1でインデックス付けされたh及びy定数テーブルからの選択肢がある。hとyの定数テーブルは、HMAC−SHA1に必要な32ビットの表形式の定数を保持する。また、Zフラグはこの演算中に、ロードされた値が零か非零かに応じてセットされる。
The LDK instruction loads the constant specified in the accumulator. The constants are the 32-bit values needed for HMAC-SHA1, and all 0s and all 1s that are most useful for general purpose processing. Therefore,
0x00000000
0x36363636
0x5C5C5C5C
0xFFFFFFFF
Or, there are options from the h and y constant tables indexed by C1. The constant table of h and y holds a 32-bit tabular constant necessary for HMAC-SHA1. Also, the Z flag is set during this calculation depending on whether the loaded value is zero or non-zero.

LOG−論理演算
ニューモニック: LOG
オペコード: 1001
用法: LOG
演算 値。
LOG-Logic Pneumonic: LOG
Opcode: 1001
Usage: LOG
Calculated value.

LOG命令は、アキュムレータと指定された値に対して、32ビットのビット論理演算を実行する。LOG命令によってサポートされる2個の演算は、AND及びORである。ビットNOT及びXOR演算は、XOR命令によってサポートされる。アキュムレータとAND演算又はOR演算される32ビット値は、A、B、C、D、E、T、MT及びAMのうちの一つである。また、Zフラグはこの演算中に、(アキュムレータにロードされる)得られた32ビット値が零か非零かに応じてセットされる。 The LOG instruction performs a 32-bit bit logical operation on a value designated as an accumulator. The two operations supported by the LOG instruction are AND and OR. Bit NOT and XOR operations are supported by the XOR instruction. The 32-bit value that is ANDed or ORed with the accumulator is one of A, B, C, D, E, T, MT, and AM. Also, the Z flag is set during this operation depending on whether the resulting 32-bit value (loaded into the accumulator) is zero or non-zero.

ROR−右回転
ニューモニック: ROR
オペコード: 1100
用法: ROR
値。
ROR-Right Rotating Numonic: ROR
Opcode: 1100
Usage: ROR
value.

ROR命令は、アキュムレータを設定されたビット数だけ右へ回転する方法を提供する。アキュムレータの最上部に現れるビット(ビット31になる)は、アキュムレータの前のビット0の値でもよく、又は(フラグ、又はシリアル入力コネクションのような)外部1ビットフラグからでもよい。回転して溢れたビットはシリアルコネクションから出力してもよく、又は外部フラグと結合してもよい。許容されるオペランドは、InBit、OutBit、LFSR、RLFSR、IST、ISW、MTRZ、1、2、27、及び31である。また、Zフラグはこの演算中に、(アキュムレータにロードされる)得られた32ビット値が零か非零かに応じてセットされる。最も簡単な形式では、ROR命令用のオペランドは、アキュムレータを回転させるビット位置数を示す1、2,27、31のうちの一つである。これらのオペランドの場合、外部入力又は出力はなく、アキュムレータのビットが単に右へ回転させられる。オペランドがIST、ISW及びMTRZの場合、適切なフラグがアキュムレータの最上位ビットへ転送される。アキュムレータの残りの部分は、1ビット位置だけ右へシフトされ(ビット31がビット30になる等)、アキュムレータの最下位ビットはシフトされて溢れる。オペランドがInBitである場合、次のシリアル入力ビットがアキュムレータの最上位ビットへ転送される。次に、InBitValidビットはクリアされる。クライアントから入力ビットが得られない場合、実行は入力ビットが現れるまで一時停止される。アキュムレータの残りの部分は、1ビット位置だけ右へシフトされ(ビット31がビット30になる等)、アキュムレータの最下位ビットはシフトされて溢れる。 The ROR instruction provides a way to rotate the accumulator right by a set number of bits. The bit appearing at the top of the accumulator (becomes bit 31) may be the value of bit 0 before the accumulator, or it may be from an external 1-bit flag (such as a flag or serial input connection). Bits overflowing by rotation may be output from the serial connection or may be combined with an external flag. Permitted operands are InBit, OutBit, LFSR, RLFSR, IST, ISW, MTRZ, 1, 2, 27, and 31. Also, the Z flag is set during this operation depending on whether the resulting 32-bit value (loaded into the accumulator) is zero or non-zero. In the simplest form, the operand for the ROR instruction is one of 1, 2, 27, 31 indicating the number of bit positions that rotate the accumulator. For these operands, there is no external input or output, and the accumulator bits are simply rotated to the right. If the operand is IST, ISW and MTRZ, the appropriate flag is transferred to the most significant bit of the accumulator. The remaining part of the accumulator is shifted right by one bit position (bit 31 becomes bit 30, etc.) and the least significant bit of the accumulator is shifted and overflows. If the operand is InBit, the next serial input bit is transferred to the most significant bit of the accumulator. Next, the InBitValid bit is cleared. If no input bits are available from the client, execution is suspended until an input bit appears. The remaining part of the accumulator is shifted right by one bit position (bit 31 becomes bit 30, etc.) and the least significant bit of the accumulator is shifted and overflows.

オペランドがOutBitである場合、アキュムレータは右へ1ビット位置だけシフトされる。ビット0からシフトで送り出されたビットはOutBitフラグに格納され、OutBitValidフラグがセットされる。したがって、それは、クライアントによる読み出しの準備が完了する。OutBitValidフラグが既にセットされている場合、命令の実行は、OutBitがクライアントによって読み出される(そして、OutBitValidフラグがクリアされる)まで引き延ばされる。ビット31へシフトされた新しいビットはガーベッジ(実際には、現在のInBitレジスタの値)であると考えられる。最後に、RB及びXBRオペランドは、LFSRと倍精度シフトレジスタの実装を可能にさせる。RBの場合、シフトで送り出されたビット(形式的にビット0)は、RTMPレジスタに書き込まれる。RTMPレジスタの現在のレジスタはアキュムレータの新しいビット31になる。数個の32ビット値に複数のROR
RBコマンドを実行すると、倍精度の右回転/シフトが実現される。XRBは、RBと同様に動作し、RTMPレジスタの現在値がアキュムレータオン新しいビット31になる。しかし、XRB命令の場合、形式的にビット0であることが分かっているビットは、(RB命令の用に)単純にRTMPを置き換えない。その代わりに、そのビットはXORとRTMP演算され、その結果がRTMPに格納される。これにより、認証プロトコルによって要求される長いLFSRを実現できる。
If the operand is OutBit, the accumulator is shifted right by one bit position. The bit sent out by shifting from bit 0 is stored in the OutBit flag, and the OutBitValid flag is set. It is therefore ready for reading by the client. If the OutBitValid flag is already set, execution of the instruction is postponed until the OutBit is read by the client (and the OutBitValid flag is cleared). The new bit shifted to bit 31 is considered garbage (actually the value of the current InBit register). Finally, the RB and XBR operands allow for the implementation of LFSR and double precision shift registers. In the case of RB, the bit sent out by shift (formally bit 0) is written to the RTMP register. The current register of the RTMP register becomes the new bit 31 of the accumulator. Several RORs with several 32-bit values
Executing the RB command realizes double-precision right rotation / shift. XRB operates in the same way as RB, and the current value of the RTMP register becomes accumulator on new bit 31. However, in the case of an XRB instruction, a bit that is formally known to be bit 0 does not simply replace RTMP (for the RB instruction). Instead, the bit is XORed and RTMPed, and the result is stored in RTMP. Thereby, a long LFSR required by the authentication protocol can be realized.

RPL−ビット置換
ニューモニック: RPL
オペランド: 1101
用法: ROR
値。
RPL-bit replacement mnemonic: RPL
Operand: 1101
Usage: ROR
value.

RPL命令は、上位レベルWRITEコマンドを認証チップに組み込むため設計された。この命令は、アキュムレータの上位16ビットを、(アクセスモード値に依存して)最終的にMアレイに書き込まれた値で置き換えることを予定している。この命令は、3個のオペランド:Init、MHI及びMLOをとる。Initオペランドは、全ての内部フラグをセットし、後続の処理のためALU内のRPLユニットを準備する。アキュムレータは内部AccessModeレジスタへ転送される。アキュムレータは、WRITEコマンドを実行する場合には、RPL
Initへの呼び出しの前に、AMフラッシュメモリ場所からロードされるべきであり、TSTコマンドを実行する場合には、0でロードされるべきである。アキュムレータはそのまま変化しない。MHI及びMLOオペランドは、M[C1]の上位16ビット又は下位16ビットが(常に)アキュムレータの上位16ビットとの比較に使用されるかどうかを参照する。実行されるMHI及びMLO命令の各々は、初期化されたAccessMode値からの引き続く2ビットを使用する。最初のMHI又はMLOの実行は最下位2ビットを使用し、次の実行はその次の2ビットを使用し、以下同様である。
The RPL instruction was designed to incorporate higher level WRITE commands into the authentication chip. This instruction intends to replace the upper 16 bits of the accumulator with the value that was ultimately written to the M array (depending on the access mode value). This instruction takes three operands: Init, MHI and MLO. The Init operand sets all internal flags and prepares the RPL unit in the ALU for subsequent processing. The accumulator is transferred to the internal AccessMode register. When the accumulator executes the WRITE command, the accumulator
It should be loaded from the AM flash memory location prior to the call to Init, and should be loaded with 0 when executing a TST command. The accumulator remains unchanged. The MHI and MLO operands refer to whether the upper 16 bits or lower 16 bits of M [C1] are (always) used for comparison with the upper 16 bits of the accumulator. Each executed MHI and MLO instruction uses the following 2 bits from the initialized AccessMode value. The first MHI or MLO run uses the least significant 2 bits, the next run uses the next 2 bits, and so on.

RTS−サブルーチンからのリターン
ニューモニック: RTS
オペコード: 01000
用法: RTS。
Return mnemonic from RTS-subroutine: RTS
Opcode: 01000
Usage: RTS.

RTS命令は、直前に実行されたJSR又はJSI命令の後の命令で実行を再開させる。したがって、サブルーチンからの復帰と呼ばれる。実際には、この命令は、セーブされたPCをスタックからプルし、1を加え、得られたアドレスから実行を再開する。6個の実行レベル(5回のサブルーチン)が提供されるが、JSR及びJSI命令の各々と、RTSを合わせることはプログラマの責任である。先行するJSR無しに実行されたRTSは、スタックからプルされたアドレスから実行を開始させる。 The RTS instruction resumes execution at the instruction after the JSR or JSI instruction executed immediately before. Therefore, this is called return from subroutine. In practice, this instruction pulls the saved PC off the stack, adds 1, and resumes execution from the resulting address. Six execution levels (five subroutines) are provided, but it is the programmer's responsibility to match each of the JSR and JSI instructions with the RTS. The RTS executed without the preceding JSR starts execution from the address pulled from the stack.

SC−カウンタセット
ニューモニック: SC
オペコード: 0101
用法: SC
カウンタ 値。
SC-Counter Set Numonic: SC
Opcode: 0101
Usage: SC
Counter value.

SC命令はカウンタに特定の値をロードするため使用される。オペランドは、カウンタC1とC2のうちのどちらにロードするかを決める。ロードされるべき値は、2、3、4、7、10、15、19及び31のうちの一つである。カウンタ値は、ループ処理及びインデックス処理のため使用される。C1とC2の両方は、(DBR命令と組み合わされたとき)ループ構造のため使用されるが、一方、C1だけが倍精度変数の32ビット部分をインデックス付けするため使用できる。 The SC instruction is used to load a specific value into the counter. The operand determines which of the counters C1 and C2 is loaded. The value to be loaded is one of 2, 3, 4, 7, 10, 15, 19 and 31. The counter value is used for loop processing and index processing. Both C1 and C2 are used for the loop structure (when combined with the DBR instruction), while only C1 can be used to index the 32-bit portion of a double precision variable.

SET−ビットセット
ニューモニック: SET
オペコード: 0111
用法: SET
フラグ/レジスタ。
SET-bit set mnemonic: SET
Opcode: 0111
Usage: SET
Flag / register.

SET命令は、特定のフラグ又はフラッシュメモリの設定を可能にさせる。また、対応したCLR命令がある。WEオペランド及びK2MXオペランドの各々は、後の処理のため指定されたフラグをセットする。ISTオペランド及びISWオペランドの各々は、フラッシュメモリの適切なビットをセットし、一方、MTRオペランドはアキュムレータの現在値をMTRレジスタへ転送する。SET
Nxコマンドは、N1からN4に以下の定数をロードする。
The SET instruction allows a specific flag or flash memory to be set. There is also a corresponding CLR instruction. Each of the WE operand and the K2MX operand sets a designated flag for later processing. Each of the IST and ISW operands sets the appropriate bit in the flash memory, while the MTR operand transfers the current value of the accumulator to the MTR register. SET
The Nx command loads the following constants from N1 to N4.

Figure 0004309954
参照される各初期X[N]は、最適化されたSHA−1アルゴリズムのインデックスN1からN4に対する初期状態と一致することに注意すべきである。各インデックス値Nnがデクリメントするとき、有効なX[N]がインクリメントする。なぜならば、X個のワードは、最上位ビットの方からメモリに格納されるからである。
Figure 0004309954
Note that each initial X [N n ] referenced corresponds to the initial state for the optimized SHA-1 algorithm indices N1 through N4. As each index value Nn decrements, valid X [N] increments. This is because X words are stored in the memory from the most significant bit.

ST−アキュムレータを保存
ニューモニック: ST
オペコード: 1111
用法: ST
ロケーション。
ST-Accumulator Preservation Numonic: ST
Opcode: 1111
Usage: ST
Location.

ST命令は、アキュムレータの現在値を指定されたロケーションに格納する。ロケーションは、A、B、C、D、E、T、AM、MT、AE[C1]、H[C1]、B160[C1]、R[C1]、K[C1]、M[C1]、又はX[N4]のうちの一つである。X[N4]オペランドはN4インデックスを進める副作用がある。格納が行われた後、N4はXアレイの次の要素を指示する。N4は1ずつデクリメントされるが、Xアレイはハイからローへ並べられているので、インデックスをデクリメントすると、アレイ内の次の要素へ進む。格納先がフラッシュメモリである場合、ST命令の効果は、アキュムレータ内のビットに対応したフラッシュメモリのビットがセットされることである。アキュムレータからの正確な値が格納されることを保証するために、適切なメモリロケーションを先に消去するCLR命令を確実に使用すべきである。 The ST instruction stores the current value of the accumulator at a specified location. Locations are A, B, C, D, E, T, AM, MT, AE [C1], H [C1], B160 [C1], R [C1], K [C1], M [C1], or One of X [N4]. The X [N4] operand has the side effect of advancing the N4 index. After storage is done, N4 points to the next element in the X array. N4 is decremented by 1, but since the X array is ordered from high to low, decrementing the index advances to the next element in the array. When the storage destination is flash memory, the effect of the ST instruction is that the bit of the flash memory corresponding to the bit in the accumulator is set. To ensure that the correct value from the accumulator is stored, a CLR instruction that erases the appropriate memory location first should be used reliably.

TBR−テスト及びブランチ
ニューモニック: TBR
オペコード: 0000
用法: TBR
値 インデックス。
TBR-test and branch mnemonics: TBR
Opcode: 0000
Usage: TBR
Value index.

テスト及びブランチ命令は、アキュムレータが零か非零かをテストし、アキュムレータの現在状態がテスト相手の状態と一致しているならば、所与のアドレスへ分岐する。ZフラグがTRBテストと一致するならば、PCを9ビット値で置き換え、ここで、bit0=0であり、上位8ビットはMUから与えられる。そうでなければ、PCを1だけインクリメントする。値オペランドは0又は1である。0は、アキュムレータが零であることについてのテストであることを示す。1は、アキュムレータが非零であることについてのテストであることを示す。インデックスオペランドは、テストが成功したときに実行をジャンプさせる場所を示す。オペランドインデックスの残りの3ビットはジャンプテーブル1の最下位8エントリーをインデックス付けする。上位8ビットはテーブルから取り出され、最下位ビット(ビット0)は0にクリアされる。CMDはリセット時に0にクリアされる。0はTBR0として翻訳され、これは、アキュムレータ=0である場合に、アドレスオフセット0に格納されたアドレスへ分岐することを意味する。アキュムレータ及びZフラグもリセット時にクリアされるので、テストが真であり、正味の効果はジャンプテーブルの0番目のエントリーに格納されたアドレスへのジャンプである。 Test and branch instructions test whether the accumulator is zero or non-zero and branch to a given address if the current state of the accumulator matches the state of the test partner. If the Z flag matches the TRB test, PC is replaced with a 9-bit value, where bit0 = 0 and the upper 8 bits are provided by the MU. Otherwise, increment PC by 1. The value operand is 0 or 1. 0 indicates a test for the accumulator being zero. 1 indicates that the test is for a non-zero accumulator. The index operand indicates where to jump execution when the test is successful. The remaining 3 bits of the operand index index the lowest 8 entries of jump table 1. The upper 8 bits are taken from the table and the least significant bit (bit 0) is cleared to 0. CMD is cleared to 0 at reset. 0 is translated as TBR0, which means to branch to the address stored at address offset 0 if accumulator = 0. Since the accumulator and Z flag are also cleared at reset, the test is true and the net effect is a jump to the address stored in the 0th entry of the jump table.

XOR−排他的論理和
ニューモニック: XOR
オペコード: 1010
用法: XOR
値。
XOR-Exclusive OR mnemonic: XOR
Opcode: 1010
Usage: XOR
value.

XOR演算は、アキュムレータとの32ビットのビットXORを実行し、結果をアキュムレータに格納する。オペランドは、A、B、C、D、E、T、AM、MT、X[N1]、X[N2]、X[N3]又はX[N4]のうちの一つである。また、Zフラグは、結果に応じて(即ち、アキュムレータにロードされた値に応じて)、この演算中にセットされる。ビットNOT演算は、(LDK命令を用いて)アキュムレータを0xFFFFFFFFとXOR演算することによって実行される。X[N]オペランドは、(演算後に)適切なインデックスを次の値へ進める副作用がある。XORが行われた後、インデックスはXアレイの次の要素を指示する。N4は、ST
X[N4]命令によって進められる。インデックスは1ずつデクリメントされるが、Xアレイはハイからローへ並べられているので、インデックスをデクリメントすると、アレイ内の次の要素へ進む。
The XOR operation performs a 32-bit bit XOR with the accumulator and stores the result in the accumulator. The operand is one of A, B, C, D, E, T, AM, MT, X [N1], X [N2], X [N3] or X [N4]. Also, the Z flag is set during this operation depending on the result (ie, depending on the value loaded into the accumulator). Bit NOT operations are performed by XORing the accumulator with 0xFFFFFFFF (using the LDK instruction). The X [N] operand has the side effect of moving the appropriate index to the next value (after the operation). After XOR is done, the index points to the next element in the X array. N4 is ST
It is advanced by the X [N4] instruction. The index is decremented by one, but since the X array is ordered from high to low, decrementing the index advances to the next element in the array.

プログラミングモード検出ユニット
プログラミングモード検出ユニットは入力クロック電圧を監視する。クロック電圧が特定の値であるならば、消去タンパー検出ラインはトリガーされ、全ての鍵、プログラムコード、秘密情報等を消去し、プログラムモードに入る。プログラミングモード検出ユニットは通常のCMOSを用いて実装可能である。なぜならば、鍵はこのユニットを通過しないからである。このユニットはノンフラッシングCMOSで実現しなくてもよい。プログラミングモード検出ユニットをタンパー検出ラインで覆うべき特別の必要性はない。なぜならば、攻撃者は、CLR入力によってチップをプログラミングモードに移すことができるからである。プログラミングモードへ入るための信号として、消去タンパー検出ラインを使用することは、攻撃者が攻撃の一部としてプログラミングモードを使用したい場合に、消去タンパー検出ラインをアクティブにし、且つ機能させなければならないことを意味する。これは、認証チップへの攻撃を非常に困難にさせる。
Programming mode detection unit The programming mode detection unit monitors the input clock voltage. If the clock voltage is a specific value, the erase tamper detection line is triggered to erase all keys, program codes, secret information, etc. and enter program mode. The programming mode detection unit can be implemented using a normal CMOS. This is because the key does not pass through this unit. This unit may not be realized by non-flashing CMOS. There is no special need to cover the programming mode detection unit with a tamper detection line. This is because the attacker can move the chip into programming mode with a CLR input. Using the erase tamper detection line as a signal to enter the programming mode means that if the attacker wants to use the programming mode as part of an attack, the erase tamper detection line must be activated and function Means. This makes it very difficult to attack the authentication chip.

雑音発生器
雑音発生器は通常のCMOSで実現できる。なぜならば、鍵はこのユニットを通らないからである。このユニットはノンフラッシングCMOSで実現しなくてもよい。しかし、雑音発生器は、両方のタンパー検出及び保護ラインで保護されるべきであり、この結果として、攻撃者がこのユニットを改ざん使用とする場合、チップは、リセットするか、又は全ての秘密情報をクリアする。その上、LFSRのビットは、それらが改ざんされていないことを保証するため検証されるべきである(即ち、パリティチェック)。パリティチェックが失敗した場合、消去タンパー検出ラインがトリガーされる。最後に、雑音発生器の64ビット全部が単一ビットにOR演算される。このビットが0であるならば、消去タンパー検出ラインがトリガーされる。なぜならば、0はLFSRの無効状態だからである。OKビットセットアップを使用することは意味がない。なぜならば、雑音発生器はタンパー検出及び防止回路だけによって使用されるからである。
Noise generator The noise generator can be realized by a normal CMOS. Because the key does not pass through this unit. This unit may not be realized by non-flashing CMOS. However, the noise generator should be protected by both tamper detection and protection lines, and as a result, if an attacker tampers with this unit, the chip will reset or all confidential information To clear. Moreover, the LFSR bits should be verified to ensure that they have not been tampered with (ie, parity check). If the parity check fails, the erase tamper detection line is triggered. Finally, all 64 bits of the noise generator are OR'ed into a single bit. If this bit is 0, the erase tamper detection line is triggered. This is because 0 is an invalid state of LFSR. There is no point in using the OK bit setup. This is because the noise generator is used only by the tamper detection and prevention circuit.

状態機械
状態機械は、CPUの二つの動作サイクルを生成し、長いコマンドオペレーション中に引き延ばしを行い、オペレーティングサイクル中にオペコード及びオペランドを記憶する。状態機械は通常のCMOSで実現可能であり、その理由は、鍵がこのユニットを通らないからである。このユニットはノンフラッシングCMOSで実現しなくてもよい。しかし、オペコード/オペランドのラッチは、パリティチェックされるべきである。状態機械に格納されるロジック及びレジスタは、両方のタンパー検出ラインによって覆われるべきである。これは、実行される命令が攻撃者によって変更されないことを保証する。
The state machine state machine generates two operating cycles of the CPU, stretches during long command operations, and stores opcodes and operands during the operating cycle. The state machine can be implemented in normal CMOS because the key does not pass through this unit. This unit may not be realized by non-flashing CMOS. However, the opcode / operand latch should be parity checked. The logic and registers stored in the state machine should be covered by both tamper detection lines. This ensures that the executed instructions are not changed by the attacker.

認証チップは、汎用CPUの高速性及びスループットを要求しない。それは、認証プロトコルを実行できる速さで動作すればよく、それ以上に高速である必要はない。分岐制御を最適化し、又は次のオペコードをフェッチしている間にオペコードを実行する専用回路(及び、それに関連した全ての複雑さ)を具備するよりは、状態機械は、単純化した考え方を採用する。これは、設計時間を最小限に抑え、実装にエラーが起こる可能性を低減することに役立つ。 The authentication chip does not require the high speed and throughput of a general purpose CPU. It only needs to operate fast enough to run the authentication protocol and need not be faster. Rather than having dedicated circuitry (and all associated complexity) to optimize branch control or execute the opcode while fetching the next opcode, the state machine adopts a simplified concept To do. This helps minimize design time and reduce the possibility of implementation errors.

状態機械の一般的な動作は、以下のサイクルの組を生成することである:
サイクル0:フェッチサイクル。これは、オペコードがプログラムメモリからフェッチされ、フェッチされたオペコードから実効アドレスが生成されるサイクルである;
サイクル1:実行サイクルこれは、オペランドが(サイクル0で)生成された実効アドレスによってルックアップされ(かもしれない)、オペレーション自体が実行されるサイクルである。
The general operation of a state machine is to generate the following set of cycles:
Cycle 0: fetch cycle. This is the cycle in which the opcode is fetched from program memory and the effective address is generated from the fetched opcode;
Cycle 1: execution cycle This is the cycle in which the operand is looked up (may be) by the effective address generated (in cycle 0) and the operation itself is executed.

正常な条件下で、状態機械は、サイクル:0、1、0、1、0、1...を生成する。しかし、あるケースでは、状態機械は、引き延ばしを行い、引き延ばし条件が終了するまで、各クロックチックでサイクル0を生成する。引き延ばし条件には、フラッシュサイクルの消去サイクル待ち、クライアントのシリアルデータの読み書きの待機、又は(タンパーリングによる)無効オペコード等が含まれる。フラッシュメモリがそのとき消去中であるならば、次の命令は、フラッシュメモリが消去され尽くすまで実行できない。これは、メモリユニットから送られるWait信号によって判定される。Wait=1であるならば、状態機械はサイクル0だけを生成する。シリアルI/O動作を原因とする引き延ばしには、2通りのケースがある:
オペコードがROR
OutBitであり、既にOutBitValid=1であるケース。これは、現在オペレーションは、ビットをクライアントへ出力することを要求するが、クライアントは最後のビットを未だ読み出していないケースである;
オペレーションがROR
InBitであり、InBitValid=0であるケース。これは、現在オペレーションがクライアントからのビットの読み出しを要求するが、クライアントが未だそのビットを供給していないケースである。
Under normal conditions, the state machine will cycle: 0, 1, 0, 1, 0, 1. . . Is generated. However, in some cases, the state machine performs a stretch and generates cycle 0 at each clock tick until the stretch condition ends. The extension condition includes an erase cycle waiting for a flash cycle, a client serial data read / write wait, or an invalid opcode (by tampering). If the flash memory is being erased then the next instruction cannot be executed until the flash memory is completely erased. This is determined by a Wait signal sent from the memory unit. If Wait = 1, the state machine generates only cycle 0. There are two cases of stretching due to serial I / O operations:
Opcode is ROR
Case of OutBit and already OutBitValid = 1. This is the case when the current operation requires the bit to be output to the client, but the client has not yet read the last bit;
Operation is ROR
Case of InBit and InBitValid = 0. This is the case when the current operation requests reading a bit from the client, but the client has not yet supplied that bit.

両方のケースで、状態機械は、引き延ばし条件が終了するまで引き延ばしをしなければならない。したがって、次の「サイクル」は、古いサイクル又は前のサイクルと、CMD、Wait、OutBitValid、及びInBitValidの現在値と、に依存する。WaitはMUに由来し、OutBitValid及びInBitValidはI/Oユニットに由来する。サイクルが0であるとき、8ビットオペコードはメモリユニットからフェッチされ、8ビットCMDレジスタに収容される。CMDレジスタの書き込みイネーブルは、−サイクルである。このユニットからの二つの出力は、サイクルとCMDである。両方の値は、認証チップ内の他の全ての処理ユニットへ渡される。1ビットのサイクル値は、各ユニットにフェッチ又は実行サイクルが行われているかどうかを報せ、一方、8ビットのCMDは、各ユニットが特定のユニットに関連したコマンドのための適切な動作を行えるようにする。 In both cases, the state machine must stretch until the stretching condition ends. Thus, the next “cycle” depends on the old or previous cycle and the current values of CMD, Wait, OutBitValid, and InBitValid. Wait is derived from the MU, and OutBitValid and InBitValid are derived from the I / O unit. When the cycle is 0, the 8-bit opcode is fetched from the memory unit and stored in the 8-bit CMD register. The write enable for the CMD register is -cycle. The two outputs from this unit are cycle and CMD. Both values are passed to all other processing units in the authentication chip. A 1-bit cycle value informs each unit whether a fetch or execute cycle is taking place, while an 8-bit CMD allows each unit to perform the appropriate operation for a command associated with a particular unit. To.

図187は、状態機械のコンポーネント間のデータフロー及び関係を示す図であり、同図では、 FIG. 187 is a diagram showing the data flow and relationship between the components of the state machine,

Figure 0004309954
である。
Figure 0004309954
It is.

Old及びCMDは、共にリセットで0にクリアされる。この結果によって第1のサイクルは1であり、これは、0CMDを実行させる。0はTBR
0として翻訳され、即ち、Accmulator=0ならば、アドレスオフセット0に格納されたアドレスへ分岐する。アキュムレータもリセットで0にクリアされるので、テストは真であり、正味の効果はジャンプテーブルの0番目のエントリーに格納されたアドレスへのジャンプである。2個のVALユニットがそれらを通過する値を検証するため設計される。各VALは、両方のタンパー防止及び検出ラインに接続されたOKビットを含む。OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー防止及び検出ラインからのChipOK値とOR演算される。OKビットはそのユニットを通過する各データビットとAND演算される。VALの場合、チップが改ざんされたならば、実効サイクルは常に0である。このようにして、決してサイクル1にならないので、プログラムコードは実行されない。Oldが改ざんされたかどうかを検査する必要はない。なぜならば、攻撃者がOld状態を止めるならば、チップはそれ以上命令を実行しないからである。VALの場合、実効8ビットCMD値は、チップ改ざんされたならば、常に0であり、これは、TBR
0命令である。これは、あらゆるプログラムコードの実効を停止する。VALは、CMDが改ざんされていないことを保証するため、CMDからのビットにパリティチェックを行う。パリティチェックが失敗したならば、消去タンパー検出ラインがトリガーされる。
Both Old and CMD are cleared to 0 by reset. With this result, the first cycle is 1, which causes 0CMD to be executed. 0 is TBR
If it is translated as 0, that is, Accumulator = 0, it branches to the address stored at address offset 0. Since the accumulator is also cleared to zero on reset, the test is true and the net effect is a jump to the address stored in the zeroth entry of the jump table. Two VAL units are designed to verify the values that pass through them. Each VAL includes an OK bit connected to both tamper prevention and detection lines. The OK bit is set to 1 at reset and ORed with the ChipOK value from both tamper prevention and detection lines every cycle. The OK bit is ANDed with each data bit passing through the unit. For VAL 1 , the effective cycle is always 0 if the chip has been tampered with. In this way, no program code is executed since cycle 1 is never reached. There is no need to check whether the Old has been tampered with. This is because if the attacker stops the Old state, the chip will not execute any more instructions. For VAL 2 , the effective 8-bit CMD value is always 0 if the chip has been tampered with, which is the TBR
0 instruction. This stops the execution of any program code. VAL 2 performs a parity check on the bits from the CMD to ensure that the CMD has not been tampered with. If the parity check fails, the erase tamper detection line is triggered.

I/Oユニット
I/Oユニットは外界とシリアル通信する。認証チップは、スレーブシリアル装置として動作し、クライアントからのシリアルデータを受け取り、コマンドを処理し、得られたデータをクライアントへシリアル送信する。I/Oユニットは通常のCMOSで実現できる。なぜならば、鍵がこのユニットを通らないからである。このユニットはノンフラッシングCMOSで実現しなくてもよい。更に、ラッチはパリティチェックしなくてもよい。なぜならば、攻撃者にとってそれらを破壊又は変更する利益がないからである。I/Oユニットは、タンパー検出ラインの何れかが破断された場合、0を出力し0を入力する。これは、攻撃者がリセット及び/又は消去回路を動作禁止状態にした場合に限り有効になる。なぜならば、タンパー検出ラインの何れかを破断することは、リセット又は全フラッシュメモリの消去を生じるからである。
I / O unit The I / O unit communicates serially with the outside world. The authentication chip operates as a slave serial device, receives serial data from the client, processes a command, and serially transmits the obtained data to the client. The I / O unit can be realized by a normal CMOS. This is because the key does not pass through this unit. This unit may not be realized by non-flashing CMOS. Further, the latch need not be parity checked. This is because there is no benefit for the attacker to destroy or change them. The I / O unit outputs 0 and inputs 0 when any of the tamper detection lines is broken. This is only effective when the attacker has disabled the reset and / or erase circuit. This is because breaking any of the tamper detection lines will cause a reset or erase of the entire flash memory.

InBit、InBitValid、OutBit、及びOutBitValidの1ビットレジスタは、クライアント(システム)と認証チップとの間の通信のため使用される。InBit及びInBitValidは、クライアントがコマンド及びデータを認証チップへ送る手段を提供する。OutBit及びOutBitValidは、クライアントが認証チップから情報を得る手段を提供する。チップがリセットされたとき、InBitValid及びOutBitValidは共にクリアされる。クライアントは、同時に1ビットずつ、コマンド及びパラメータビットを認証チップへ送る。認証チップの観点では:
InBitからの読み出しは、InBitValidがクリアされている間はハングする。InBitValidは、クライアントが次の入力ビットをInBitに書き込むまでクリアされたままである。InBitの読み出しはInBitValidビットをクリアし、次のInBitをクライアントから読み出せるようになる。クライアントは、InBitValidビットがクリアされるまでビットを認証チップに書き込めない;
OutBitへの書き込みは、OutBitValidがセットされている間はハングする。OutBitValidは、クライアントがOutBitからビットを読み出すまでセットされたままである。OutBitの書き込みはOutBitValidビットをセットし、次のOutBitをクライアントが読み出せるようにする。クライアントは、OutBitValidビットがセットされるまで認証チップからビットを読み出せない。
The 1-bit registers of InBit, InBitValid, OutBit, and OutBitValid are used for communication between the client (system) and the authentication chip. InBit and InBitValid provide a means for clients to send commands and data to the authentication chip. OutBit and OutBitValid provide a means for the client to obtain information from the authentication chip. Both InBitValid and OutBitValid are cleared when the chip is reset. The client sends the command and parameter bits to the authentication chip one bit at a time. From the authentication chip perspective:
Reading from InBit hangs while InBitValid is cleared. InBitValid remains cleared until the client writes the next input bit to InBit. Reading InBit clears the InBitValid bit so that the next InBit can be read from the client. The client cannot write bits to the authentication chip until the InBitValid bit is cleared;
Writing to OutBit hangs while OutBitValid is set. OutBitValid remains set until the client reads a bit from OutBit. Writing OutBit sets the OutBitValid bit so that the client can read the next OutBit. The client cannot read the bit from the authentication chip until the OutBitValid bit is set.

実際のコマンドの引き延ばしは、状態機械によって管理されるが、種々の通信レジスタ及び通信回路がI/Oユニットに存在する。 The actual command extension is managed by the state machine, but various communication registers and circuits exist in the I / O unit.

図188はI/Oユニットのコンポーネント間のデータフロー及び関係を示す図である。 FIG. 188 is a diagram showing the data flow and relationship between components of the I / O unit.

Figure 0004309954
シリアルI/Oユニットは、データピンを使って外界と外部的に通信する回路を含む。InBitUsed制御信号は、所定のクロックサイクル中にInBitを使用する何れかのユニットによってセットされるべきである(サイクルのあらゆる状態になり得る)。2個のVALユニットは、タンパー防止及び検出回路に接続された検証ユニットであり、各VALはOKビットを含む。OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー防止及び検出ラインからのChipOK値とOR演算される。OKビットはそのユニットを通過する各データビットとAND演算される。
Figure 0004309954
The serial I / O unit includes a circuit that communicates with the outside world using data pins. The InBitUsed control signal should be set by any unit that uses InBit during a given clock cycle (it can be any state in the cycle). The two VAL units are verification units connected to the tamper prevention and detection circuit, and each VAL includes an OK bit. The OK bit is set to 1 at reset and ORed with the ChipOK value from both tamper prevention and detection lines every cycle. The OK bit is ANDed with each data bit passing through the unit.

VALの場合、チップが改ざんされたならば、チップからの実効ビット出力は常に0である。このようにして、攻撃者は有用な出力を生成できない。VALの場合、チップ改ざんされたならば、チップへの実効ビット入力は常に0である。このようにして、攻撃者は有用な入力を選択できない。I/Oユニットのレジスタを検証する必要はない。なぜならば、攻撃者はそれらを破壊又は変更することによる利益がないからである。 For VAL 1 , the effective bit output from the chip is always 0 if the chip has been tampered with. In this way, an attacker cannot produce useful output. For VAL 2 , the effective bit input to the chip is always 0 if the chip has been tampered with. In this way, the attacker cannot select useful input. There is no need to verify the registers of the I / O unit. This is because attackers do not benefit from destroying or changing them.

ALU
図189は、算術論理ユニットの概略ブロック図である。算術論理ユニット(ALU)は、32ビットAcc(アキュムレータ)レジスタと、簡単な算術及び論理演算用の回路を含む。ALU及び全てのサブユニットは、ノンフラッシングCMOSで実現されるべきである。なぜならば、鍵がその中を通るからである。その上、アキュムレータはパリティチェックされる。ALUに収容されたロジック及びレジスタは、両方のタンパー検出ラインによってカバーされる。これは、鍵及び中間計算値が攻撃者によって変更されないことを保証する。1ビットのZレジスタは、アキュムレータの零性を格納する。Z及びアキュムレータレジスタの両方は、リセット後にクリアされる。Zレジスタはアキュムレータが更新されたときに更新され、アキュムレータは、LD、LDK、LOG、XOR、ROR、RPL及びADDの何れかのコマンドに対して更新される。各算術及び論理ブロックは、二つの32ビット入力、即ち、アキュムレータの現在値と、MUの現在32ビット出力と、に基づいて動作する。ここで、
ALU
FIG. 189 is a schematic block diagram of the arithmetic logic unit. The arithmetic logic unit (ALU) includes a 32-bit Acc (accumulator) register and circuitry for simple arithmetic and logic operations. The ALU and all subunits should be implemented in non-flashing CMOS. Because the key passes through it. In addition, the accumulator is parity checked. The logic and registers housed in the ALU are covered by both tamper detection lines. This ensures that the key and intermediate calculation values are not changed by the attacker. The 1-bit Z register stores the accumulator zero. Both Z and accumulator registers are cleared after reset. The Z register is updated when the accumulator is updated, and the accumulator is updated for any of the LD, LDK, LOG, XOR, ROR, RPL, and ADD commands. Each arithmetic and logic block operates based on two 32-bit inputs: the current value of the accumulator and the current 32-bit output of the MU. here,

Figure 0004309954
である。
Figure 0004309954
It is.

Acc及びZのWriteEnablesは、(Logic1により)CMD及びサイクルを考慮するので、これらの2ビットは、出力を選択するためにマルチプレクサMXにより要求されない。MXの出力選択は、CMDのビット6−3だけを要求するので、結果としてより簡単である。 WriteEnables of Acc and Z, because (Logic 1 by) considering the CMD 7 and cycle, these two bits are not required by multiplexer MX 1 to select the output. The output selection of MX 1 is simpler as a result as it requires only CMD bits 6-3.

Figure 0004309954
2個のVALユニットは、タンパー防止及び検出ラインに接続された検証ユニットであり、各VALはOKビットを含む。OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー防止及び検出ラインからのChipOK値とOR演算される。OKビットはそのユニットを通過する各データビットとAND演算される。VALの場合、チップが改ざんされたならば、アキュムレータから出力された実効ビットは常に0である。これは、攻撃者がアキュムレータに関する何かを処理することを妨げる。VALはアキュムレータに対するパリティチェックを実行し、チェックが失敗したならば、消去タンパー検出ラインをセットする。VALの場合、アキュムレータの実効Z状態は、チップ改ざんされたならば、常に真である。このようにして、攻撃者はループ構造を作成できない。ALUの残りの機能ブロックは後述する。すべてがフラッシュしないCMOSで実現されるべきである。
Figure 0004309954
The two VAL units are verification units connected to the tamper prevention and detection lines, and each VAL includes an OK bit. The OK bit is set to 1 at reset and ORed with the ChipOK value from both tamper prevention and detection lines every cycle. The OK bit is ANDed with each data bit passing through the unit. For VAL 1 , the effective bit output from the accumulator is always 0 if the chip has been tampered with. This prevents an attacker from processing anything related to the accumulator. VAL 1 performs a parity check on the accumulator and sets the erase tamper detection line if the check fails. For VAL 2 , the effective Z state of the accumulator is always true if the chip has been tampered with. In this way, an attacker cannot create a loop structure. The remaining functional blocks of the ALU will be described later. Everything should be realized in non-flash CMOS.

Figure 0004309954
RPL
図190はRPLユニットの概略ブロック図である。RPLユニットはALU内のコンポーネントである。これは、認証チップのRPL
CMP機能を実現するため設計されている。RPL CMPコマンドは、AccessModeの値に基づいて、フラッシュメモリMへの安全な書き込みに使用するため特に設計された。RPLユニットは、シフトパルス毎に2ビット右シフトを実行するAMT(AccessModeTemp)と呼ばれる32ビットシフトレジスタと、WR擬似コードのEqEncounteredフラグ及びDecEncounteredフラグに直接基づいているEE及びDEと呼ばれる1ビットレジスタと、を含む。全てのレジスタはリセット後に0にクリアされる。AMTは、PRL
INITコマンドを用いて(アキュムレータを介して)32ビットAM値がロードされ、EE及びDEは、RPL
MHIへの呼び出し及びRPL
MLOへの呼び出しを用いて汎用書き込みアルゴリズムに従ってセットされる。EQブロック及びLTブロックはWRコマンド擬似コードに記載されている通りの機能を備えている。EQブロックは、2個の16ビット入力がビット一致であるならば、1を出力し、ビット一致でなければ、0を出力する。LTブロックは、アキュムレータから入力された上位16ビットがMXによってMUから選択された16ビット値よりも小さい場合に、1を出力する。比較は符号無しである。オペランドのビットパターンは組み合わせロジックがより簡単化されるように特に選択される。オペランドのビットパターンを利用するので、そのパターンをもう一度列挙する。
Figure 0004309954
RPL
FIG. 190 is a schematic block diagram of the RPL unit. The RPL unit is a component in the ALU. This is the authentication chip RPL
It is designed to realize the CMP function. The RPL CMP command was specifically designed for use in secure writing to the flash memory M based on the value of AccessMode. The RPL unit includes a 32-bit shift register called AMT (AccessModeTemp) that performs a 2-bit right shift for each shift pulse, and a 1-bit register called EE and DE that are directly based on the EqEncountered flag and the DecEncountered flag of the WR pseudo code. ,including. All registers are cleared to 0 after reset. AMT is PRL
A 32-bit AM value is loaded (via the accumulator) using the INIT command, and EE and DE are RPL
Call to MHI and RPL
Set according to the general write algorithm using a call to MLO. The EQ block and the LT block have functions as described in the WR command pseudo code. The EQ block outputs 1 if the two 16-bit inputs match, and outputs 0 if it does not match. LT block, the upper 16 bits input from the accumulator is smaller than the 16-bit value selected from MU by MX 2, and outputs a 1. The comparison is unsigned. The bit pattern of the operands is specifically selected so that the combinational logic is simplified. Since the bit pattern of the operand is used, the pattern is enumerated again.

Figure 0004309954
MHI及びMLOは、ハイビットがセットされているので、Initのビットパターンと簡単に区別することができ、最下位ビットはMHIとMLOを区別するために使用できる。EEフラグ及びDEフラグは、RPLコマンドが発行されるたびに更新される。Initステージのため、2個の値を設定し、MHI及びMLOのため、EE及びDEの値を適切に更新する。したがって、EE及びDEのためのWriteEnableは以下の通りである。
Figure 0004309954
Since the high bit is set in MHI and MLO, it can be easily distinguished from the bit pattern of Init, and the least significant bit can be used to distinguish between MHI and MLO. The EE flag and the DE flag are updated each time an RPL command is issued. Two values are set for the Init stage, and the EE and DE values are updated appropriately for the MHI and MLO. Thus, WriteEnable for EE and DE is as follows:

Figure 0004309954
32ビットのAMTレジスタに関して、このレジスタには、RPL Initコマンドのときに、(MUから読み出された)AMの内容をロードし、RPL MLOコマンド及びRPL
MHIコマンドのためにAMTレジスタを右へ2ビット位置シフトさせる。これは、RPLオペランドの最上位ビット(CMD)に対して簡単にテストできる。したがって、AMTレジスタのためのWriteEnable及びShiftEnableは、以下の通りである。
Figure 0004309954
For the 32-bit AMT register, this register is loaded with the contents of the AM (read from the MU) during the RPL Init command, and the RPL MLO command and RPL
Shift the AMT register 2 bits to the right for the MHI command. This can be easily tested against the most significant bit (CMD 3 ) of the RPL operand. Thus, WriteEnable and ShiftEnable for the AMT register are as follows:

Figure 0004309954
Logicからの出力は、マルチプレクサMXへの入力としても有用である。なぜならば、それは、現在の2個のアクセスモードビット、又は00(これは、アクセスモードRWを表すので、DE及びEEレジスタをリセットさせる)の何れかを通すために使用されるからである。したがって、MXは次の通りである。
Figure 0004309954
Output from Logic 3 is also useful as an input to multiplexer MX 1. This is because it is used to pass either the current two access mode bits, or 00 (which represents the access mode RW, which causes the DE and EE registers to be reset). Therefore, MX 1 is as follows.

Figure 0004309954
RPLロジックは、アキュムレータの上位16ビットだけを置換する。下位16ビットはそのまま通過する。しかし、(M[0−15]のうちの一つに対応する)MUからの32ビットのうちの、上位又は下位16ビットだけが使用される。したがって、MXはMHIとMLOを区別するためにCMDをテストする。
Figure 0004309954
The RPL logic only replaces the upper 16 bits of the accumulator. The lower 16 bits pass through as they are. However, only the upper or lower 16 bits of the 32 bits from the MU (corresponding to one of M [0-15]) are used. Therefore, MX 2 tests CMD 0 to distinguish between MHI and MLO.

Figure 0004309954
DEレジスタ及びEEレジスタを更新するロジックは、WRコマンドの擬似コードと一致する。AccessMode値が00(=RW、これはRPL
INIT中に出現する)である入力は、DEとEEの両方に0(正しい初期値)をロードさせることに注意する必要がある。EEはLogicからの結果がロードされ、DEはLogicからの結果がロードされる。
Figure 0004309954
The logic for updating the DE and EE registers matches the WR command pseudo code. The AccessMode value is 00 (= RW, which is RPL
Note that an input that appears in INIT) causes both DE and EE to load 0 (the correct initial value). The EE is loaded with the result from Logic 4 , and the DE is loaded with the result from Logic 5 .

Figure 0004309954
アキュムレータの上位16ビットはMへ書き込まれるべき値によって置き換えられる。したがって、LogicはWRコマンド擬似コードからのWEフラグと一致する。
Figure 0004309954
The upper 16 bits of the accumulator are replaced by the value to be written to M. Therefore, Logic 6 matches the WE flag from the WR command pseudo code.

Figure 0004309954
Logicからの出力は、マルチプレクサMXによる、アキュムレータからの元の16ビットと、M[0−15]からの値との間の選択を駆動するためそのまま使用される。アキュムレータからの16ビットが選択された場合(アキュムレータは変更されないで残される場合)、これは、アキュムレータ値がM[n]に書き込まれることを意味する。Mからの16ビット値が選択された場合(アキュムレータの上位16ビットを変更する場合)、これは、Mの16ビット値が変更されないことを意味する。したがって、MXは以下の形式をとる。
Figure 0004309954
The output from the Logic 6 is due to the multiplexer MX 3, the original 16 bits from the accumulator, as it is used to drive the selection between the values from M [0-15]. If 16 bits from the accumulator are selected (if the accumulator is left unchanged), this means that the accumulator value is written to M [n]. If the 16-bit value from M is selected (when changing the upper 16 bits of the accumulator), this means that the 16-bit value of M is not changed. Thus, MX 3 takes the following form:

Figure 0004309954
AMTをパリティチェックする意味はない。なぜならば、攻撃者はMXへの入力を強制的に0にする方がよいからである(これにより、攻撃者は任意の値をMに書き込めるようになる)。しかし、攻撃者がチップ(全てタンパー検出テスト及び回路を含む)をレーザー切断する手間を選ぶならば、MXの入力を固定することにより制限選択テキスト攻撃を可能にさせるよりも優れたターゲットがある。
Figure 0004309954
There is no point in parity checking the AMT. This is because it is better for the attacker to force the input to MX 3 to be 0 (this allows the attacker to write an arbitrary value to M). However, if an attacker chooses to laser-cut the chip (all including tamper detection tests and circuitry), there is a better target than allowing limited choice text attacks by fixing the MX 3 input. .

ROR
図191は、ALUのRORブロックの概略ブロック図である。RORユニットは、ALU内のコンポーネントである。RORユニットは、認証チップのROR機能を実現するため設計される。RTMPという名前の1ビットレジスタは、RORユニットに格納される。RTMPはリセットで0にクリアされ、ROR
RBコマンド及びROR XRBコマンド中にセットされる。RTMPレジスタは、任意のタップ構造をもつ線形フィードバックシフトレジスタの実装を可能にさせる。XORブロックは、2個の1ビット入力、1ビット出力のXORである。RORnは、ブロックが便宜上示されているが、実際には、マルチプレクサMXに配線接続される。なぜならば、各ブロックは、単に、右へNビットシフトされた、32ビットの書き換えである。3個全てのマルチプレクサ(MX、MX及びMX)は8ビットのCMD値に依存する。しかし、RORオペコードのビットパターンはロジック最適化の目的のために並べられる。オペランドのビットパターンを利用するので、このパターンを再度列挙する。
ROR
FIG. 191 is a schematic block diagram of the ROR block of the ALU. The ROR unit is a component in the ALU. The ROR unit is designed to realize the ROR function of the authentication chip. A 1-bit register named RTMP is stored in the ROR unit. RTMP is cleared to 0 by reset and ROR
Set in RB command and ROR XRB command. The RTMP register allows the implementation of a linear feedback shift register with an arbitrary tap structure. The XOR block is an XOR of two 1-bit inputs and 1-bit outputs. RORn is blocks are shown for convenience, in practice, are wired to multiplexer MX 3. Because each block is simply a 32-bit rewrite, shifted N bits to the right. All three multiplexers (MX 1 , MX 2 and MX 3 ) depend on an 8-bit CMD value. However, the bit pattern of the ROR opcode is aligned for logic optimization purposes. Since the bit pattern of the operand is used, this pattern is enumerated again.

Figure 0004309954
Logicは、RTMPにWriteEnable信号を与えるために使用される。RTMPレジスタは、ROR
RB及びROR XORコマンドの間だけ書き込まれるべきである。Logicは、InBitが使われたときならいつでも、制御信号を与えるために使用される。2個の組み合わせロジックブロックは次の通りである。
Figure 0004309954
Logic 1 is used to provide a Write Enable signal to RTMP. RTMP register is ROR
Should only be written during RB and ROR XOR commands. Logic 2 is used to provide a control signal whenever InBit is used. The two combinational logic blocks are as follows.

Figure 0004309954
マルチプレクサMXを用いて、RTMPに格納されるビットを選択する。Logicは、予めRBとXRBの一方へのCMD入力の範囲を限定する。したがって、これらの二つを区別するため、CMDをテストするだけでよい。以下の表は、CMDとMXから出力される値との間の関係を表現する。
Figure 0004309954
The multiplexer MX 1 is used to select the bits stored in the RTMP. Logic 1 limits the range of CMD input to one of RB and XRB in advance. Therefore, it is only necessary to test CMD 0 to distinguish these two. The following table represents the relationship between CMD 0 and the value output from MX 1 .

Figure 0004309954
マルチプレクサMXを用いて、アキュムレータ入力のビット0を置換する予定の入力ビットを選択する。ここでは、少しの量の最適化を行う。なぜならば、個別の入力ビットは、典型的に、特定のオペランドに関係するからである。以下御表は、CMD3−0とMXから出力される値との間の関係を表現する。
Figure 0004309954
Using multiplexer MX 2, selects the input bit plan to replace the bit 0 of the accumulator input. Here, a small amount of optimization is performed. This is because individual input bits are typically related to a particular operand. The table below represents the relationship between CMD 3-0 and the value output from MX 2 .

Figure 0004309954
最後のマルチプレクサMXは32ビット値の最終的な回転を行う。再度、CMDオペランドのビットパターンが利用される。
Figure 0004309954
Last multiplexer MX 3 performs the final rotation of 32-bit values. Again, the bit pattern of the CMD operand is used.

Figure 0004309954
MinTicksユニット
図192は、MinTicksユニットのコンポーネント間のデータフロー及び関係を示す図である。MinTicksユニットは、認証チップ内の鍵付きオペレーションの間のプログラマブル最小遅延(カウントダウンを利用)の役目を担う。MinTicksユニットに収容されるロジック及びレジスタは、両方のタンパー検出ラインによってカバーする必要がある。これは、攻撃者が鍵付きの関数への呼び出しの間の時間を変更できないことを保証する。殆ど全てのMinTicksユニットは通常のCMOSで実現可能である。なぜならば、鍵は、殆どのこのユニットを通らないからである。しかし、アキュムレータは、SET
MTR命令で使用される。その結果として、この回路のこの小さい区域は、ノンフラッシングCMOSで実現しなければならない。MinTicksユニットの残りの部分はノンフラッシングCMOSで実現しなくてもよい。しかし、MTRZラッチ(以下を参照)はパリティチェックしなければならない。
Figure 0004309954
MinTicks Unit FIG. 192 is a diagram showing the data flow and relationship between the components of the MinTicks unit. The MinTicks unit is responsible for the programmable minimum delay (using countdown) between keyed operations in the authentication chip. The logic and registers housed in the MinTicks unit need to be covered by both tamper detection lines. This ensures that the attacker cannot change the time between calls to the keyed function. Almost all MinTicks units can be realized with ordinary CMOS. Because the key does not go through most of this unit. However, the accumulator is
Used in MTR instruction. Consequently, this small area of the circuit must be realized with non-flashing CMOS. The remaining part of the MinTicks unit may not be realized by non-flashing CMOS. However, the MTRZ latch (see below) must perform a parity check.

MinTicksユニットは、MTR(MinTicks残量(MinTicksRemaining))という名前の32ビットレジスタを含む。MTRレジスタは、次の鍵付き関数を読み出せるまでの残りクロックチック数を格納する。各サイクルに、MTRの値は、その値が0になるまで1ずつ減少させられる。MTRが0に達すると、それ以上減少しない。MTRZ(MinTicks残量レジスタ零MinTicksRegisterZero)という名前の補助的な1ビットレジスタは、MTRレジスタの現在の零性を反映する。MTRZレジスタが0である場合、MTRZは1であり、MTRZレジスタが0ではない場合、MTRZは0である。MTRレジスタはリセットによってクリアされ、SET
MTRコマンドを用いて新しいカウントにセットされ、アキュムレータの現在値をMTRレジスタへ転送する。
The MinTicks unit includes a 32-bit register named MTR (MinTicks Remaining). The MTR register stores the number of clock ticks remaining until the next keyed function can be read. In each cycle, the value of MTR is decreased by 1 until the value becomes 0. When MTR reaches 0, it does not decrease further. An auxiliary 1-bit register named MTRZ (MinTicks Remaining Register Zero MinTicksRegisterZero) reflects the current zeroness of the MTR register. If the MTRZ register is 0, the MTRZ is 1; if the MTRZ register is not 0, the MTRZ is 0. The MTR register is cleared by reset and SET
A new count is set using the MTR command, and the current value of the accumulator is transferred to the MTR register.

ここで、 here,

Figure 0004309954
であり、且つ
Figure 0004309954
And

Figure 0004309954
である。
Figure 0004309954
It is.

サイクルはMTR及びMTRZのWriteEnableに接続されるので、これらのレジスタは実行サイクル中に、即ち、サイクル=1であるときに限り更新される。2個のVALユニットは、タンパー防止及び検出ラインに接続された検証ユニットであり、各VALはOKビットを含む。OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー検出ラインからのChipOK値とOR演算される。OKビットはそのユニットを通過する各データビットとAND演算される。VALの場合、MTRからの実効出力は0であり、これは、デクリメンターユニットからの出力が全て1であることを示し、これにより、MTRZは0のままであり、攻撃者が鍵付き関数を使用することは阻止される。また、VALは、MTRレジスタのパリティを検証する。パリティチェックが失敗した場合、消去タンパー検出ラインがトリガーされる。VALの場合、チップ改ざんされたならば、MTRZからの実効出力は0であり、MinTicksRemainingレジスタは未だ0に到達していないことを示し、これにより、攻撃者が鍵付き関数を使用することは阻止される。 Since the cycle is connected to the MTR and MTRZ WriteEnable, these registers are updated during the execution cycle, ie, only when cycle = 1. The two VAL units are verification units connected to the tamper prevention and detection lines, and each VAL includes an OK bit. The OK bit is set to 1 at reset and is ORed with the ChipOK values from both tamper detection lines every cycle. The OK bit is ANDed with each data bit passing through the unit. In the case of VAL 1 , the effective output from the MTR is 0, indicating that the output from the decrementer unit is all 1, so that the MTRZ remains 0 and the attacker is locked Use of the function is prevented. VAL 1 verifies the parity of the MTR register. If the parity check fails, the erase tamper detection line is triggered. In the case of VAL 2 , if the chip has been tampered with, the effective output from MTRZ is 0, indicating that the MinTicksRemaining register has not yet reached 0, so that the attacker can use the keyed function. Be blocked.

プログラムカウントユニット
図192は、プログラムカウントユニットのブロック図である。プログラムカウントユニット(PCU)は、9ビットのPC(プログラムカウンタ)と、分岐及びサブルーチン制御用のロジックと、を含む。プログラムカウントユニットは、通常のCMOSで実現できる。なぜならば、鍵はこのユニットを通らないからである。このユニットはノンフラッシングCMOSで実現しなくてもよい。しかし、ラッチはパリティチェックされる。その上、メモリユニットに収容されたロジック及びレジスタは、PCが攻撃者によって変更できないことを保証するため、両方のタンパー検出ラインで覆う必要がある。PCは実際には6レベル×9ビットのPCA(PCアレイ)として実装され、3ビットのSP(スタックポインタ)レジスタによってインデックス付けされる。PC及びSPレジスタはリセットで全てクリアされ、オペコードに従ってプログラム制御のフロー中に更新される。PCの現在値は、サイクル0(フェッチサイクル)の間にMUへ出力される。PCは、実行されるコマンドに基づいてサイクル1(実行サイクル)の間に更新される。殆どのケースで、PCは単に1ずつ増加する。しかし、(サブルーチン、又はその他のジャンプの形式により)分岐が現れたとき、PCはあ多らしい値で置き換えられる。新しいPC値を計算するメカニズムは、処理されるオペコードに依存する。
Program Count Unit FIG. 192 is a block diagram of the program count unit. The program count unit (PCU) includes a 9-bit PC (program counter) and logic for branch and subroutine control. The program count unit can be realized by a normal CMOS. Because the key does not pass through this unit. This unit may not be realized by non-flashing CMOS. However, the latch is parity checked. Moreover, the logic and registers housed in the memory unit need to be covered by both tamper detection lines to ensure that the PC cannot be changed by the attacker. The PC is actually implemented as a 6 level × 9 bit PCA (PC array) and indexed by a 3 bit SP (stack pointer) register. The PC and SP registers are all cleared by reset and updated during the program control flow according to the opcode. The current value of PC is output to the MU during cycle 0 (fetch cycle). The PC is updated during cycle 1 (execution cycle) based on the command to be executed. In most cases, the PC simply increases by one. However, when a branch appears (by a subroutine or other form of jump), the PC is replaced with a probable value. The mechanism for calculating the new PC value depends on the opcode being processed.

ADDブロックはモジュロー2の単純なアダーである。入力は、PC値と、1(PCを1ずつ増加するため)、又は9ビットオフセット(ハイビットがセットされ、下位8ビットはMUから)の何れか一方である。“+1”ブロックは、3ビット入力を使用し、1ずつ増加する(ラップ付き)。“−1”ブロックは、3ビット入力を使用し、1ずつ減少する(ラップ付き)。種々のPC制御の形式は以下の通りである。 ADD block is a simple adder of modulo 2 9. Input is either PC value and 1 (to increase PC by 1) or 9 bit offset (high bit is set and lower 8 bits are from MU). The “+1” block uses a 3-bit input and increments by 1 (with wrap). The “−1” block uses a 3-bit input and is decremented by 1 (wrapped). Various types of PC control are as follows.

Figure 0004309954
JSRとJSI(ACC)に対して同じ動作がとられるので、Logicでそのケースを具体的に検出する。同じ考え方によって、LogicでJSI
RTSを具体的にテストする。
Figure 0004309954
Since the same operation is performed for JSR and JSI (ACC), the case is specifically detected by Logic 1 . With the same concept, JSI in Logic 2
RTS is specifically tested.

Figure 0004309954
PCを更新するとき、PCが完全に新しい項目によって置き換えられるべきか、又はアダーの結果によって置き換えられるべきかを決定しなければならない。これは、JSR及びJSI(ACC)の場合に成り立つが、テストビットがアキュムレータの状態と一致する限り、TBRにも成り立つ。TBR以外の全ては、Logicによってテストされるので、LogicはLogicの出力を入力として含む。Logicからの出力は、次に、新しいPC値を得るため、マルチプレクサMXによって使用される。
Figure 0004309954
When updating a PC, it must be determined whether the PC should be replaced by a completely new item or by the result of an adder. This is true for JSR and JSI (ACC), but for TBR as long as the test bit matches the accumulator state. Everything except TBR is tested by Logic 1 , so Logic 3 includes the output of Logic 1 as an input. The output from Logic 3 is then used by multiplexer MX 2 to obtain a new PC value.

Figure 0004309954
Figure 0004309954

Figure 0004309954
9ビットアダーへの入力は、1ずつ増加するか(普通のケース)、又はMUから読み出されたオフセットを加算するか(DBRコマンド)に依存する。Logicはtestを生成する。Logicからの出力は、これに応じてマルチプレクサMXによってそのまま使用される。
Figure 0004309954
The input to the 9-bit adder depends on whether it increments by 1 (normal case) or adds the offset read from the MU (DBR command). Logic 4 generates a test. The output from Logic 4 is directly used by multiplexer MX 3 accordingly.

Figure 0004309954
Figure 0004309954

Figure 0004309954
最後に、どのPCエントリーを使用するかについての選択は、SPの現在値に依存する。サブルーチンに入るとき、SPインデックス値はインクリメントされ、サブルーチンから戻るとき、SPインデックス値はデクリメントされる。全てのケースで、且つコマンドをフェッチしたいとき(サイクル0)、SPの現在値を使用する。Logicは、サブルーチンに入るときを通知し、Logicはサブルーチンから戻るときを通知する。マルチプレクサ選択は、したがって、以下のように定義される。
Figure 0004309954
Finally, the choice of which PC entry to use depends on the current value of the SP. When entering a subroutine, the SP index value is incremented, and when returning from the subroutine, the SP index value is decremented. In all cases and when you want to fetch a command (cycle 0), use the current value of SP. Logic 1 notifies when entering the subroutine, and Logic 2 notifies when returning from the subroutine. The multiplexer selection is therefore defined as follows:

Figure 0004309954
2個のVALユニットは、タンパー防止及び検出ラインに接続された検証ユニットであり、各VALはOKビットを含む。OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー検出ラインからのChipOK値とOR演算される。OKビットはそのユニットを通過する各データビットとAND演算される。両方のVALユニットは、データビットをパリティチェックし、それらが有効であることを保証する。パリティチェックが失敗した場合、消去タンパー検出ラインがトリガーされる。VALの場合、SPレジスタからの実効出力は、チップが改ざんされたならば、常に0である。これにより、攻撃者がサブルーチンを実行することは阻止される。VALの場合、実効PC出力は、チップが改ざんされたならば、常に0である。これにより、攻撃者がプログラムコードを実行することは阻止される。
Figure 0004309954
The two VAL units are verification units connected to the tamper prevention and detection lines, and each VAL includes an OK bit. The OK bit is set to 1 at reset and is ORed with the ChipOK values from both tamper detection lines every cycle. The OK bit is ANDed with each data bit passing through the unit. Both VAL units parity check the data bits to ensure that they are valid. If the parity check fails, the erase tamper detection line is triggered. For VAL 1 , the effective output from the SP register is always 0 if the chip has been tampered with. This prevents the attacker from executing the subroutine. For VAL 2 , the effective PC output is always 0 if the chip has been tampered with. This prevents an attacker from executing the program code.

メモリユニット
メモリユニット(MU)は、認証チップの内部メモリを含む。内部メモリは、9ビットのアドレスによってアドレス指定され、9ビットのアドレスはアドレス生成器ユニットから渡される。メモリユニットは、アドレスに応じて、適切な32ビット及び8ビット値を出力する。また、メモリユニットは、特殊なプログラミングモードを担い、これにより、プログラムがフラッシュメモリに入力される。メモリユニット全体の内容は、タンパーリングから保護されるべきである。したがって、メモリユニットに収容されたロジック及びレジスタは、両方のタンパー検出ラインによって覆われるべきである。これは、プログラムコード、鍵、及び中間データ値が攻撃者によって変更できないことを保証する。全てのフラッシュメモリは、マルチステートであり、無効電圧で読み出されたときにチェックしなければならない。32ビットRAMもパリティチェックされるべきである。メモリユニットを通る32ビットデータパスは、ノンフラッシングCMOSで実現できる。なぜならば、鍵はそのデータパスに沿って送られるからである。8ビットデータパスは、通常のCMOSで実現できる。なぜならば、鍵はそのデータパスに沿って送られないからである。
Memory unit The memory unit (MU) contains the internal memory of the authentication chip. The internal memory is addressed by a 9-bit address, which is passed from the address generator unit. The memory unit outputs appropriate 32-bit and 8-bit values depending on the address. The memory unit also has a special programming mode, whereby a program is input to the flash memory. The contents of the entire memory unit should be protected from tampering. Therefore, the logic and registers housed in the memory unit should be covered by both tamper detection lines. This ensures that the program code, key, and intermediate data values cannot be changed by an attacker. All flash memories are multi-state and must be checked when read with an invalid voltage. The 32-bit RAM should also be parity checked. A 32-bit data path through the memory unit can be realized with non-flashing CMOS. This is because the key is sent along the data path. The 8-bit data path can be realized by a normal CMOS. This is because keys are not sent along the data path.

定数
定数メモリ領域のアドレスレンジは、000000000−000001111である。したがって、レンジは00000xxxxである。しかし、次の48アドレスが予備であるならば、これは復号化中に利用できる。定数メモリ領域は、アドレスの上位3ビット(Adr8−6=000)によって選択され、下位4ビットは組み合わせロジックへ供給され、その4ビットは、以下の通り、32ビット出力値にマッピングされる。
The address range of the constant constant memory area is 000000000000-00000111. Therefore, the range is 00000xxxx. However, if the next 48 addresses are reserved, this can be used during decoding. The constant memory area is selected by the upper 3 bits (Adr 8-6 = 000) of the address, the lower 4 bits are supplied to the combinational logic, and the 4 bits are mapped to a 32-bit output value as follows.

Figure 0004309954
RAM
32エントリーの32ビットRAMのアドレス空間は、001000000−001011111である。したがって、レンジは0010xxxxxである。RAMメモリ領域は、したがって、アドレスの上位4ビット(Adr8−5=0010)によって選択され、下位5ビットはアドレス指定する値を選択する。連続的な32エントリーのアドレス空間が与えられた場合、RAMは、単純な32×32ビットRAMとして簡単に実現できる。CPUは、特殊な方法でレンジ00000−11111からの各アドレスを取り扱うが、RAMアドレスデコーダ自体は、アドレスを特別に取り扱うわけではない。全てのRAM値はリセットで0にクリアされるが、プログラムコードはこのことを当てにしてはならない。
Figure 0004309954
RAM
The address space of a 32-entry 32-bit RAM is 001000000-001011111. Therefore, the range is 0010xxxx. The RAM memory area is therefore selected by the upper 4 bits of the address (Adr 8-5 = 0010), and the lower 5 bits select the value to be addressed. Given a continuous 32-entry address space, the RAM can be easily implemented as a simple 32 × 32 bit RAM. The CPU handles each address from the range 00000-11111 in a special way, but the RAM address decoder itself does not handle the address specially. All RAM values are cleared to 0 on reset, but the program code must not rely on this.

フラッシュメモリ−変数
32ビット幅フラッシュメモリのアドレス空間は、001100000−001111111である。したがって、レンジは0011xxxxxである。フラッシュメモリ領域は、したがって、アドレスの上位4ビット(Adr8−5=0111)によって選択され、下位5ビットはアドレス指定する値を選択する。フラッシュメモリは特別な消去が必要である。フラッシュメモリの消去を完了するためにはかなり長い時間を要する。したがって、Wait信号は、CLRコマンドの受信時にフラッシュコントローラの内部にセットされ、要求されたメモリが消去されたときに限りクリアされる。内部的に、特定のメモリレンジの消去ラインは一つに結合され、その結果として、以下の表に示されるように、2ビットだけが要求される。
The address space of the flash memory-variable 32-bit width flash memory is 001100000-001111111. Therefore, the range is 0011xxxx. The flash memory area is therefore selected by the upper 4 bits of the address (Adr 8-5 = 0111), and the lower 5 bits select the value to be addressed. Flash memory requires special erasure. It takes a considerably long time to complete the erase of the flash memory. Therefore, the Wait signal is set inside the flash controller when the CLR command is received, and is cleared only when the requested memory is erased. Internally, the erase lines for a particular memory range are combined together, so that only 2 bits are required, as shown in the table below.

Figure 0004309954
フラッシュ値はリセットによって変更されないが、プログラムコードは、ガーベッジ以外では、(製造後に)フラッシュの初期値をとるべきではない。フラッシュアドレスを利用するオペレーションは、LD、ST、ADD、RPL、ROR、CLR及びSETである。全てのケースで、オペランド及びメモリ配置は、アドレス生成及び復号化を最小限に抑えるため、密接に連結される。フラッシュメモリの全変数区域は、プログラミングモードへ入ったとき、及び明確な物理的攻撃を検出したときに消去される。
Figure 0004309954
The flash value is not changed by reset, but the program code should not take the initial value of the flash (after manufacturing) except for garbage. Operations that use the flash address are LD, ST, ADD, RPL, ROR, CLR, and SET. In all cases, the operands and memory placement are tightly coupled to minimize address generation and decoding. All variable areas of flash memory are erased when entering programming mode and when a clear physical attack is detected.

フラッシュメモリ−プログラム
384エントリーの8ビット幅プログラムフラッシュメモリのアドレスレンジは、010000000−111111111である。したがって、レンジは01xxxxxxx−11xxxxxxxである。ROMスタートアドレスとアドレスレンジが与えられるならば、復号化は簡単である。CPUはアドレスレンジの一部を特殊は方法で取り扱うが、アドレスデコーダ自体はアドレスを特別に取り扱うわけではない。フラッシュ値はリセットによって変わらず、プログラムモードへ入ることによってのみクリアされる。製造後、フラッシュ内容はガーベッジであると見なされるべきである。384バイトは、プログラミングモードにあるときに限り、状態機械によってロードされる。
The address range of the flash memory-program 384 entry 8-bit wide program flash memory is 010000000-111111111. Therefore, the range is 01xxxxxxxx-11xxxxxxxx. Decoding is simple if the ROM start address and address range are given. Although the CPU handles a part of the address range specially, the address decoder itself does not handle the address specially. The flash value is not changed by reset and is cleared only by entering the program mode. After manufacture, the flush content should be considered garbage. 384 bytes are loaded by the state machine only when in programming mode.

MUのブロック図
図193は、メモリユニットのブロック図である。図示されたロジックは、32ビットデータ及び8ビットデータが別々のコマンドによって要求され、その結果として、復号化のために必要なビットが少なくなるということを利用する。図示されるように、32ビット出力及び8ビット出力は常に生成される。認証チップの残りの適切なコンポーネントは、単に、実行されるコマンドに依存して、32ビット値又は8ビット値を使用する。マルチプレクサMXは、真理表定数、RAM、及びフラッシュメモリの選択から出力された32ビットを選択する。3出力の間で選択するためには、2ビットだけが、即ち、Adr及びAdrが要求される。このようにして、MXの形式は以下の通りである。
Block Diagram of MU FIG. 193 is a block diagram of a memory unit. The illustrated logic takes advantage of the fact that 32-bit data and 8-bit data are required by separate commands, resulting in fewer bits required for decoding. As shown, 32-bit output and 8-bit output are always generated. The remaining appropriate components of the authentication chip simply use a 32-bit value or an 8-bit value, depending on the command being executed. Multiplexer MX 1 selects truth table constant, RAM, and a 32 bits output from the selection of the flash memory. To select between 3 outputs, only 2 bits are required, namely Adr 6 and Adr 5 . Thus, the format of MX 2 is as follows.

Figure 0004309954
32ビットフラッシュメモリの特定の部分を消去するロジックはLogicによって満たされる。消去部分制御信号は、サイクル=1の間に、メモリの正しい部分へのCLRコマンド中に限りセットされるべきである。単一のCLRコマンドがあるレンジのフラッシュメモリをクリアすることに注意する必要がある。AdrはCLRのためのアドレスレンジとして十分である。なぜならば、レンジは、有効オペランドに対して常にフラッシュの範囲内に治まり、有効ではないオペランドに対して0である。32ビット幅フラッシュメモリのレンジ全体は、(攻撃者によって、又は意図的にプログラミングモードに入ることによって)消去検出ラインがトリガーされたときに消去される。
Figure 0004309954
The logic for erasing a specific part of the 32-bit flash memory is satisfied by Logic 1 . The erase portion control signal should be set only during a CLR command to the correct portion of memory during cycle = 1. Note that a range of flash memory is cleared by a single CLR command. Adr 6 is sufficient as an address range for CLR. This is because the range always stays within the flash range for valid operands and is zero for non-valid operands. The entire range of 32-bit wide flash memory is erased when the erase detection line is triggered (by an attacker or intentionally entering a programming mode).

Figure 0004309954
フラッシュメモリの特定の部分に書き込むためのロジックは、Logicによって満たされる。WriteEnable制御信号は、サイクル=1の間に、フラッシュメモリレンジへの適切なSTコマンド中に限りセットされるべきである。Adr6−5だけのテストが許容される。なぜならば、STコマンドだけがフラッシュまたはRAMへ有効に書き込むからである(Adr6−5が00であるならば、K2MXは0でなければならない。)。
Figure 0004309954
The logic for writing to specific parts of the flash memory is satisfied by Logic 2 . The WriteEnable control signal should be set only during the appropriate ST command to the flash memory range during cycle = 1. Only tests Adr 6-5 are allowed. This is because only the ST command effectively writes to flash or RAM (if Adr 6-5 is 00, K2MX must be 0).

Figure 0004309954
WE(WriteEnable)フラグは、SET WEコマンドとCLR
WEコマンドの実行中にセットされる。Logicはこれらの二つのケースをテストする。WEに書き込まれる実際のビットはCMDである。
Figure 0004309954
The WE (Write Enable) flag indicates the SET WE command and the CLR.
Set during execution of a WE command. Logic 3 tests these two cases. The actual bits written in WE is CMD 4.

Figure 0004309954
メモリのRAM領域へ書き込むためのロジックは、Logicによって満たされる。WriteEnable制御信号は、サイクル=1の間に、RAMメモリレンジへの適切なSTコマンド中に限りセットされる。しかし、これは、X[N]への書き込みが許可されるかどうかを管理するWEフラグによって改ざんされる。X[N]レンジはRAMの上位半分であり、これは、Adrを使用してテストできる。RAMのフルアドレスレンジとしてAdr6−5だけをテストすることが容認できる。なぜならば、STコマンドはフラッシュ又はRAMだけに書き込むからである。
Figure 0004309954
The logic for writing to the RAM area of the memory is satisfied by Logic 4 . The WriteEnable control signal is set only during the appropriate ST command to the RAM memory range during cycle = 1. However, this is tampered with by the WE flag that manages whether writing to X [N] is allowed. The X [N] range is the upper half of the RAM, which can be tested using Adr 4 . It is acceptable to test only Adr 6-5 as the full address range of the RAM. This is because the ST command writes only to flash or RAM.

Figure 0004309954
3個のVALユニットは、タンパー防止及び検出ラインに接続された検証ユニットであり、各VALはOKビットを含む。OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー防止及び検出ラインからのChipOK値とOR演算される。OKビットはそのユニットを通過する各データビットとAND演算される。VALユニットは、データビットをパリティチェックし、それらが有効であることを保証する。VAL及びVALは、各データビットの状態をチェックすることにより検証し、VALはパリティチェックを実行する。妥当性テストが失敗したとき、消去タンパー検出ラインがトリガーされる。VALの場合、プログラムフラッシュからの実効出力は、チップが改ざんされているならば、常に0である(TBR
0として解釈される)。これは攻撃者が有用な命令を実行することを阻止する。VALの場合、実効32ビットは、チップが改ざんされたならば、常に0である。これにより、攻撃者は、鍵、又は中間記憶値を入手できない。8ビットフラッシュメモリは、プログラムコード、ジャンプテーブル、及びその他のプログラム情報を保持するため使用される。384バイトのプログラムフラッシュメモリは、(アドレスレンジ01xxxxxxx−11xxxxxxxを使用して)完全な9ビットのアドレスにより選択される。プログラムフラッシュメモリは、(攻撃者によって、又はプログラミングモード検出ユニットが原因でプログラミングモードに入ることによって)消去検出ラインがトリガーされたときに限り消去される。消去検出ラインがトリガーされたとき、プログラムフラッシュメモリユニット内の小型状態機械は、8ビットフラッシュメモリを消去し、消去を検証し、シリアル入力から新しい内容(384バイト)にロードする。以下の擬似コードは、消去検出ラインがトリガーされたときに実効される状態機械ロジックを説明する:
Figure 0004309954
プログラミングモード状態機械実行中に、0が8ビット出力にセットされる。0コマンドは、認証チップの残りの部分に、コマンドをTBR
0として解釈させる。チップが全部で384バイトをプログラムフラッシュメモリへ読み込んだとき、チップはハングする(無限ループに入る)。次に、認証チップはリセットされ、プログラムは正常に使用される。消去は、8ビットプログラムフラッシュメモリの新しい内容をロードするために使用される8ビットレジスタによって検証されることに注意すべきである。これは、攻撃が成功する見込みを低下させるために役立つ。なぜならば、プログラムコードは、消去を認証するため使用されるレジスタが攻撃者によって破壊された場合に、適切にロードされ得ないからである。更に、状態機械全体は、両方のタンパー検出ラインによって保護される。
Figure 0004309954
The three VAL units are verification units connected to the tamper prevention and detection lines, and each VAL includes an OK bit. The OK bit is set to 1 at reset and ORed with the ChipOK value from both tamper prevention and detection lines every cycle. The OK bit is ANDed with each data bit passing through the unit. The VAL unit performs a parity check on the data bits to ensure that they are valid. VAL 1 and VAL 2 verify by checking the state of each data bit, and VAL 3 performs a parity check. When the validity test fails, the erase tamper detection line is triggered. For VAL 1 , the effective output from the program flash is always 0 if the chip has been tampered with (TBR
Interpreted as 0). This prevents attackers from executing useful instructions. For VAL 2 , the effective 32 bits are always 0 if the chip has been tampered with. As a result, the attacker cannot obtain the key or the intermediate storage value. The 8-bit flash memory is used to hold program codes, jump tables, and other program information. The 384 byte program flash memory is selected by a complete 9-bit address (using the address range 01xxxxxxxx-11xxxxxxxx). The program flash memory is erased only when the erase detection line is triggered (by the attacker or by entering the programming mode due to the programming mode detection unit). When the erase detect line is triggered, the small state machine in the program flash memory unit erases the 8-bit flash memory, verifies the erase, and loads the new contents (384 bytes) from the serial input. The following pseudo code illustrates the state machine logic that is executed when the erase detect line is triggered:
Figure 0004309954
During programming mode state machine execution, 0 is set to the 8-bit output. The 0 command sends the command to the rest of the authentication chip
Interpret as 0. When the chip reads a total of 384 bytes into the program flash memory, the chip hangs (enters an infinite loop). Next, the authentication chip is reset and the program is used normally. Note that erasure is verified by the 8-bit register used to load the new contents of the 8-bit program flash memory. This helps to reduce the chances of a successful attack. This is because the program code cannot be loaded properly if the register used to authenticate the erasure is destroyed by an attacker. Furthermore, the entire state machine is protected by both tamper detection lines.

アドレス生成器ユニット
アドレス生成器ユニットは、メモリユニット(MU)へアクセスするための実効アドレスを生成する。サイクル0において、PCは次のオペコードをフェッチするためMUへ渡される。アドレス生成器は、サイクル1の実効アドレスを生成するため、戻されたオペコードを解釈する。サイクル1において、生成されるアドレスはMUへ渡される。アドレス生成器ユニットに格納されたロジック及びレジスタは、両方のタンパー検出ラインによってカバーされる。これは、攻撃者が生成されたアドレスを変更し得ないことを保証する。殆ど全部のアドレス生成器ユニットは通常のCMOSで実現できる。なぜならば、鍵が殆どのこのユニットを通らないからである。しかし、アキュムレータの5ビットはJSIアドレス生成で使用される。この結果として、回路のこの小さい区域は、ノンフラッシングCMOSで実現される。アドレス生成器ユニットの残りの部分は、ノンフラッシングCMOSで実現しなくてもよい。しかし、カウンタ及び計算されたアドレスのラッチはパリティチェックされるべきである。タンパー検出ラインの何れかが破断しているならば、アドレス生成器ユニットは、各サイクルでアドレス0を生成し、全てのカウンタは0に確定される。これは、攻撃者がリセットを禁止状態にするか、及び/又は、消去回路を禁止状態にした場合に始めて効果がある。なぜならば、正常な状況下では、タンパー検出ラインの破断は、リセット又は全てのフラッシュメモリの消去を生じさせるからである。
Address Generator Unit The address generator unit generates an effective address for accessing the memory unit (MU). In cycle 0, the PC is passed to the MU to fetch the next opcode. The address generator interprets the returned opcode to generate an effective address for cycle 1. In cycle 1, the generated address is passed to the MU. The logic and registers stored in the address generator unit are covered by both tamper detection lines. This ensures that the attacker cannot change the generated address. Almost all address generator units can be implemented in normal CMOS. Because the key does not go through most of this unit. However, the 5 bits of the accumulator are used for JSI address generation. As a result of this, this small area of the circuit is realized with non-flashing CMOS. The remaining portion of the address generator unit may not be implemented with non-flashing CMOS. However, the counter and the calculated address latch should be parity checked. If any of the tamper detection lines are broken, the address generator unit generates address 0 in each cycle and all counters are set to zero. This is effective only when the attacker disables resetting and / or disables the erase circuit. This is because, under normal conditions, a tamper detection line break will cause a reset or erase of all flash memory.

アドレス生成の背景
アドレス生成用ロジックは、種々のオペコードとオペランドの組み合わせを調べることが必要である。オペコード/オペランドと、アドレスとの関係はこのセクションで検討され、アドレス生成器ユニットの基礎として使用される。
Background of address generation Logic for address generation needs to examine various combinations of opcodes and operands. The relationship between opcode / operand and address is discussed in this section and is used as the basis for the address generator unit.

定数
下位4エントリーは、汎用用途、並びに、HMACアルゴリズムのための簡単な定数である。LDKオペランドの下位4ビットは、これらの4個の値、即ち、0000、0001、0010及び0011のメモリ内アドレスの下位3ビットにそのまま対応する。y定数及びh定数もLDKコマンドによってアドレス指定される。しかし、アドレスは、オペランドの下位3ビットをC1カウンタ値のインバースでOR演算し、そのままのオペランドの第4ビットを保持することによって生成される。このようにして、LDK
yの場合、yオペランドは0100であり、LDK hの場合、hオペランドは1000である。反転したC1値は、yに対して000−011の範囲にあり、hに対して、000−100の範囲にあり、OR演算結果は正確なアドレスを与える。全ての定数に対して、最終アドレスの上位5ビットは常に00000である。
The constant lower 4 entries are simple constants for general purpose as well as HMAC algorithms. The lower 4 bits of the LDK operand correspond directly to the lower 3 bits of these four values, that is, 0000, 0001, 0010, and 0011 in-memory addresses. The y and h constants are also addressed by the LDK command. However, the address is generated by ORing the lower 3 bits of the operand with the inverse of the C1 counter value and retaining the fourth bit of the operand as it is. In this way, LDK
For y, the y operand is 0100, and for LDK h, the h operand is 1000. The inverted C1 value is in the range of 000-011 for y and in the range of 000-100 for h, and the OR operation result gives an accurate address. For all constants, the upper 5 bits of the final address are always 00000.

RAM
変数A−Tは、それらのオペランド値の下位3ビットに直接関係したアドレスをもつ。即ち、LD、ST、ADD、LOG、及びXORコマンドのオペランド値0000−0101の場合、並びに、LOGコマンドのオペランド値1000−1101の場合、下位3ビットのオペランドアドレスビットは、最終アドレスを生成するため、001000の一定上位6ビットアドレスと共に使用される。残りのレジスタ値は、インデックス付きメカニズムによってアクセスできる。変数A−E、B160及びHは、C1カウンタ値によるインデックス付きとしてのみアクセス可能であり、Xは、N、N、N及びNによってインデックス付けされる。LD、ST及びADDコマンドの場合、C1によってインデックス付けされたAEのアドレスは、オペランドの下位3ビット(000)を取り、C1カウンタ値とOR演算することにより生成される。しかし、H及びB160のアドレスは、同じ方法では生成できない(そうでなければ、RAMアドレス空間は不連続になるであろう)。したがって、簡単な組み合わせロジックは、AEを0000に、Hを0110に、B160を1011に変換する。最終アドレスは、C1を4ビット値に加算し(4ビット値が得られる)、00100の一定上位5ビットアドレスを前に付加することによって得られる。最後に、レジスタのXレンジは、N、N、N及びNによるインデックス付きとしてのみアクセス可能である。XORコマンドの場合、インデックス付けのため任意のN1−4を使用可能であり、一方、LD、ST及びADDの場合、Nだけが使用可能である。LD、ST及びADDにおけるXのオペランドは、XN4オペランドと同じであるため、オペランドの下位2ビットは、使用すべきNを選択する。アドレスは、このようにして、00101の一定上位5ビット値と、選択されたNカウンタに由来する下位4ビットとして生成される。
RAM
Variables AT have addresses directly related to the lower 3 bits of their operand values. That is, in the case of the operand values 0000-0101 of the LD, ST, ADD, LOG, and XOR commands, and in the case of the operand values 1000-1101 of the LOG command, the lower 3 bits of the operand address bits generate the final address. , 001000 with a constant upper 6-bit address. The remaining register values can be accessed by an indexed mechanism. Variables A-E, B160 and H are only accessible as indexed by the C1 counter value, and X is indexed by N 1 , N 2 , N 3 and N 4 . For LD, ST and ADD commands, the address of the AE indexed by C1 is generated by taking the lower 3 bits (000) of the operand and ORing with the C1 counter value. However, the addresses for H and B160 cannot be generated in the same way (otherwise the RAM address space will be discontinuous). Thus, simple combinational logic converts AE to 0000, H to 0110, and B160 to 1011. The final address is obtained by adding C1 to the 4-bit value (a 4-bit value is obtained) and prepending the constant 1005 upper 5 bit address. Finally, the X range of the register is only accessible as indexed by N 1 , N 2 , N 3 and N 4 . For the XOR command, any N 1-4 can be used for indexing, while for LD, ST and ADD, only N 4 can be used. Since the operand of X in LD, ST and ADD is the same as the XN4 operand, the lower 2 bits of the operand select N to be used. The address is thus generated as a constant upper 5 bit value of 00101 and lower 4 bits derived from the selected N counter.

フラッシュメモリ−変数
変数MT及びAMのアドレスは、関連したコマンドのオペランドから生成される。オペランドの4ビットはそのまま使用され(0110及び0111)、00110の一定上位5ビットアドレスが前に付加される。変数R1−5、K11−5、K21−5、及びM0−7は、C1カウンタ値のインバースによるインデックス付きとしてのみアクセス可能である(付加的には、Rの場合には実際のC1値による)。簡単な組み合わせロジックは、R及びRFを00000に、K1又はK2がアドレス指定されているかどうかに応じてKを01000又は11000に、M(MHI及びMLOを含む)を10000に変換する。最終アドレスは、C1を5ビット値とOR演算(又は加算)し(RFの場合には、C1をそのまま使用し)、0011の一定上位4ビットを前に付加することによって獲得される。変数IST及びISWは各々が1ビット値に過ぎないが、任意のビット数によって実装できる。データは、0x00000000又は0xFFFFFFFFの何れかとして読み書きされる。それらは、ROR、CLR及びSETコマンドだけによってアドレス指定される。RORの場合、オペランドの下位ビットは、00111111の一定上位8ビット値と合成され、IST及びISWに対して、それぞれ、0011111110及び001111111が得られる。なぜならば、他のRORオペランドはメモリを使用せず、IST及びISW以外の場合には、返された値は無視できるからである。SET及びCLRの場合、IST及びISWは、0011の一定上位4ビットをIST(0100)から11110へのマッピング、及びISW(0101)から11111へのマッピングと組み合わせることによりアドレス指定される。IST及びISWは、RAMからのE及びTと同じオペランド値を共有するので、同じ復号化ロジックを下位5ビットのため使用することが可能である。最終アドレスは、ビット4、3及び1がセットされることを要求する(これは、オペランド値010xのテストの結果にOR演算することより行われる)。
The addresses of the flash memory-variable variables MT and AM are generated from the associated command operands. The 4 bits of the operand are used as they are (0110 and 0111) and are prefixed with a constant upper 5 bit address of 00110. The variables R 1-5 , K1 1-5 , K2 1-5 , and M 0-7 are only accessible as indexed by the inverse of the C1 counter value (additionally, in the case of R, the actual C1 value). Simple combinational logic converts R and RF to 00000, K to 01000 or 11000, depending on whether K1 or K2 is addressed, and M (including MHI and MLO) to 10,000. The final address is obtained by ORing (or adding) C1 with a 5-bit value (in the case of RF, using C1 as it is) and adding 0011 constant upper 4 bits to the front. Each of the variables IST and ISW is only a 1-bit value, but can be implemented with any number of bits. Data is read and written as either 0x00000000 or 0xFFFFFFFF. They are addressed only by ROR, CLR and SET commands. In the case of ROR, the lower bits of the operand are combined with a constant upper 8 bit value of 00111111 to obtain 0011111110 and 001111111 for IST and ISW, respectively. This is because the other ROR operands do not use memory, and the returned value can be ignored in cases other than IST and ISW. For SET and CLR, the IST and ISW are addressed by combining the constant upper 4 bits of 0011 with the mapping from IST (0100) to 11110 and the mapping from ISW (0101) to 11111. Since IST and ISW share the same operand values as E and T from RAM, it is possible to use the same decoding logic for the lower 5 bits. The final address requires bits 4, 3 and 1 to be set (this is done by ORing the result of the test with operand value 010x).

フラッシュメモリ−プログラム
プログラムフラッシュメモリ内でルックアップするためのアドレスは9ビットPC(サイクル0の場合)又は9ビットAdrレジスタ(サイクル1の場合)から直接もたらされる。TBR、DBR、JSR及びJSIのようなコマンドは、プログラムメモリ内の特定のアドレスでテーブルに記憶されたデータにしたがってPCを変更する。その結果として、アドレス生成は、一部の定数アドレスコンポーネントを利用し、コマンドオペランド(又はアキュムレータ)は実効アドレスの下位ビットを形成する。
Flash memory-program program The address to look up in flash memory comes directly from the 9-bit PC (for cycle 0) or 9-bit Adr register (for cycle 1). Commands such as TBR, DBR, JSR and JSI change the PC according to the data stored in the table at specific addresses in the program memory. As a result, address generation utilizes some constant address components, and command operands (or accumulators) form the lower bits of the effective address.

Figure 0004309954
アドレス生成器ユニットのブロック図
図194はアドレス生成器ユニットの概略ブロック図である。アドレス生成器ユニットからの一次出力は、以下の表に示されるように、マルチプレクサMXによって選択される。
Figure 0004309954
Address Generator Unit Block Diagram FIG. 194 is a schematic block diagram of the address generator unit. Primary output from the address generator unit, as shown in the table below, is selected by multiplexer MX 1.

Figure 0004309954
CMDデータとMUからの8ビットを区別することが重要である:
サイクル0では、8ビットデータラインは、後のサイクル1で実行されるべき次の命令を保持する。この8ビットコマンド値は実効アドレスをデコードするため使用される。これに対して、CMDの8ビットデータは前の命令を保持するので、無視されるべきである;
サイクル1では、CMDラインは現在実行中の命令(サイクル0中に8ビットデータラインに保持されていた命令)を保持し、一方、8ビットデータラインは命令からの実効アドレスのデータを保持する。CMDデータはサイクル1中に実行されなければならない。
Figure 0004309954
It is important to distinguish between 8 bits from CMD data and MU:
In cycle 0, the 8-bit data line holds the next instruction to be executed in later cycle 1. This 8-bit command value is used to decode the effective address. In contrast, CMD 8-bit data holds the previous instruction and should be ignored;
In cycle 1, the CMD line holds the currently executing instruction (the instruction held in the 8-bit data line during cycle 0), while the 8-bit data line holds the effective address data from the instruction. CMD data must be executed during cycle 1.

したがって、MU又はCMDからの9ビットデータの選択は、以下の表に示されるようにマルチプレクサMXによって行われる。 Therefore, selection of the 9-bit data from the MU or CMD is performed by a multiplexer MX 3 as shown in the table below.

Figure 0004309954
9ビットAdrレジスタはサイクル0毎に更新されるので、AdrのWriteEnableは〜サイクルに接続される。カウンタユニットはカウンタC1、C2(内部的に使用される)と、選択されたNインデックスを生成する。その上、カウンタユニットは、プログラムカウンタユニットによって使用されるフラグC1Z及びC2Zを出力する。様々な*GENユニットは、サイクル0中に、特有のコマンドタイプのアドレスを生成し、マルチプレクサMXは、PC(即ち、8ビットデータライン)によってプログラムメモリから読み出されるようなコマンドに基づいてそれらの間で選択を行う。生成された値は以下の通りである。
Figure 0004309954
Since the 9-bit Adr register is updated every cycle 0, Adr's WriteEnable is connected to ~ cycle. The counter unit generates counters C1, C2 (used internally) and the selected N index. In addition, the counter unit outputs flags C1Z and C2Z used by the program counter unit. Various * GEN units, during cycle 0, generates an address of the specific command type, the multiplexer MX 2 is PC (i.e., 8-bit data lines) thereof on the basis of the command as read from the program memory by Make a selection between. The generated values are as follows:

Figure 0004309954
マルチプレクサMXは以下の選択規準をもっている。
Figure 0004309954
Multiplexer MX 2 has the following selection criteria.

Figure 0004309954
VALユニットは、タンパー防止及び検出回路に接続された検証ユニットである。それはOKビットを含み、OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー防止及び検出ラインからのChipOK値とOR演算される。OKビットは、使用可能前の9ビットの実効アドレスとAND演算される。チップが改ざんされているならば、アドレス出力は常に0であり、これにより、攻撃者はメモリの他の部分へのアクセスが妨げられる。VALユニットは、実効アドレスビットにパリティチェックを実行し、それらが改ざんされていないことを保証する。パリティチェックが失敗であるならば、消去タンパー検出ラインがトリガーされる。
Figure 0004309954
The VAL 1 unit is a verification unit connected to a tamper prevention and detection circuit. It includes an OK bit, which is set to 1 at reset and is ORed with the ChipOK value from both tamper prevention and detection lines every cycle. The OK bit is ANDed with the 9-bit effective address before use. If the chip has been tampered with, the address output is always zero, which prevents the attacker from accessing other parts of the memory. The VAL 1 unit performs a parity check on the effective address bits to ensure that they have not been tampered with. If the parity check is unsuccessful, an erase tamper detection line is triggered.

JSIGEN
図195はJSIGENユニットの概略ブロック図である。JSIGENユニットはJSI
ACC命令のためのアドレスを生成する。実効アドレスは、単に、
JSIテーブル(0101)用のアドレスの4ビット上位部分と、
アキュムレータ値の下位5ビットと、
の連結である。
JSIGEN
FIG. 195 is a schematic block diagram of the JSIGEN unit. JSIGEN unit is JSI
Generate an address for the ACC instruction. The effective address is simply
4-bit upper part of the address for the JSI table (0101);
The lower 5 bits of the accumulator value,
Is a concatenation of

アキュムレータは他の時点(ジャンプアドレスが生成されないとき)で鍵を保持することがあるので、その値は秘匿されなければならない。その結果として、このユニットはノンフラッシングCMOSで実現される。マルチプレクサMXは、単に、コマンドがJSIGENであるかどうかに基づいて、アキュムレータからの下位5ビット又は0の間で選択を行う。マルチプレクサMXは以下の選択規準をもっている。 The accumulator may hold the key at other times (when no jump address is generated), so its value must be kept secret. As a result, this unit is realized with non-flushing CMOS. Multiplexer MX 1 simply selects between the lower 5 bits or 0 from the accumulator based on whether the command is JSIGEN. Multiplexer MX 1 has the following selection criteria:

Figure 0004309954
JSRGEN
図196はJSRGENユニットの概略ブロック図である。JSRGENユニットはJSR及びTBR命令のためのアドレスを生成する。実効アドレスは、単に、
JSRテーブル(0100)用のアドレスの4ビット上位部分と、
オペランドからのテーブル内のオフセット(JSRコマンド用の3ビットと、TBR用の3ビット+定数0ビット)と、
の連結からもたらされる。ここで、Logicは実効アドレスのビット3を生成する。このビットはJSRの場合にはビット3であり、TBRの場合には0である。
Figure 0004309954
JSRGEN
FIG. 196 is a schematic block diagram of the JSRGEN unit. The JSRGEN unit generates addresses for JSR and TBR instructions. The effective address is simply
4-bit upper part of the address for the JSR table (0100);
The offset in the table from the operand (3 bits for JSR command, 3 bits for TBR + constant 0 bit),
Resulting from the concatenation of Here, Logic 1 generates bit 3 of the effective address. This bit is bit 3 for JSR and 0 for TBR.

Figure 0004309954
JSR命令はビット5に1があるので(これに対して、TBRはこのビットが0である)、これをビット3とAND演算することにより、JSRの場合にはビット3を生成し、TBRの場合には0を生成する。
Figure 0004309954
Since the JSR instruction has 1 in bit 5 (as opposed to TBR, this bit is 0), this is ANDed with bit 3 to generate bit 3 in the case of JSR and the TBR In this case, 0 is generated.

DBRGEN
図197は、DBRGENユニットの概略ブロック図である。DBRGENユニットはDBR命令のためのアドレスを生成する。実効アドレスは、
DBRテーブル(011000)用のアドレスの6ビット上位部分と、
オペランドの下位3ビットと、
の連結からもたらされる。
DBRGEN
FIG. 197 is a schematic block diagram of the DBRGEN unit. The DBRGEN unit generates an address for the DBR instruction. Effective address is
A 6-bit upper part of the address for the DBR table (011000);
The lower 3 bits of the operand;
Resulting from the concatenation of

LDKGEN
図198は、LDKGENユニットの概略ブロック図である。LDKGENユニットはLDK命令のためのアドレスを生成する。実効アドレスは、
LDKテーブル(00000)用のアドレスの5ビット上位部分と、
オペランドのハイビットと、
オペランドの下位3ビット(下位が定数の場合)、又はC1とOR演算されたオペランドの下位3ビット(インデックス付き定数の場合)と
の連結からもたらされる。
LDKGEN
FIG. 198 is a schematic block diagram of the LDKGEN unit. The LDKGEN unit generates an address for the LDK instruction. Effective address is
A 5-bit upper part of the address for the LDK table (00000);
The high bit of the operand,
Resulting from concatenation of the lower 3 bits of the operand (if the lower order is a constant) or the lower 3 bits of C1 and the ORed operand (for an indexed constant)

ORブロックは、C1の3ビットを、MUからの8ビットデータ出力からの下位3ビットとOR演算するだけである。マルチプレクサMXは、オペランドの上位ビットがセットされているか、又はセットされていないかに基づいて、実際のデータビットと、C1がOR演算されたデータビットとの間で選択を行うだけである。マルチプレクサへのセレクタ入力は、簡単なORゲートであり、bitをbitとOR演算する。マルチプレクサMXは以下の選択規準をもっている。 The OR 2 block only ORs the 3 bits of C1 with the lower 3 bits from the 8-bit data output from the MU. Multiplexer MX 1 is either high order bits of the operand is set, or based on whether not set, the actual data bits, but only a selection is made between the C1 is OR operation data bits. The selector input to the multiplexer is a simple OR gate, and bit 2 is ORed with bit 3 . Multiplexer MX 1 has the following selection criteria:

Figure 0004309954
RPLGEN
図199は、RPLGENユニットの概略ブロック図である。RPLGENユニットはRPL命令のためのアドレスを生成する。K2MXが0であるとき、実効アドレスは定数000000000である。K2MXが1であるとき(Mからの読み出しが有効な値を返すことを示す)、実効アドレスは、
M(001110)用のアドレスの6ビット上位部分と、
C1の現在値の3ビットと、
の連結からもたらされる。
Figure 0004309954
RPLGEN
FIG. 199 is a schematic block diagram of the RPLGEN unit. The RPLGEN unit generates an address for the RPL instruction. When K2MX is 0, the effective address is a constant 000000000000. When K2MX is 1 (indicating that reading from M returns a valid value), the effective address is
A 6-bit upper part of the address for M (001110);
3 bits of the current value of C1,
Resulting from the concatenation of

マルチプレクサMXは、K2MXの現在値に基づいて、2個のアドレスの間で選択を行う。したがって、マルチプレクサMXは以下の選択規準をもっている。 Multiplexer MX 1 based on the current value of K2MX, selects between the two addresses. Therefore, the multiplexer MX 1 has the following selection criteria.

Figure 0004309954
VARGEN
図200は、VARGENユニットの概略ブロック図である。VARGENユニットはLD、ST、ADD、LOG及びXOR命令のためのアドレスを生成する。K2MX
1ビットフラグは、Mからの読み出しが定数0アドレス(0を返すが、書き込み不可である)にマッピングされるか、オペランドがKを指定したとき、K1とK2のどちらがアクセスされるか、を決定するため使用される。4ビットアダーブロックは2組の4ビット入力をとり、モジュロー2の加法で、4ビットの出力を生成する。シングルビットレジスタK2MXは、CLR
K2MX命令、又はSET K2MX命令の実行中だけに書き込まれる。Logicは、これらの条件に基づいてK2MX
WriteEnableをセットする。
Figure 0004309954
VARGEN
FIG. 200 is a schematic block diagram of the VARGEN unit. The VARGEN unit generates addresses for LD, ST, ADD, LOG and XOR instructions. K2MX
The 1-bit flag determines whether a read from M is mapped to a constant 0 address (returns 0 but cannot be written), or when the operand specifies K, which of K1 and K2 is accessed Used to do. 4-bit adder block takes two sets of 4-bit input, in addition of modulo 2 4, to produce a 4-bit output. Single bit register K2MX is a CLR
It is written only during execution of the K2MX instruction or the SET K2MX instruction. Logic 1 is based on these conditions, K2MX
Set WriteEnable.

Figure 0004309954
SET命令中にK2MX変数に書き込まれるビットは1であり、CLR命令中は0である。入力ビットのソースとして、オペコードの下位ビット(bit)を使用するのが好都合である。アドレス生成中に、組み合わせロジックとして実装された真理表は、以下の通り、ベースアドレスの一部を決定する。
Figure 0004309954
The bit written to the K2MX variable during the SET instruction is 1 and 0 during the CLR instruction. It is convenient to use the lower bit (bit 4 ) of the opcode as the source of the input bits. The truth table implemented as combinational logic during address generation determines part of the base address as follows:

Figure 0004309954
真理表は5ビットの出力を生成するが、下位4ビットは4ビットアダーへ送られ、そこで、下位4ビットはインデックス値(C1、N又はオペランド自体の下位3ビット)に加算される。最上位ビットはアダーへ送られ、5ビット結果を生成するために、アダー結果からの4ビット結果の前に付加される。アダーへの第2の入力はマルチプレクサMXに由来し、マルチプレクサMXは、C1、N、及びオペランド自体の下位3ビットからインデックス値を選択する。C1は3ビットしかないが、4番目のビットは定数0である。マルチプレクサMXは以下の選択規準をもっている。
Figure 0004309954
The truth table produces a 5-bit output, but the lower 4 bits are sent to the 4-bit adder, where the lower 4 bits are added to the index value (C1, N or the lower 3 bits of the operand itself). The most significant bit is sent to the adder and is prepended to the 4-bit result from the adder result to produce a 5-bit result. A second input to adder is derived from multiplexer MX 1, multiplexer MX 1 selects an index value from the lower 3 bits of the C1, N, and operand itself. C1 has only 3 bits, but the fourth bit is a constant 0. Multiplexer MX 1 has the following selection criteria:

Figure 0004309954
実効アドレスの第6ビット(bit)は、RAMアドレスの場合に0であり、フラッシュメモリアドレスの場合に1である。フラッシュメモリアドレスは、MT、AM、R、K、及びMである。bitの計算はLogicによって与えられる。
Figure 0004309954
The sixth bit (bit 5 ) of the effective address is 0 for a RAM address and 1 for a flash memory address. The flash memory addresses are MT, AM, R, K, and M. The calculation of bit 5 is given by Logic 2 .

Figure 0004309954
定数1ビットが表現され、実効アドレスは全部で7ビットになる。これらのビットは、K2MXが0でなく、命令がLD、ADD又はST
M[C1]ではない限り、実効アドレスを形成する。後者では、実効アドレスは定数アドレス0000000である。両方のケースで、2個の0ビットが最終的な9ビットアドレスを形成するため前に追加される。この計算は、以下に示され、Logic及びマルチプレクサMXによって行われる。
Figure 0004309954
One constant bit is expressed, and the effective address is 7 bits in total. For these bits, K2MX is not 0 and the instruction is LD, ADD or ST
An effective address is formed unless M [C1]. In the latter, the effective address is a constant address 0000000. In both cases, two 0 bits are added before to form the final 9-bit address. This calculation is shown below and is performed by Logic 3 and multiplexer MX 2 .

Figure 0004309954
Figure 0004309954

Figure 0004309954
CLRGEN
図201は、CLRGENユニットの概略ブロック図である。CLRGENユニットはCLR命令のためのアドレスを生成する。実効アドレスは常に、有効メモリアクセスオペランド用のフラッシュメモリにあり、無効オペランドに対して0である。CLR
M[C1]命令は、(VARGENユニットに保持された)K2MXフラグの状態とは無関係に、常に、M[C1]を消去する。真理表は、単純な組み合わせロジックであり、以下の関係を実現する。
Figure 0004309954
CLRGEN
FIG. 201 is a schematic block diagram of the CLRGEN unit. The CLRGEN unit generates an address for the CLR instruction. The effective address is always in flash memory for valid memory access operands and is 0 for invalid operands. CLR
The M [C1] instruction always clears M [C1] regardless of the state of the K2MX flag (held in the VARGEN unit). The truth table is a simple combinational logic and realizes the following relationship.

Figure 0004309954
真理表に必要なロジックを削減することは簡単である。なぜならば、全部で4種類の主要なケースにおいて、実効アドレスの最初の6ビットは00であり、その後にオペランド(bit3−0)が続く。
Figure 0004309954
It is easy to reduce the logic required for the truth table. This is because, in all four main cases, the first 6 bits of the effective address are 00, followed by the operand (bit 3-0 ).

BITGEN
図202は、BITGENユニットの概略ブロック図である。BITGENユニットはROR及びSET命令のためのアドレスを生成する。実効アドレスは常に、有効メモリアクセスオペランド用のフラッシュメモリにあり、無効オペランドに対して0である。ROR及びSET命令は、IST及びISWフラッシュメモリアドレスだけにアクセスし(オペランドの残りはレジスタにアクセスする)、簡単な組み合わせロジック真理表はアドレス生成に十分である。
BITGEN
FIG. 202 is a schematic block diagram of the BITGEN unit. The BITGEN unit generates addresses for ROR and SET instructions. The effective address is always in flash memory for valid memory access operands and is 0 for invalid operands. The ROR and SET instructions access only the IST and ISW flash memory addresses (the rest of the operands access the registers), and a simple combinatorial logic truth table is sufficient for address generation.

Figure 0004309954
カウンタユニット
図Y37は、カウンタユニットの概略ブロック図である。カウンタユニットは、カウンタC1、C2(内部で使用)と、選択されたNインデックスと、を生成する。更に、カウンタユニットは、外部で使用するための出力フラグC1Z及びC2Zを出力する。レジスタC1及びC2は、DBR命令又はSC命令のターゲットであるときに更新される。オペランドのハイビット(実効コマンドのbit)は、C1とC2の間で選択を行う。Logic及びLogicは、それぞれ、C1及びC2のためのWriteEnableを判定する。
Figure 0004309954
Counter Unit Diagram Y37 is a schematic block diagram of the counter unit. The counter unit generates counters C1, C2 (used internally) and the selected N index. Further, the counter unit outputs output flags C1Z and C2Z for external use. Registers C1 and C2 are updated when they are targets of DBR or SC instructions. The high bit of the operand (bit 3 of the effective command) selects between C1 and C2. Logic 1 and Logic 2 determine the Write Enable for C1 and C2, respectively.

Figure 0004309954
シングルビットフラグC1Z及びC2Zは、それらのマルチビットC1及びC2の対応した部分のNOR演算によって生成される。このようにして、C1Zは、C1=0のときに1であり、C2Zは、C2=0のときに1である。DBR命令中に、C1又はC2の何れかの値が1ずつデクリメントされる(ラップ付き)。デクリメンターユニットへの入力は、以下の通り、マルチプレクサMXによって選択される。
Figure 0004309954
The single bit flags C1Z and C2Z are generated by NOR operation of corresponding portions of the multibits C1 and C2. Thus, C1Z is 1 when C1 = 0, and C2Z is 1 when C2 = 0. During the DBR instruction, the value of either C1 or C2 is decremented by 1 (with wrap). The input to decremental Mentor units, as follows, are selected by multiplexer MX 2.

Figure 0004309954
C1又はC2に書き込まれた実際の値は、DBR命令又はSC命令が実行されたかどうかに依存する。マルチプレクサMXは、デクリメンターからの出力(DBR命令用)と、真理表からの出力(SC命令用)との間で選択を行う。5ビット出力のうちの最下位3ビットだけがC1に書き込まれることに注意する必要がある。マルチプレクサMXは、したがって、以下の選択規準をもっている。
Figure 0004309954
The actual value written to C1 or C2 depends on whether a DBR or SC instruction has been executed. The multiplexer MX 1 selects between the output from the decrementer (for the DBR instruction) and the output from the truth table (for the SC instruction). Note that only the least significant 3 bits of the 5-bit output are written to C1. Multiplexer MX 1 therefore has the following selection criteria:

Figure 0004309954
真理表は、SC命令を用いて、C1及びC2へロードされるべき値を保持する。真理表は、以下の関係を実現する簡単な組み合わせロジックである。
Figure 0004309954
The truth table holds the values to be loaded into C1 and C2 using the SC instruction. A truth table is a simple combinational logic that achieves the following relationship:

Figure 0004309954
レジスタN1、N2、N3及びN4は、XOR命令によって参照されたとき、次の値−1(ラップ付き)によって更新される。レジスタN4は、ST
X[N4]命令が実行されるときにも更新される。LD及びADD命令はN4を更新しない。その上、全部で4個のレジスタはSET
Nxコマンド中に更新される。Logic4−7は、レジスタN1からN4のWriteEnableを生成する。どれもがLogicを使用し、Logicは、コマンドがSET
Nxである場合に1を生成し、そうでなければ0を生成する。
Figure 0004309954
Registers N1, N2, N3 and N4 are updated with the next value -1 (with wrap) when referenced by the XOR instruction. Register N4 is ST
It is also updated when the X [N4] instruction is executed. LD and ADD instructions do not update N4. In addition, all four registers are SET
Updated during Nx command. Logic 4-7 generates Write Enable for registers N1 to N4. None is using the Logic 3, Logic 3, the command SET
If it is Nx, 1 is generated, otherwise 0 is generated.

Figure 0004309954
送出された、又はデクリメンターへの入力として使用された実際のインデックス値は、マルチプレクサMXがオペランドの下位2ビットを使用して簡単に選択する。
Figure 0004309954
The actual index value sent or used as input to the decrementer is simply selected by the multiplexer MX 4 using the lower 2 bits of the operand.

Figure 0004309954
インクリメンターは、(マルチプレクサMXによって選択された)入力値のうちの4ビットを取得し、1を加え、4ビット結果を生成する(モジュロー2の加法による)。最後に、マルチプレクサMXは4時点で、(N毎に異なり、SET
Nxコマンド中にロードされる)定数値と、(XOR又はST命令中の)デクリメンターの結果と、の間で選択を行う。その値は、適当なWriteEnableフラグがセットされている場合に限り書き込まれ(Logic−Logicを参照せよ)、Logicはマルチプレクサのために安全に使用できる。
Figure 0004309954
The incrementer takes 4 bits of the input value (selected by multiplexer MX 4 ), adds 1 and produces a 4 bit result (by modulo 2 4 addition). Finally, the multiplexer MX 3 is at 4 time points (different every N, SET
A choice is made between a constant value (loaded during the Nx command) and the decrementer result (in an XOR or ST instruction). Its value is written only if the appropriate WriteEnable flag is set (see Logic 4- Logic 7 ), and Logic 3 can be safely used for the multiplexer.

Figure 0004309954
SET Nxコマンドは、N1からN4に以下の定数をロードする。
Figure 0004309954
The SET Nx command loads the following constants from N1 to N4.

Figure 0004309954
参照される各初期X[Nn]は、最適化されたSHA−1アルゴリズムのインデックスN1からN4の初期状態と一致する。各インデックス値Nnがデクリメントするとき、実効X[N]はインクリメントする。その理由は、Xワードは最上位ワードから先にメモリに格納されているからである。3個のVALユニットは、タンパー防止及び検出回路に接続された検証ユニットであり、各VALはOKビットを含む。OKビットはリセットで1にセットされ、サイクル毎に両方のタンパー防止及び検出ラインからのChipOK値とOR演算される。OKビットはそのユニットを通過する各データビットとAND演算される。全てのVALユニットは、データビットをパリティチェックし、カウンタが改ざんされていないことを保証する。パリティチェックが失敗であるならば、消去タンパー検出ラインがトリガーされる。VALの場合、カウンタC1からの実効出力は、チップが改ざんされているならば、常に0である。これは、攻撃者が鍵の最初から最後までインデックス付けをするループ構造を実行することを阻止する。VALの場合、カウンタC2からの実効出力は、チップが改ざんされたならば、常に0である。これは、攻撃者がループ構造を実行することを阻止する。VALの場合、Nカウンタ(N1−N14)からの実効出力は、チップが改ざんされているならば、常に0である。これは、攻撃者がXの最初から最後までインデックス付けをするループ構造を実行することを阻止する。
Figure 0004309954
Each initial X [Nn] referenced matches the initial state of the optimized SHA-1 algorithm indices N1 to N4. As each index value Nn decrements, effective X [N] increments. The reason is that the X word is stored in the memory before the most significant word. The three VAL units are verification units connected to the tamper prevention and detection circuit, and each VAL includes an OK bit. The OK bit is set to 1 at reset and ORed with the ChipOK value from both tamper prevention and detection lines every cycle. The OK bit is ANDed with each data bit passing through the unit. All VAL units parity check the data bits to ensure that the counter has not been tampered with. If the parity check is unsuccessful, an erase tamper detection line is triggered. For VAL 1 , the effective output from counter C1 is always 0 if the chip has been tampered with. This prevents an attacker from executing a loop structure that indexes from the beginning to the end of the key. In the case of VAL 2 , the effective output from the counter C2 is always 0 if the chip has been tampered with. This prevents an attacker from executing the loop structure. For VAL 3 , the effective output from the N counter (N1-N14) is always 0 if the chip has been tampered with. This prevents an attacker from executing a loop structure that indexes from the beginning to the end of X.

次に、図203を参照すると、フラッシュメモリ記憶装置701に格納された情報705が示されている。このデータには以下のものが含まれる。 Next, referring to FIG. 203, information 705 stored in the flash memory storage device 701 is shown. This data includes:

工場コード
工場コードは、プリントロールが製造された工場を示す16ビットコードである。これは、プリントロールテクノロジーの所有者に属する工場、又は許可を得てプリントロールを製造する工場を識別する。この数値の目的は、品質の問題がある場合に、プリントロールの由来する工場を追跡できるようにすることである。
Factory code The factory code is a 16-bit code indicating the factory where the print roll is manufactured. This identifies the factory that belongs to the owner of the print roll technology or that manufactures the print roll with permission. The purpose of this number is to be able to track the factory from which the print roll originates if there is a quality problem.

バッチ番号
バッチ番号は、プリントロールの製造バッチを示す32ビット番号である。この数値の目的は、品質の問題がある場合に、プリントロールの由来するバッチを追跡することである。
Batch number The batch number is a 32-bit number indicating a print roll manufacturing batch. The purpose of this number is to track the batch from which the print roll comes if there is a quality problem.

シリアル番号
48ビットシリアル番号は、最大で28兆個まで各プリントロールを一意に識別できるようにするため設けられる。
The serial number 48-bit serial number is provided so that each print roll can be uniquely identified up to 28 trillion.

製造日
16ビット製造日は、有効期限が制限されている場合に、プリントロールの経年を追跡するため組み込まれる。
Manufacturing Date A 16-bit manufacturing date is incorporated to track the age of the print roll when the expiration date is limited.

メディア長さ
ロール上に残っているプリントメディアの長さはこの数値によって表される。この長さは、ミリメータ、又はプリントロールを使用するプリンタ装置の最小ドットピッチのような小さい単位で表現され、周知のC、H及びPの各フォーマット、並びに、印刷されるその他のフォーマットで残り写真数の計算を可能にさせる。この小さい単位を使用することによって、プレ印刷されたメディアとの同期を保つために高解像度が使用できることを保証する。
The length of the print media remaining on the media length roll is represented by this number. This length is expressed in small units, such as millimeters or the minimum dot pitch of printers using print rolls, and the remaining photos in the well-known C, H and P formats, as well as other formats to be printed. Allows calculation of numbers. Using this small unit ensures that a high resolution can be used to keep in sync with the pre-printed media.

メディアタイプ
メディアタイプデータはプリントロールに格納されているメディアを列挙する:
(1)透明
(2)乳白色
(3)不透明着色
(4)3次元レンチキュラー
(5)プレ印刷:長さ限定
(6)プレ印刷:非長さ限定
(7)金属箔
(8)ホログラフィック/光学的可変デバイス箔。
Media type Media type data lists the media stored in the print roll:
(1) Transparent (2) Milky white (3) Opaque coloring (4) Three-dimensional lenticular (5) Pre-printing: Length limited (6) Pre-printing: Non-length limited (7) Metal foil (8) Holographic / Optical Variable device foil.

プレ印刷メディア長さ
例えば、プリントロールの裏面に収容されているプレ印刷メディアの繰り返しパターンの長さがここに保存される。
Pre-print media length For example, the length of the repetitive pattern of the pre-print media accommodated on the back surface of the print roll is stored here.

インク粘性
各インクカラーの粘性が8ビット数値として格納される。インク粘性数は、粘性を補償するためプリントヘッドアクチュエータ特性を調節する際に使用される(典型的に、粘性が高くなると、同じドロップボリュームを実現するためにはより長いアクチュエータパルスが必要になる)。
Ink viscosity The viscosity of each ink color is stored as an 8-bit numerical value. The ink viscosity number is used in adjusting printhead actuator characteristics to compensate for viscosity (typically, higher viscosity requires longer actuator pulses to achieve the same drop volume) .

1200dpi用の推奨ドロップボリューム
各インクカラーの推奨ドロップボリュームは8ビット数値として格納される。最も適切なドロップボリュームは、インク及び印刷メディア特性に依存する。例えば、要求されるドロップボリュームは、色素濃度又は吸収性が増加すると減少する。また、透明メディアは乳白色メディアの約2倍のドロップボリュームを必要とする。なぜならば、光は、透明メディアの場合、色素層を1回しか通過しないからである。
Recommended drop volume for 1200 dpi The recommended drop volume for each ink color is stored as an 8-bit numerical value. The most appropriate drop volume depends on the ink and print media characteristics. For example, the required drop volume decreases as the dye concentration or absorbency increases. In addition, transparent media requires about twice the drop volume of milky white media. This is because light passes through the dye layer only once for transparent media.

プリントロールは、インクとメディアの両方を収容するので、顧客適合を実現することができる。ドロップボリュームは、推奨ドロップマッチに過ぎない。なぜならば、プリンタは1200dpiではないかもしれないし、また、プリンタは、印刷の明暗について調節されるかもしれないからである。 Since the print roll contains both ink and media, customer adaptation can be achieved. Drop volume is only a recommended drop match. This is because the printer may not be 1200 dpi and the printer may be adjusted for the lightness of the print.

インクカラー
染料色の各々のカラーが格納され、印刷前に画像に適用されるデジタル中間調を精細調整するために使用できる。
Each color of the ink color dye color is stored and can be used to fine tune the digital halftone applied to the image before printing.

残りメディア長さインジケータ
ロールに残っている印刷メディアの長さが数値によって表現され、カメラ装置によって更新される。長さは、C、H及びPの各フォーマット、並びに、印刷されるその他のフォーマットで残り写真数を計算できるように、小さい単位(例えば、1200dpiピクセル)で表現される。プレ印刷メディアとの同期を保つために高解像度を使用してもよい。
The length of the print medium remaining in the remaining media length indicator roll is expressed by a numerical value and updated by the camera device. The length is expressed in small units (eg 1200 dpi pixels) so that the number of remaining pictures can be calculated in C, H and P formats, as well as other formats to be printed. High resolution may be used to keep in sync with the pre-print media.

著作権又はビットパターン
この512ビットパターンは、保存されたフラッシュメモリの内容を著作権保護可能にするために十分なASCII文字列を表現する。
Copyright or Bit Pattern This 512 bit pattern represents an ASCII string sufficient to allow copyright protection of the stored flash memory contents.

図204を参照すると、Artcam認証チップの記憶テーブル730が示されている。テーブルは、製造コード、バッチ番号、シリアル番号、及び日付を含み、上述のフォーマットと同じである。テーブル730は、更に、Artcam装置内のプリントエンジン上の情報731を含む。蓄積された情報は、プリンタエンジンタイプ、プリンタのDPI解像度、及びプリンタ装置によって作成されたプリント数のプリンタカウントを含む。 Referring to FIG. 204, an Artcam authentication chip storage table 730 is shown. The table contains the manufacturing code, batch number, serial number, and date, and is the same format as described above. Table 730 further includes information 731 on the print engine in the Artcam device. The accumulated information includes the printer engine type, the DPI resolution of the printer, and the printer count of the number of prints created by the printer device.

更に、認証テスト鍵710が設けられ、これは、チップとチップの間でランダムに変化し、上述のアルゴリズムにおけるArtcamランダム識別コードとしても利用される。128ビットのプリントロール認証鍵713も設けられ、これはプリントロール内に保存されたキーと同等である。次に、512ビットパターンが保存され、その後に、Artcamの利用に適した120ビットの予備エリアが続く。 In addition, an authentication test key 710 is provided, which varies randomly between chips and is also used as an Artcam random identification code in the above algorithm. A 128-bit print roll authentication key 713 is also provided, which is equivalent to a key stored in the print roll. The 512-bit pattern is then saved, followed by a 120-bit spare area suitable for Artcam usage.

上述のように、Artcamは、好ましくは、液晶ディスプレイ15を含み、液晶ディスプレイは、Artcamに格納されているプリントロールに残されたプリント数を示す。更に、Artcamは、3状態スイッチ17を含み、これにより、ユーザは、3種類の標準的なフォーマットC、H及びP(クラシック、HDTV及びパノラマ)を切り換えることが可能である。三つの状態間の切替後、液晶ディスプレイ15は、選択された特定のフォーマットが使用されるならば、プリントロールに残っている画像の枚数を反映するため更新される。 As described above, Artcam preferably includes a liquid crystal display 15, which indicates the number of prints left on the print roll stored in Artcam. In addition, Artcam includes a tri-state switch 17, which allows the user to switch between three standard formats C, H and P (Classic, HDTV and Panorama). After switching between the three states, the liquid crystal display 15 is updated to reflect the number of images remaining on the print roll if the particular format selected is used.

液晶ディスプレイを正しく動作させるため、Artcamプロセッサは、プリントロールを挿入し、認証テストに合格した後、プリントロールチップ53のフラッシュメモリ記憶装置から読み出し、用紙残量を判定する。次に、出力フォーマット選択スイッチ17の値がArtcamプロセッサによって判定される。プリント長さを、選択された出力フォーマットの対応した長さで除算することにより、Artcamプロセッサは、プリント可能数を判定し、残りプリント数で液晶ディスプレイ15を更新する。ユーザが出力フォーマット選択スイッチ17を変更すると、Artcamプロセッサ31は、そのフォーマットに応じて出力ピクチャーの数を再計算し、再度、LCDディスプレイ15を更新する。 In order for the liquid crystal display to operate correctly, the Artcam processor inserts the print roll and passes the authentication test, and then reads from the flash memory storage device of the print roll chip 53 to determine the remaining amount of paper. Next, the value of the output format selection switch 17 is determined by the Artcam processor. By dividing the print length by the corresponding length of the selected output format, the Artcam processor determines the printable number and updates the liquid crystal display 15 with the remaining print number. When the user changes the output format selection switch 17, the Artcam processor 31 recalculates the number of output pictures according to the format, and updates the LCD display 15 again.

プロセス情報をプリントロールテーブル705(図165)に保存することによって、Artcam装置はプロセスの変化、及びプリントロールのプリント特性の変化を利用することができる。 By storing process information in the print roll table 705 (FIG. 165), the Artcam device can take advantage of process changes and print roll print characteristic changes.

特に、プリントヘッド内の各ノズルに加えられたパルス特性は、プロセス特性の変化を考慮するために変更可能である。図205を参照すると、Artcamプロセッサは、補助メモリROMチップに記憶されたソフトウェアプログラムを動かすために適合し得る。ソフトウェアプログラムであるパルスプロファイルキャラクタライザ771は、プリントロールから多数の変数を読み出すことができる。これらの変数には、プリントロール772上の残りロールメディア、プリンタメディアタイプ773、インクカラー粘性774、インクカラードロップボリューム775、及びインクカラー776が含まれる。これらの変数の各々は、パルスプロファイルキャラクタライザによって読み出され、対応した最も適しているパルスプロファイルは、従来の試行錯誤法によって決定される。パラメータは、インク出力の安定性を高めるために、各プリンタノズルで受け取られるプリンタパルスを変更する。 In particular, the pulse characteristics applied to each nozzle in the print head can be changed to account for changes in process characteristics. Referring to FIG. 205, the Artcam processor may be adapted to run software programs stored in the auxiliary memory ROM chip. A pulse profile characterizer 771, which is a software program, can read a number of variables from the print roll. These variables include the remaining roll media on print roll 772, printer media type 773, ink color viscosity 774, ink color drop volume 775, and ink color 776. Each of these variables is read by a pulse profile characterizer and the corresponding most suitable pulse profile is determined by conventional trial and error methods. The parameter changes the printer pulse received at each printer nozzle to increase the stability of the ink output.

明らかなように、認証チップは、重要かつ価値ある情報がプリンタロールと一体のプリンタチップに格納されている点で著しく進歩している。この情報は、対象となっているプリントロールのプロセス特性を、プリントロールのタイプ及びプリントロールに残っている用紙量と共に含む。 As is apparent, the authentication chip has made significant progress in that important and valuable information is stored in a printer chip integral with the printer roll. This information includes the process characteristics of the target print roll, along with the type of print roll and the amount of paper remaining on the print roll.

更に、プリントロールインタフェースチップは、貴重な認証情報を提供し、耐タンパー性の形で構築することが可能である。また、このチップを利用する耐タンパー性のある方法が提供される。プリントロールチップの利用は、Artcam装置の迅速な出力フォームのために便利かつ効率的なユーザインタフェースを提供することができ、多数の写真フォーマットを出力でき、同時に、印刷装置に残っている写真の数のインジケータを提供することができる。 Furthermore, the print roll interface chip can provide valuable authentication information and can be constructed in a tamper resistant manner. Also provided is a tamper resistant method utilizing this chip. The use of a print roll chip can provide a convenient and efficient user interface for the quick output form of Artcam devices, can output multiple photo formats, and at the same time the number of photos remaining on the printing device An indicator can be provided.

プリントヘッドユニット
図206には、図162のプリントヘッドユニット615の分解斜視部分断面図が示されている。
Printhead Unit FIG. 206 shows an exploded perspective partial cross-sectional view of the printhead unit 615 of FIG. 162.

プリントヘッドユニット615は、像を形成するように要求に応じてインクドロップをプリントメディア611へ噴射するプリントヘッド44が中心に置かれる。プリントメディア611は、第1セット618及び616と、第2セット617及び619からなる2組のローラーの間に挟まれている。 The print head unit 615 is centered on a print head 44 that ejects ink drops onto the print media 611 on demand to form an image. The print medium 611 is sandwiched between two sets of rollers including a first set 618 and 616 and a second set 617 and 619.

プリントヘッド44は電源、グランド、及び信号線810の制御下で動作し、電源、グランド、及び信号線810は、プリントヘッド44用の電源及び制御を提供し、テープ自動ボンディング(TAB)によってプリントヘッド44の表面に接合されている。 The print head 44 operates under the control of the power supply, ground, and signal line 810, and the power supply, ground, and signal line 810 provides power and control for the print head 44, and print heads by tape automatic bonding (TAB). It is joined to the surface of 44.

重要なことは、適当に分離されたシリコンウェハー装置から構築することができるプリントヘッド44は、一連の異方性エッチ812に依拠し、ウェハーを介して、ほぼ垂直な側壁を有する。ウェハーを貫通するエッチ812は、後で取り出すためウェハーの裏側からインクをプリントヘッド表面に直接供給することができる。 Importantly, the printhead 44, which can be constructed from a suitably separated silicon wafer device, relies on a series of anisotropic etches 812 and has substantially vertical sidewalls through the wafer. Etch 812 through the wafer can supply ink directly to the printhead surface from the backside of the wafer for later removal.

インクは、インクヘッド供給ユニット814を用いてインクジェットプリントヘッド44の裏側に供給される。インクジェットプリントヘッド44は、その表面に沿って、別々の色のインクを供給するため3つの別個の行をもつ。インクヘッド供給ユニット814は、インクチャンネルをシールする蓋815を含む。 Ink is supplied to the back side of the inkjet print head 44 using an ink head supply unit 814. Inkjet printhead 44 has three separate rows along its surface to supply inks of different colors. The ink head supply unit 814 includes a lid 815 that seals the ink channel.

図207から図210には、インクヘッド供給ユニット814の多数の斜視図が示されている。図207から図210の各々は、長さに制限のないインクヘッド供給ユニットの一部だけを示し、図示された部分は典型的な細部を示す。図207には、底側斜視図が示され、図148は上側斜視図を示し、図209は拡大斜視部分断面図を示し、図210はインクチャンネルの詳細を示す上側斜視図であり、図211は上側斜視図であり、図212も同様である。 A number of perspective views of the ink head supply unit 814 are shown in FIGS. Each of FIGS. 207 to 210 shows only a portion of an ink head supply unit that is not limited in length, and the portions shown show typical details. 207 shows a bottom perspective view, FIG. 148 shows an upper perspective view, FIG. 209 shows an enlarged perspective partial sectional view, FIG. 210 shows an upper perspective view showing details of the ink channel, and FIG. Is an upper perspective view and FIG. 212 is the same.

インクヘッド供給ユニット814は、例えば、マイクロマシーン加工されたシリコンからではなく、射出成形プラスチックから形成する方がコスト的にかなり有利である。プラスチックインクチャンネルの製造コストは非常に低く、製造は十分に容易である。添付図面に示された設計は、所定の長さの1600dpiの3色モノリシックプリントヘッドを想定している。与えられた流速計算は、100mmフォトプリンタに対するものである。 For example, the ink head supply unit 814 is considerably advantageous in terms of cost when formed from injection-molded plastic rather than from micromachined silicon. The manufacturing cost of the plastic ink channel is very low and the manufacturing is sufficiently easy. The design shown in the accompanying drawings assumes a 1600 dpi three-color monolithic printhead of a predetermined length. The given flow rate calculation is for a 100 mm photo printer.

インクヘッド供給ユニット814は、必要な精細部の全てを含んでいる。蓋815(図206)は、インクヘッド供給ユニット814に永久的に接着されるか、又は超音波溶接され、インクチャンネルのシールを提供する。 The ink head supply unit 814 includes all necessary fine portions. A lid 815 (FIG. 206) is permanently bonded or ultrasonically welded to the ink head supply unit 814 to provide a seal for the ink channel.

図209を参照すると、シアン、マゼンタ、イエローのインクが、インクインレット820−822に流入し、マゼンタインクはスルーホール824,825の中を流れ、マゼンタメインチャンネル826,827(図141)に沿って流れる。シアンインクは、シアンメインチャンネル830に沿って流れ、イエローインクはイエローメインチャンネル831に沿って流れる。図209に最もよく示されているように、シアンインクメインチャンネル内のシアンインクは、シアンサブチャンネル833に流れ込む。イエローサブチャンネル834は、同様に、イエローメインチャンネル831からイエローインクを受け取る。 Referring to FIG. 209, cyan, magenta, and yellow ink flow into ink inlets 820-822, and the magenta ink flows through through holes 824 and 825, along the magenta main channels 826 and 827 (FIG. 141). Flowing. The cyan ink flows along the cyan main channel 830, and the yellow ink flows along the yellow main channel 831. As best shown in FIG. 209, the cyan ink in the cyan ink main channel flows into the cyan sub-channel 833. Similarly, the yellow sub-channel 834 receives yellow ink from the yellow main channel 831.

図210の最もよく示されているように、マゼンタインクもマゼンタメインチャンネル826,827からマゼンタスルーホール836,837へ流れる。図209に戻ると、マゼンタインクはスルーホール836,837から流出する。マゼンタインクは、マゼンタサブチャンネル、例えば、838に沿って流れ、次に、第2のマゼンタサブチャンネル、例えば、839に沿って流れ、その後、マゼンタトラフ840に流入する。マゼンタインクは、次に、マゼンタバイア、例えば、842を流れ、マゼンタバイアは、対応したインクジェットヘッドスルーホール(例えば、図166の812)と整列させられ、それらは、次に、インクをプリントアウト用のインクジェットノズルへ供給する。 As best shown in FIG. 210, magenta ink also flows from magenta main channels 826, 827 to magenta through holes 836, 837. Returning to FIG. 209, the magenta ink flows out from the through holes 836 and 837. Magenta ink flows along the magenta subchannel, eg, 838, then flows along the second magenta subchannel, eg, 839, and then flows into the magenta trough 840. The magenta ink then flows through a magenta via, eg, 842, which is aligned with a corresponding inkjet head through hole (eg, 812 in FIG. 166) that then prints the ink. To the inkjet nozzle.

同様に、シアンサブチャンネル833内のシアンインクはシアンピットエリア849に流入し、それは、インクを二つのシアンバイア843,844に供給する。同様に、イエローサブチャンネル834は、イエローピットエリア46へ供給し、イエローピットエリアはイエローバイア847,848へ供給する。 Similarly, the cyan ink in the cyan subchannel 833 flows into the cyan pit area 849, which supplies the ink to the two cyan vias 843, 844. Similarly, the yellow sub-channel 834 supplies to the yellow pit area 46, and the yellow pit area supplies to the yellow vias 847 and 848.

図210に示されるように、プリントヘッドは、プリントヘッドスロット850に収容できるように設計され、種々のバイア、例えば、851は、プリントヘッドウェハー内で対応したスルーホール、例えば、851と揃えられる。 As shown in FIG. 210, the printhead is designed to be accommodated in a printhead slot 850, and various vias, eg, 851, are aligned with corresponding through-holes, eg, 851, in the printhead wafer.

図206に戻ると、適切なインクがプリントヘッドチップ44の全体へ流れ、同時に、射出成形プロセスの制約を満たすように注意すべきである。プリントヘッドチップの裏側にあるインクスルーウェハーホール812のサイズは、約100μm×50μmであり、異なる色のインクを運ぶスルーホールの隙間は約170μmである。このサイズの形状は容易にプラスチック成形でき(コンパクトディスクはミクロンサイズの形状である)、理想的には壁の高さは、適当なスティフネスを維持するため、壁の厚さの数倍を超えてはならない。好適な実施形態は、少しずつ小さくなるインクチャンネルの階層構造を使用することによってこの問題を解決している。 Returning to FIG. 206, care should be taken to ensure that the appropriate ink flows throughout the printhead chip 44 and at the same time meets the constraints of the injection molding process. The size of the ink through wafer hole 812 on the back side of the print head chip is about 100 μm × 50 μm, and the gap between the through holes carrying different color inks is about 170 μm. Shapes of this size can be easily plastic molded (compact discs are of micron size) and ideally the wall height is more than several times the wall thickness to maintain proper stiffness Must not. The preferred embodiment solves this problem by using a progressively smaller ink channel hierarchy.

図211には、プリントヘッド44の表面の小部分870が示されている。表面は、シアン系列871、マゼンタ系列872、及びイエロー系列873からなる3系列のノズルに分割される。ノズルの各系列は、更に、2列、例えば、875、876に分割され、プリントヘッド44は、電源及び制御信号を接合する接合パッド878の系列を含む。 In FIG. 211, a small portion 870 of the surface of the print head 44 is shown. The surface is divided into three series of nozzles composed of a cyan series 871, a magenta series 872, and a yellow series 873. Each series of nozzles is further divided into two rows, eg, 875, 876, and the printhead 44 includes a series of bond pads 878 that bond power and control signals.

プリントヘッドは、好ましくは、Artcam装置を含む用途のため創作された非常に多数のインクジェットの異なる形態に応じて構築される。これらのインクジェット装置は以下で詳述される。 The printhead is preferably constructed according to a very large number of different forms of inkjet created for applications involving Artcam devices. These inkjet devices are described in detail below.

プリントヘッドノズルは、図206の異方性エッチホール812と同等のインク供給チャンネル880を含む。インクは、ウェハーの裏側から、供給チャンネル881を通り、次に、フィルタグリル882を通り、インクノズルチャンバー、例えば、883へ流れる。ノズルチャンバー883及びプリントヘッド44(図1)の動作は、既に説明した通りであり、上述の特許明細書に記載されている。 The printhead nozzle includes an ink supply channel 880 that is equivalent to the anisotropic etch hole 812 of FIG. Ink flows from the back side of the wafer through supply channel 881 and then through filter grill 882 to an ink nozzle chamber, eg, 883. The operation of the nozzle chamber 883 and the print head 44 (FIG. 1) is as described above and is described in the above-mentioned patent specification.

インクチャンネル流体フロー解析
次に、インクフローの解析を説明すると、メインインクチャンネル826、827、830、831(図207、図141)は、約1mm×1mmであり、1色の全てのノズルに供給する。サブチャンネル833、834、838、839(図209)は約200μm×100μmであり、一つが約25のインクジェットノズルへ供給する。プリントヘッドスルーホール843、844、847、848及びウェハースルーホール、例えば、881(図221)は、100μm×50μmであり、プリントヘッドスルーホールのそれぞれの側で3個のノズルに供給する。各ノズルフィルタ882は8スリットを有し、各スリットは20μm×2μmの面積を有し、一つのノズルに供給する。
Ink Channel Fluid Flow Analysis Next, the ink flow analysis will be described. The main ink channels 826, 827, 830, and 831 (FIGS. 207 and 141) are about 1 mm × 1 mm and are supplied to all nozzles of one color. To do. The subchannels 833, 834, 838, and 839 (FIG. 209) are about 200 μm × 100 μm, and one feeds to about 25 inkjet nozzles. Print head through holes 843, 844, 847, 848 and wafer through holes, for example 881 (FIG. 221), are 100 μm × 50 μm and feed to three nozzles on each side of the print head through hole. Each nozzle filter 882 has 8 slits, and each slit has an area of 20 μm × 2 μm and is supplied to one nozzle.

上記のように構成されたインクジェットプリンタの圧力必要条件の解析を行った。解析は、写真印刷用の1600dpiの3色プロセスプリントヘッドに対するものである。プリント幅は100mmであり、1色毎に6250のノズルがあり、全部で18750のノズルがある。 The pressure requirements of the inkjet printer configured as described above were analyzed. The analysis is for a 1600 dpi 3-color process printhead for photo printing. The print width is 100 mm, there are 6250 nozzles for each color, and a total of 18750 nozzles.

フルブラック印刷の場合に種々のチャンネルで必要な最大インク流速が重要である。これは、インクチャンネルに沿った圧力降下を決定し、したがって、プリントヘッドが表面張力だけで充満した状態を保つかどうか、保てない場合に、プリントヘッドを充満した状態に保つために必要なインク圧を決定する。 For full black printing, the maximum ink flow rate required for the various channels is important. This determines the pressure drop along the ink channel and, therefore, whether or not the printhead is filled with surface tension alone, and if not, the ink needed to keep the printhead full Determine the pressure.

圧力降下を計算するため、1600dpi動作に対して2.5pIのドロップボリュームを利用した。ノズルはもっと高速に動作する能力を備えているが、選択されたドロップ繰り返しレートは5kHzであり、これは、150mm長さの写真を2秒以内に印刷するために適当である。このようにして、極端なケースでは、プリントヘッドは、18750ノズルを有し、すべてが毎秒最大5000ドロップで印刷をする。このインクフローは、インクチャンネルの階層構造全体に広がる。各インクチャンネルは、全てのノズルが印刷をしているとき、事実上、一定数のノズルに供給する。 To calculate the pressure drop, a 2.5 pI drop volume was utilized for 1600 dpi operation. The nozzle has the ability to operate faster, but the selected drop repetition rate is 5 kHz, which is appropriate for printing 150 mm long photos within 2 seconds. Thus, in extreme cases, the printhead has 18750 nozzles, all printing at a maximum of 5000 drops per second. This ink flow spreads throughout the ink channel hierarchy. Each ink channel effectively supplies a fixed number of nozzles when all nozzles are printing.

圧力降下Δρは、Darcy−Weisbach式に従って計算した:
Δρ=ρUfL/2D
ここで、ρはインクの密度であり、Uは平均流速であり、Lは長さであり、Dは水力直径であり、fは無次元摩擦係数であり、以下の式で計算した:
f=κ/Re
ここで、Reはレイノルズ数であり、κは、チャンネルの断面積に依存する無次元摩擦係数であり、以下の式で計算した:
Re=UD/ν
ここで、νはインクの運動学的粘性である。
The pressure drop Δρ was calculated according to the Darcy-Weisbach equation:
Δρ = ρU 2 fL / 2D
Where ρ is the density of the ink, U is the average flow velocity, L is the length, D is the hydraulic diameter, f is the dimensionless coefficient of friction, calculated with the following formula:
f = κ / Re
Where Re is the Reynolds number and κ is a dimensionless friction coefficient that depends on the cross-sectional area of the channel, calculated with the following formula:
Re = UD / ν
Where ν is the kinematic viscosity of the ink.

矩形断面の場合、κは、
κ=64/(2/3+(11b/24a)(11b/24a)(2−b/a))
によって近似できる。
For rectangular sections, κ is
κ = 64 / (2/3 + (11b / 24a) (11b / 24a) (2-b / a))
Can be approximated by

式中、aは矩形断面の長辺であり、bは短辺である。矩形断面に対する水力直径Dは、
D=2ab/(a+b)
によって与えられる。
In the formula, a is the long side of the rectangular cross section, and b is the short side. The hydraulic diameter D for a rectangular cross section is
D = 2ab / (a + b)
Given by.

インクは、チャンネルの長手方向の250点でメインインクチャンネルから抜かれた。インク粘性はチャンネルの先端から線形に降下し、チャンネルの終端で0まで降下するので、平均流速Uは最大流速の半分である。したがって、メインインクチャンネルに沿った圧力降下は、最大流速を用いて計算した圧力降下の半分である。 Ink was removed from the main ink channel at 250 points along the length of the channel. Since the ink viscosity drops linearly from the tip of the channel and drops to zero at the end of the channel, the average flow rate U is half the maximum flow rate. Thus, the pressure drop along the main ink channel is half of the pressure drop calculated using the maximum flow rate.

これらの式を利用して、圧力降下を計算することにより、次の表が得られた。 The following table was obtained by calculating the pressure drop using these equations.

インクチャンネル寸法と圧力降下の表 Ink channel dimensions and pressure drop table

Figure 0004309954
インクインレットからノズルまでの総圧力降下は、したがって、シアン及びイエローに関して約701Paであり、マゼンタに関して845Paである。これは、大気圧の1%未満である。勿論、印刷された画像がフルブラック未満の場合、インクフロー(したがって、圧力降下)はこれらの値よりも低下するであろう。
Figure 0004309954
The total pressure drop from the ink inlet to the nozzle is therefore about 701 Pa for cyan and yellow and 845 Pa for magenta. This is less than 1% of atmospheric pressure. Of course, if the printed image is less than full black, the ink flow (and hence the pressure drop) will drop below these values.

インクヘッド供給ユニット用の金型製作
インクヘッド供給ユニット14(図1)は50μの外形と106mmの長さがある。射出成形ツールを従来の方法で加工することは実施不可能である。しかし、全体的な形状が複雑であるとしても、複雑な曲線は不要である。射出成形ツールは、メインインクチャンネル及びその他のミリメートルスケールの形状については従来のミリングを使用して製作可能であり、精細な形状はリソグラフ的に製作されたインセットを用いる。LIGAプロセスをインセットのために使用できる。
Mold Production for Ink Head Supply Unit The ink head supply unit 14 (FIG. 1) has an outer shape of 50 μm and a length of 106 mm. It is not feasible to process the injection molding tool in a conventional manner. However, even if the overall shape is complex, complex curves are not necessary. Injection molding tools can be manufactured using conventional milling for main ink channels and other millimeter scale shapes, and fine shapes use lithographically produced insets. The LIGA process can be used for inset.

単一の射出成形ツールは、簡単に50以上のキャビティを含む。ツールの複雑さの殆どはインセットにある。 A single injection molding tool simply includes more than 50 cavities. Most of the complexity of the tool is inset.

図206を参照すると、印刷システムはインク供給ユニット814及び蓋815を一体的に成形し、上述のようにそれらを一体的にシーリングする。次に、プリントヘッド44が対応したスロット850に設置される。粘着性シーリングストリップ852、853がマゼンタメインチャンネル上に置かれ、それらが適切にシールされることを保証する。テープ自動ボンディング(TAB)ストリップ810がインクジェットプリントヘッド44に接続され、タブボンディングワイヤはキャビティ855内に通る。図206、図207及び図212からよく分かるように、アパーチャスロット855から862は、ローラーの挿入の際のスナップのために設けられる。スロットは、ある程度の遊びをもってローラーを「クリッピングイン」し、次に、ローラーを容易に回転させる。 Referring to FIG. 206, the printing system integrally molds ink supply unit 814 and lid 815 and seals them together as described above. Next, the print head 44 is installed in the corresponding slot 850. Adhesive sealing strips 852, 853 are placed on the magenta main channel to ensure that they are properly sealed. A tape automatic bonding (TAB) strip 810 is connected to the inkjet printhead 44 and the tab bonding wire passes into the cavity 855. As can be seen from FIGS. 206, 207 and 212, aperture slots 855 to 862 are provided for snapping upon roller insertion. The slot “clipping in” the roller with some play and then easily rotates the roller.

図213から図217には、最終的に組み立てられたArtcam装置の内部の様々な斜視図が示され、装置には適当な番号が付されている:
・図213は、Artcamカメラの内部の上面側の斜視図であり、平らにされた部品が示されている;
・図214は、Artcamカメラの内部の底面側の斜視図であり、平らにされた部品が示されている;
・図215は、Artcamカメラの内部の第1の上面側の斜視図であり、Artcamに収容された部品が示されている;
・図216は、Artcamカメラの内部の第2の上面側の斜視図であり、Artcamに収容された部品が示されている;
・図217は、Artcamカメラの内部の第2の上面側の斜視図であり、Artcamに収容された部品が示されている。
213 to 217 show various perspective views of the interior of the finally assembled Artcam device, with the devices numbered appropriately:
FIG. 213 is a top perspective view of the interior of the Artcam camera showing the flattened parts;
FIG. 214 is a perspective view of the bottom side inside the Artcam camera showing the flattened parts;
FIG. 215 is a perspective view of the first top side inside the Artcam camera, showing the components housed in the Artcam;
FIG. 216 is a perspective view of the second top side inside the Artcam camera, showing the components housed in the Artcam;
FIG. 217 is a perspective view of the second upper surface side inside the Artcam camera, and shows components housed in the Artcam.

ポストカードプリントロール
図218を参照すると、好適な実施形態の一形態として、出力プリンタ用紙11は、画像が印刷されない面に、多数のプレ印刷された「ポストカード」型裏書き部分885を含む。ポストカード型セクション885は、プリペイド式郵便料金「スタンプ」886を含み、この「スタンプ」886は、関連した郵便当局からの印刷された認証により構成され、その当局の管轄区域内で、そのプリントロールが販売若しくは利用される。関連した管轄区域の郵便当局との合意によって、プリントロールは様々な郵便料金を利用できる。これは、特に、外国からの旅行者が国内の管轄内にいて、自国へ多数のポストカードを送る場合に便利である。更に、住所書式部分887が設けられ、通常のポストカードの形式で宛先発送の詳細を記入できる。最後に、メッセージ領域887が設けられ、私信を記入することができる。
Postcard Print Roll Referring to FIG. 218, in one preferred embodiment, the output printer paper 11 includes a number of pre-printed “postcard” type endorsing portions 885 on the non-image printed side. The postcard-type section 885 includes a prepaid postage “stamp” 886, which consists of a printed certificate from the relevant postal authority and within its jurisdiction its print roll. Are sold or used. Depending on the agreement with the relevant jurisdiction's postal authorities, print rolls can use various postage charges. This is particularly useful when a foreign traveler is within the jurisdiction of the country and sends a large number of postcards to the home country. In addition, an address form portion 887 is provided to provide details of the destination shipment in the form of a normal postcard. Finally, a message area 887 is provided where a personal message can be entered.

図218及び図219を参照して、カメラ装置の動作を説明すると、一連の画像890から892がプリントロールの第1面に印刷されたときの、対応した裏書き面が図218に示されている。したがって、各画像、例えば、891がカメラによって印刷されると、画像の裏面は、既にポストカード885になっているので、直ちに、管轄区域内の最も近い郵便ポストへ投函することができる。このように、パーソナル化されたポストカードを作成することができる。 The operation of the camera apparatus will be described with reference to FIGS. 218 and 219. FIG. 218 shows the corresponding end face when a series of images 890 to 892 are printed on the first side of the print roll. Yes. Thus, as each image, eg 891, is printed by the camera, the back side of the image is already a postcard 885 and can be immediately posted to the nearest postbox in the jurisdiction. In this way, a personalized postcard can be created.

図219及び図220に示されるようなポストカードシステムを利用するとき、予め定められた画像サイズだけが可能であることは明白である。なぜならば、裏面のポストカード部分885と、表面の画像891との対応関係を維持しなければならないからである。これは、各ポストカードの裏書き書式シート885の長さの詳細を記憶するためプリントロール内に収容された認証チップのメモリ部分を利用することによって実現される。これは、各ポストカードのサイズを同じサイズにすること、又はそれぞれのサイズをプリントロールのオンボードプリントチップメモリに格納することによっても実現される。 Obviously, only a predetermined image size is possible when utilizing a postcard system as shown in FIGS. 219 and 220. This is because the correspondence between the postcard portion 885 on the back surface and the image 891 on the front surface must be maintained. This is accomplished by utilizing the memory portion of the authentication chip housed in the print roll to store details of the length of each postcard endorsement form sheet 885. This can also be achieved by making each postcard the same size, or storing each size in the on-board print chip memory of the print roll.

Artcamカメラ制御システムは、予め書式化されたポストカードを利用するとき、プリントロールは、各画像がポストカードの境界に収まるように画像を印刷するためだけに使用されることを保証することができる。勿論、多少の位置合わせ誤差を考慮できるように境界領域を各写真のエッジに設けることによってある程度の「遊び」が与えられる。 When the Artcam camera control system utilizes pre-formatted postcards, the print roll can ensure that each image is only used to print images so that they fit within the postcard boundaries. . Of course, a certain amount of “play” is provided by providing a border region at the edge of each photo so that some alignment errors can be taken into account.

図220から明らかであるように、ポストカードロールは、それを利用可能な特定の管轄区域内に旅行するとき、カメラユーザが事前に購入できる。ポストカードロールは、その外面に、購入国、各ポストカードの郵便料金、各ポストカードのフォーマット(例えば、C、H、P、又はこれらの画像モードの組み合わせ)、使用するのに適した国名、及びその日以降に郵便料金が不足になるかもしれない郵便料金期限を含む情報が印刷されている。 As is apparent from FIG. 220, the postcard roll can be pre-purchased by the camera user when traveling within the specific jurisdiction where it is available. The postcard roll has on its outer surface the country of purchase, the postage of each postcard, the format of each postcard (eg C, H, P, or a combination of these image modes), the country name suitable for use, And information including postage deadlines that may result in a postage shortage after that date.

したがって、カメラ装置のユーザは、関連したシーンに向けられた自分のハンドヘルドカメラを利用して、写真を撮影して、その画像が一方の面に掲載され、もう一方の面にはプリペイド式ポストカードの詳細が記載されている郵便で発送するためのポストカードを製作することが可能である。次に、このポストカードに宛先を指定し、短いメッセージを記入し、その後、直ぐに郵便で発送することができる。 Thus, the user of the camera device uses his handheld camera directed to the relevant scene, takes a picture, the image is posted on one side, and the prepaid postcard on the other side It is possible to produce a postcard for shipping by mail with the details of. The postcard can then be addressed, a short message can be written, and then mailed out immediately.

Artcam装置のソフトウェア動作に関して、種々のソフトウェア設計が可能であるが、ある設計では、各Artcam装置は、1組の緩く結合した機能モジュールにより構成され、これらの機能モジュールは、一つの埋め込み型アプリケーションによって連係した形で利用できるようにされ、装置の中心目的のために機能する。機能モジュールは、様々なクラスのArtcam装置において、異なる組み合わせで再使用され、アプリケーションはArtcamのクラスに特有である。 Various software designs are possible with respect to the software operation of the Artcam device, but in one design, each Artcam device is composed of a set of loosely coupled functional modules, which can be represented by a single embedded application. Made available in linked form and serves for the central purpose of the device. Functional modules are reused in different combinations on different classes of Artcam devices, and applications are specific to the Artcam class.

殆どの機能モジュールは、ソフトウェアとハードウェアの両方のコンポーネントを含む。ソフトウェアは、ハードウェア抽象化レイヤによって、ハードウェアの細部からシールドされ、一方、モジュールのユーザは、抽象化ソフトウェアインタフェースによってソフトウェアインプリメンテーションからシールドされている。システムは、全体として、ユーザ始動、及びハードウェア始動のイベントによって駆動されるので、殆どのモジュールは、一つ以上の同期的なイベント駆動型プロセスを動かすことができる。 Most functional modules include both software and hardware components. The software is shielded from hardware details by the hardware abstraction layer, while the user of the module is shielded from the software implementation by the abstract software interface. Since the system as a whole is driven by user-initiated and hardware-initiated events, most modules can run one or more synchronous event-driven processes.

一般的なArtcam装置を構成する殆どの重要なモジュールが図221に示されている。同図及びその後の図には、ソフトウェアコンポーネントが左側にsめされ、垂直点線901によって右側のハードウェアコンポーネントから分離されている。これらのモジュールのソフトウェアの面を次に説明する。 The most important modules that make up a typical Artcam device are shown in FIG. In this figure and subsequent figures, the software component is shown on the left side and separated from the right side hardware component by a vertical dotted line 901. The software aspects of these modules are described next.

ソフトウェアモジュール−Artcamアプリケーション902
ArtcamアプリケーションはArtcam装置の上位レベル機能を実現する。これは、通常、像の撮影、像に対する芸術的効果の適用、及び像の印刷を含む。カメラ指向のArtcam装置の場合、画像は、カメラマネージャ903によって捕捉される。プリンタ指向のArtcam装置の場合、画像は、ネットワークマネージャ904によって捕捉され、おそらく、この画像は他の装置によって送出された結果物である。
Software Module-Artcam Application 902
The Artcam application implements the higher level functionality of the Artcam device. This usually involves taking an image, applying an artistic effect to the image, and printing the image. In the case of a camera-oriented Artcam device, the image is captured by the camera manager 903. In the case of a printer-oriented Artcam device, the image is captured by the network manager 904, which is probably the result sent by another device.

芸術的効果は、ファイルマネージャ905によって管理される統合ファイルシステム内で行われる。芸術的効果は、スクリプトファイルとリソースのセット途により構成される。スクリプトは、画像処理マネージャ906によって翻訳され、画像に適用される。スクリプトは、通常、Artcardとして知られているArtCardsで出荷される。デフォルトとして、システムは、現在搭載されているArtcardに格納されているスクリプトを使用する。 The artistic effect takes place within an integrated file system managed by the file manager 905. An artistic effect consists of a script file and a set of resources. The script is translated by the image processing manager 906 and applied to the image. Scripts are typically shipped at ArtCards, known as Artcard. As a default, the system uses a script stored in the currently installed Artcard.

画像はプリントマネージャ908によって印刷される。 The image is printed by the print manager 908.

Artcam装置がスタートアップしたとき、ブートストラッププロセスが、アプリケーションを開始する前に種々のマネージャプロセスを始動する。これにより、アプリケーションは、スタートしたときに、直ちに様々なマネージャからのサービスを要求できる。 When the Artcam device starts up, the bootstrap process starts various manager processes before starting the application. This allows applications to request services from various managers as soon as they start.

初期化後、アプリケーション902は、それ自体を以下に列挙されたイベントのハンドラーとして登録する。アプリケーションはイベントを受け取ったとき、表に記載された動作を実行する。 After initialization, the application 902 registers itself as a handler for the events listed below. When an application receives an event, it performs the actions listed in the table.

Figure 0004309954
カメラがディスプレイを含むとき、アプリケーションはユーザインタフェースマネージャ910によってグラフィカルユーザインタフェースを構築し、ユーザは現在日時、及びその他の編集可能なカメラパラメータを編集できるようになる。アプリケーションは、全ての常駐パラメータをフラッシュメモリに保存する。
Figure 0004309954
When the camera includes a display, the application builds a graphical user interface with the user interface manager 910, allowing the user to edit the current date and time and other editable camera parameters. The application saves all resident parameters in flash memory.

リアルタイムマイクロカーネル911
リアルタイムマイクロカーネルは、割込とプロセス優先順位に基づいて、予めプロセスをスケジューリングする。それは、プロセススケジューリングに非常に密接している統合プロセス間通信及びタイマーサービスを提供する。全ての他のオペレーティングシステム機能はマイクロカーネルの外部で行われる。
Real-time microkernel 911
The real-time microkernel schedules processes in advance based on interrupts and process priorities. It provides an integrated interprocess communication and timer service that is very close to process scheduling. All other operating system functions are performed outside the microkernel.

カメラマネージャ903
カメラマネージャは、画像捕捉(撮像)サービスを提供する。それは、Artcamに組み込まれたカメラハードウェアを制御する。それは、抽象的カメラ制御インタフェースを提供し、カメラパラメータの問い合わせ及び設定、画像捕捉を可能にさせる。この抽象的インタフェースは、アプリケーションを他のカメラインプリメンテーションの細部から切り離す。カメラマネージャは以下の入力/出力パラメータ及びコマンドを利用する。
Camera manager 903
The camera manager provides an image capture (imaging) service. It controls the camera hardware built into Artcam. It provides an abstract camera control interface and allows querying and setting of camera parameters and image capture. This abstract interface separates the application from the details of other camera implementations. The camera manager uses the following input / output parameters and commands.

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
カメラマネージャは、非同期イベント駆動型プロセスとして動く。それは、連結された状態機械の組を含み、各状態機械は一つの非同期オペレーションに対応する。それらは、オートフォーカス、フラッシュ充電、セルフタイマのカウントダウン、及び像の撮影を含む。初期化時、カメラマネージャはカメラハードウェアを既知状態にセットする。これは、通常の焦点距離の設定、及びズームの戻しを含む。カメラマネージャのソフトウェア構造は、図222に示されている。ソフトウェアコンポーネントは以下のサブセクションに記載されている。
Figure 0004309954
The camera manager runs as an asynchronous event driven process. It includes a set of linked state machines, each state machine corresponding to one asynchronous operation. They include autofocus, flash charging, self-timer countdown, and image taking. At initialization, the camera manager sets the camera hardware to a known state. This includes normal focal length setting and zoom back. The software structure of the camera manager is shown in FIG. Software components are described in the following subsections.

フォーカス固定913
ロックフォーカスは、フォーカス制御モード、露出制御モード、及びフラッシュモードに応じて、現在シーンに対して自動的にフォーカスと露出を調整し、必要に応じてフラッシュを動作可能状態にする。ロックフォーカスは、通常、ユーザが撮影ボタンを半押しすることによって始動される。これは、正常な像撮影シーケンスの一部であるが、ユーザが撮影ボタンを半押しのままにした場合、時間的に、実際の像の撮影からは分離される。これは、ユーザがスポットフォーかシング及びスポット測距をできるようにする。
Focus fixed 913
Lock focus automatically adjusts the focus and exposure for the current scene according to the focus control mode, exposure control mode, and flash mode, and makes the flash operable when necessary. The lock focus is usually started when the user presses the shooting button halfway. This is part of the normal image capture sequence, but is separated from actual image capture in time if the user keeps the capture button pressed halfway. This allows the user to perform spot forcing and spot ranging.

撮影914
撮影(像捕捉)は、現在シーンの像を撮影する。フラッシュモードがレッドアイ除去を含む場合、レッドアイランプを点灯し、シャッターを制御し、動作可能状態であれば、フラッシュをトリガーし、イメージセンサによって像を検知する。それは、カメラの向き、即ち、撮影像の向きを判定し、これにより、後の画像処理で、像は適切に向きを決められる。また、それは、後の画像処理中にブラーを取り除くため、撮像中にカメラの動きの有無を検出する。
Shooting 914
Shooting (image capture) captures an image of the current scene. When the flash mode includes red eye removal, the red eye lamp is turned on, the shutter is controlled, and if it is operable, the flash is triggered and the image is detected by the image sensor. It determines the orientation of the camera, that is, the orientation of the captured image, so that the image can be properly oriented in subsequent image processing. It also detects the presence or absence of camera movement during imaging in order to remove blur during subsequent image processing.

セルフタイム撮影915
セルフタイム撮影は、20秒タイマーのカウントダウン後に、現在シーンの像を撮影する。これは、カウントダウン中に、セルフタイマーLEDを用いて、ユーザにフィードバックを与える。最初の15秒間に、それは、LEDを点灯できる。最後の5秒間にLEDは点滅する。
Self-time shooting 915
In self-time shooting, an image of the current scene is shot after a countdown of a 20-second timer. This provides feedback to the user using a self-timer LED during the countdown. In the first 15 seconds it can turn on the LED. The LED blinks in the last 5 seconds.

ビューシーン917
ビューシーンは、周期的に、イメージセンサを通して現在シーンを検知し、そのシーンをカラーLCDに表示させ、ユーザにLCDベースのビューファインダーを提供する。
View scene 917
The view scene periodically senses the current scene through an image sensor, displays the scene on a color LCD, and provides the user with an LCD-based viewfinder.

オートフォーカス918
オードフォーカスは、像の選択された領域が焦点が合っていると言えるまで十分に鮮明になるまで、焦点距離を変化させる。それは、イメージセンサの指定された領域から抽出された画像鮮明さメトリックが固定の閾値を超えた場合に領域の焦点が合うということを前提とする。それは、鮮明さの微分に関する勾配降下法を実行し、必要に応じて方向及びステップサイズを変えることによって、最適焦点距離を見つける。焦点制御モードがマルチポイントオートであるならば、視野全体に水平に配置された3個の領域が使用される。焦点制御モードがシングルポイントオートであるならば、視野の中心にある一つの領域が使用される。オートフォーカスは、フォーカスコントローラによって指定された有効焦点距離の範囲内で機能する。固定焦点装置の場合、これは、事実上、無効にされる。
Autofocus 918
Autofocus changes the focal length until the selected area of the image is sharp enough to be said to be in focus. It presupposes that the region is in focus when the image sharpness metric extracted from the specified region of the image sensor exceeds a fixed threshold. It performs a gradient descent method on the sharpness differentiation and finds the optimal focal length by changing direction and step size as needed. If the focus control mode is multi-point auto, three areas arranged horizontally across the field of view are used. If the focus control mode is single point auto, one region in the center of the field of view is used. Autofocus functions within the effective focal length specified by the focus controller. In the case of fixed focus devices, this is effectively disabled.

オートフラッシュ919
オートフラッシュは、シーンの照度がフラッシュを必要とする程度に薄暗いかどうかを判定する。これは、シーンの照度が所定の閾値以下であるならば、照度が十分に薄暗いとみなす。シーンの照度は、照度センサから獲得され、照度センサはイメージセンサの中央領域から照度メトリックを抽出する。フラッシュが必要であれば、フラッシュを充電する。
Auto flash 919
Autoflash determines if the scene illuminance is dim enough to require a flash. This assumes that the illuminance is sufficiently dim if the illuminance of the scene is below a predetermined threshold. The illuminance of the scene is obtained from the illuminance sensor, which extracts the illuminance metric from the central area of the image sensor. If a flash is needed, charge the flash.

自動露出920
シーン照度、絞り、および、シャッター速度は、撮影像の露出を決定する。望ましい露出は固定値である。露出制御モードがオートであるならば、自動露出は、所定のシーン照度に対して望ましい露出を生じる絞りとシャッター速度の組み合わせを決定する。露出制御モードが絞り優先であるならば、自動露出は、所定のシーン照度及び現在の絞りに対して望ましい露出を生じるシャッター速度を決める。露出制御モードがシャッター優先であるならば、自動露出は、所定のシーン照度及び現在のシャッター速度に対して望ましい露出を生じる絞りを決める。シーン照度は照度センサから取得され、照度センサはイメージセンサの中央領域から照度メトリックを抽出する。
Automatic exposure 920
The scene illuminance, aperture, and shutter speed determine the exposure of the captured image. The desired exposure is a fixed value. If the exposure control mode is auto, automatic exposure determines the combination of aperture and shutter speed that produces the desired exposure for a given scene illuminance. If the exposure control mode is aperture priority, automatic exposure determines the shutter speed that produces the desired exposure for a given scene illuminance and current aperture. If the exposure control mode is shutter priority, automatic exposure determines the aperture that produces the desired exposure for a given scene illuminance and current shutter speed. The scene illuminance is acquired from the illuminance sensor, and the illuminance sensor extracts an illuminance metric from the central area of the image sensor.

自動露出は、絞りコントローラ及びシャッター速度コントローラによって指定された有効絞り及びシャッター速度の範囲内で機能する。シャッター速度コントローラ及びシャッターコントローラは、殆どのArtcam装置では機械的シャッターの無いことを隠す。 Automatic exposure functions within the effective aperture and shutter speed ranges specified by the aperture controller and shutter speed controller. The shutter speed controller and shutter controller hide the lack of a mechanical shutter in most Artcam devices.

フラッシュが、マニュアル又はオートで有効にされている場合、実効的なシャッター速度はフラッシュの間隔であり、これは、典型的に、1/1000秒から1/10000秒である。 If the flash is enabled manually or auto, the effective shutter speed is the flash interval, which is typically 1/1000 second to 1/10000 second.

画像処理マネージャ906(図221)
画像処理マネージャは、画像処理と芸術的効果サービスを提供する。これは、高速画像処理を実行するためArtcamに組み込まれたVLIWベクトルプロセッサを利用する。画像処理マネージャは、Vark画像処理言語で記述されたスクリプト用のインタープリタを具備する。したがって、芸術的効果は、Varkスクリプトファイルと、フォント、クリップ画像のような関連したリソースと、を含む。画像処理マネージャのソフトウェア構造は図223により詳細に示され、以下のモジュールを含む。
Image processing manager 906 (FIG. 221)
The image processing manager provides image processing and artistic effect services. This utilizes a VLIW vector processor built into Artcam to perform high speed image processing. The image processing manager includes an interpreter for a script written in the Vark image processing language. Thus, artistic effects include Vark script files and associated resources such as fonts and clip images. The image processing manager software structure is shown in more detail in FIG. 223 and includes the following modules:

画像の変換及び強調921
画像処理マネージャは、装置に依存しないCIE LAB色空間において、Artcamプリンタハードウェアの生成能力に適した解像度で、画像処理を実行する。撮影された像は、最初に、ノイズをフィルタ処理して強調される。それは、オプションとして、動きによって生じたブラー効果を取り除くために行われる。画像は、次に、装置に依存したRGB色空間から、CIE
LAB色空間へ変換される。像は、撮影時のカメラ回転の影響を相殺するため回転させられ、作業用画像解像度へスケール変換される。画像は、そのダイナミックレンジを利用可能なダイナミックレンジへスケーリングすることによって強調される。
Image conversion and enhancement 921
The image processing manager executes image processing in a CIE LAB color space that is device independent, at a resolution suitable for the generation capability of the Artcam printer hardware. The captured image is first enhanced by filtering the noise. It is optionally done to remove the blur effect caused by the movement. The image is then extracted from the device dependent RGB color space from the CIE.
Converted to LAB color space. The image is rotated to cancel the effects of camera rotation during shooting and scaled to work image resolution. The image is enhanced by scaling its dynamic range to an available dynamic range.

顔検出923
顔は、色相及び局部的特徴解析に基づいて撮影された像内で検出される。検出された顔領域のリストは、ワーピング及び吹き出しの配置のような顔専用効果を適用するためVarkスクリプトによって使用される。
Face detection 923
Faces are detected in images taken based on hue and local feature analysis. The list of detected face regions is used by the Vark script to apply face-only effects such as warping and balloon placement.

Vark画像処理言語インタープリタ924
Varkは、豊富な画像処理のセットで拡張された汎用プログラミング言語を含む。それは、プリミティブデータタイプの範囲(整数、実数、ブール、文字)、より複雑なタイプを構築するための集合データタイプの範囲(配列、文字列、レコード)、算術演算及び論理演算の豊富な組、条件付き及び反復制御フロー(if−then−else、while−do)、及び再帰的関数及び手続を提供する。また、それは、画像処理データタイプの範囲(画像、クリップ画像、マット、カラー、カラールックアップテーブル、パレット、ディザ行列、コンボリューションカーネル、等)、グラフィックデータタイプ(フォント、テキスト、パス)、画像処理関数の組(カラー変換、コンポジット処理、フィルタ処理、空間変換及びワーピング、イルミネーション、テキスト設定及びレンダリング)、及び上位レベルの芸術的関数の組(タイリング、ペインティング、及びストローキング)を提供する。
Vark image processing language interpreter 924
Vark includes a general purpose programming language that is extended with a rich set of image processing. It includes a range of primitive data types (integer, real, Boolean, character), a range of aggregate data types (arrays, strings, records) to build more complex types, a rich set of arithmetic and logical operations, Provides conditional and iterative control flows (if-then-else, while-do), and recursive functions and procedures. It also covers a range of image processing data types (image, clip image, matte, color, color lookup table, palette, dither matrix, convolution kernel, etc.), graphic data type (font, text, path), image processing It provides a set of functions (color conversion, composite processing, filtering, spatial conversion and warping, illumination, text setting and rendering), and a set of high-level artistic functions (tiling, painting, and stroking).

Varkプログラムは二つの意味でポータブルである。それは、インタープリットされるので、CPU及びホストの画像処理エンジンに依存しない。装置に依存しないモデル空間及び装置に依存しない色空間を使用するので、それは、入力色特性、ホスト入力装置の解像度、出力色特性、及びホスト出力装置の解像度に依存しない。 The Vark program is portable in two ways. Since it is interpreted, it does not depend on the CPU and host image processing engine. Since a device-independent model space and device-independent color space are used, it is independent of input color characteristics, host input device resolution, output color properties, and host output device resolution.

Varkインタープリタ924は、Varkスクリプトを構成するソースステートメントを解析し、そのスクリプトの意味を表現するパースツリーを生成する。パースツリーのノードは、プログラムのステートメント、エクスプレッション、サブエクスプレッション、変数、及び定数に対応する。ルートノードはメインプロシジャーステートメントリストに対応する。このインタープリタは、パースツリーのルートステートメントを実行することにより、プログラムを実行する。パースツリーの各ノードはその子にそれ自体を適切に評価又は実行するように要求する。例えば、ifステートメントノードは、条件表現ノードと、thenステートメントノードと、elseステートメントノードの三つの子を持つ。ifステートメントは、条件表現ノードに、それ自体を評価し、返されたブール値に基づいて、thenステートメント又はelseステートメントにそれ自体を実行させる。それは、実際の条件表現又は実際のステートメントは知らない。 The Vark interpreter 924 analyzes the source statements constituting the Vark script and generates a parse tree that expresses the meaning of the script. Parse tree nodes correspond to program statements, expressions, sub-expressions, variables, and constants. The root node corresponds to the main procedure statement list. The interpreter executes the program by executing the root statement of the parse tree. Each node in the parse tree requires its children to evaluate or execute itself appropriately. For example, the if statement node has three children: a conditional expression node, a then statement node, and an else statement node. The if statement causes the conditional expression node to evaluate itself and cause the then or else statement to execute itself based on the returned Boolean value. It does not know the actual conditional expression or the actual statement.

殆どのデータタイプの演算はパースツリーの実行中に行われるが、画像データタイプの演算は、パースツリーの実行後まで、延期される。これにより、画像演算が最適化され、最終的な画像に寄与する中間画素だけが計算される。これは、最終画像を、空間細分によって多数のパスで計算することを可能にさせ、これにより、必要なメモリ量を減少させる。 Most data type operations are performed during the parse tree execution, but image data type operations are postponed until after the parse tree execution. This optimizes the image operation and only the intermediate pixels that contribute to the final image are calculated. This allows the final image to be calculated in multiple passes with spatial subdivision, thereby reducing the amount of memory required.

パースツリーの実行中に、各画像関数は画像グラフを返すだけであり、この画像グラフは、ノードが画像オペレータを表し、リーフが画像を表すものであり、対応した画像オペレータをルートとし、その画像パラメータをルートの子とすることによって構築される。画像パラメータは勿論それ自体が画像グラフである。このようにして、それぞれの逐次的な画像関数は、より深い画像グラフを返す。 During the execution of the parse tree, each image function only returns an image graph, where the node represents the image operator, the leaf represents the image, the corresponding image operator is the root, and the image Constructed by making a parameter a child of the root. Of course, the image parameters are themselves image graphs. In this way, each sequential image function returns a deeper image graph.

パースツリーの実行後、最終画像に対応した画像グラフが得られる。この画像グラフは、次に、(任意の表現ツリーと同じように)深さ優先方式で実行され、以下の2点で最適化される。(1)最終画像に寄与する画素だけが所定のノードで計算される。(2)ノードの子は、メモリ必要量を最小限に抑える順番で実行される。画像グラフ中の画像オペレータは、最終画像を生成するために最適化された順序で実行される。計算集約的な画像オペレータは、Artcam装置に組み込まれたVLIWプロセッサを使用して加速される。画像グラフを実行するために必要なメモリ量が利用可能なメモリを超えたとき、最終画像領域は、必要なメモリが利用可能なメモリを超えなくなるまで細分される。 After executing the parse tree, an image graph corresponding to the final image is obtained. This image graph is then executed in a depth-first manner (similar to an arbitrary expression tree) and is optimized in two ways: (1) Only pixels that contribute to the final image are calculated at a given node. (2) Node children are executed in an order that minimizes memory requirements. Image operators in the image graph are executed in an optimized order to produce the final image. A computationally intensive image operator is accelerated using a VLIW processor embedded in the Artcam device. When the amount of memory required to execute the image graph exceeds available memory, the final image area is subdivided until the required memory does not exceed available memory.

巧く構築されたVarkプログラムの場合、最初の最適化は特に大きな効果があるとは思えない。しかし、最終画像領域が細分された場合、最適化はかなりの効果を生ずる可能性がある。細分化がメモリ必要量を減少させる効果的な技術として使用することができることが、まさにこの最適化である。画像オペレーションの実行を遅らせることの結果の一つは、プログラム制御フローを画像内容に依存させられないことである。なぜならば、画像内容はパースツリー実行中には分からないからである。実際上、これはそれほど制約にはならないが、それにもかかわらず、言語設計中には注意しなければならない。 In the case of a well-constructed Vark program, the initial optimization does not seem to be particularly effective. However, if the final image area is subdivided, the optimization can have a significant effect. It is precisely this optimization that subdivision can be used as an effective technique to reduce memory requirements. One result of delaying execution of image operations is that the program control flow cannot be made dependent on image content. This is because the image content is not known during the execution of the parse tree. In practice, this is not so restrictive, but nevertheless, care must be taken during language design.

画像オペレーションの延期実行(又は遅延評価)の考え方については、Guibas
and Stolfiによって記載されている(Guibas,
L.J,., and J.Stolfi, '&apos;A Language for Bitmap Manupulation'&apos;,ACM Transactions
on Graphics,Vol.1,
No.3,July 1982,
pp.191−214)。彼らは、プログラムの実行中に同様に画像グラフを構築し、後続のグラフ評価中に、最終画像に寄与しない画素の計算を回避するため、結果領域を逆伝搬させる。Shantzisは、更に、利用可能な画素を画像グラフ評価中に前方へ伝搬させる(Shantzis,
M.A.,'&apos;A Model for Efficient and
Flexible
Image Computing'&apos;, Computer Graphics Proceedings, Annual
Conference
Series, 1994,pp.147−154)。Varkインタープリタは、Cameronによって提案された、より洗練されたマルチパス型ビットディレクショナル領域伝搬スキームを使用する(Cameron,
S.,'&apos;Efficient
Bounds in
Constructive
Solid Geometry'&apos;, IEEE Computer Graphics & Appkications,
Vol.11, No.3,
May
1991, pp.68−74)。メモリ使用量を最小限に押させるため実行順序を最適化する方法は、Shantzisに由来するが、標準的なコンパイラ理論に基づいている(Aho,
A. V.,
R. Sehi,
and J.D.
Ullman,
&apos;'GeneratingCode from DAGs'&apos;, in Compilers: Principles, Techniques,
and Tools,
Addison−Wesley, 1986, pp.557−567)。Varkインタープリタは、Shantzisよりも洗練されたスキームを使用するが、可変サイズ画像バッファをサポートする。メモリ使用量を減少させるため、領域伝搬と組み合わせて結果領域を細分することは、Shantzisに由来している。
For the idea of postponing execution (or delay evaluation) of image operations, see Guibas
and Stolfi (Guibas,
L. J,. , And J.H. Stolfi, '&apos; A Language for Bitmap Manufacture'&apos;, ACM Transactions
on Graphics, Vol. 1,
No. 3, July 1982
pp. 191-214). They build an image graph as well during the execution of the program and back propagate the result region during subsequent graph evaluation to avoid computing pixels that do not contribute to the final image. Shantzi further propagates available pixels forward during image graph evaluation (Shantzis,
M.M. A. , '&Apos; A Model for Efficient and
Flexible
Image Computing '', Computer Graphics Proceedings, Annual
Conference
Series, 1994, pp. 147-154). The Vark interpreter uses the more sophisticated multipath bit directional region propagation scheme proposed by Cameron (Cameron,
S. , '&Apos; Efficient
Bounds in
Constructive
Solid Geometry '&pos;, IEEE Computer Graphics & Applications,
Vol. 11, no. 3,
May
1991, pp. 68-74). The method for optimizing the execution order to minimize memory usage is derived from Shantzis, but is based on standard compiler theory (Aho,
A. V. ,
R. Sehi,
and J. et al. D.
Ullman,
''Generating Code from DAGs'&apos;, in Compilers: Principles, Technologies,
and Tools,
Addison-Wesley, 1986, pp. 557-567). The Vark interpreter uses a more sophisticated scheme than Shantzi, but supports variable size image buffers. Subdividing the resulting region in combination with region propagation to reduce memory usage stems from Shantzis.

プリンタマネージャ908(図221)
プリンタマネージャは画像プリンティングサービスを提供する。それは、Artcamに組み込まれたインクジェットプリンタハードウェアを制御する。それは、抽象的プリンタ制御インタフェースを提供し、プリンタパラメータの問い合わせと設定を可能にさせ、画像を印刷される。この抽象的インタフェースは、アプリケーションをプリンタインプリメンテーションの詳細から切り離し、以下の変数を含む。
Printer manager 908 (FIG. 221)
The printer manager provides an image printing service. It controls the inkjet printer hardware embedded in Artcam. It provides an abstract printer control interface, allows querying and setting of printer parameters, and printing images. This abstract interface separates the application from the details of the printer implementation and includes the following variables:

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
プリンタマネージャは非同期イベント駆動型プロセスとして実行される。それは、連結された状態機械の組を含み、各状態機械は一つの非同期オペレーションに対応している。これらは、画像を印刷し、プリントロールを自動マウントする。プリンタマネージャのソフトウェア構造は図224に示されている。ソフトウェアコマンドは後述される。
Figure 0004309954
The printer manager is executed as an asynchronous event driven process. It includes a set of linked state machines, each state machine corresponding to one asynchronous operation. They print images and automatically mount print rolls. The software structure of the printer manager is shown in FIG. The software command will be described later.

プリントイメージ930
プリントイメージは供給された画像を印刷する。これは、印刷用の画像を準備するためVLIWプロセッサ回路を使用する。VLIWプロセッサ回路は、画像色空間を装置固有CMYに変換し、プリントヘッドで期待されるフォーマットで中間調バイレベルデータを生成する。
Print image 930
The print image prints the supplied image. This uses a VLIW processor circuit to prepare an image for printing. The VLIW processor circuit converts the image color space to device specific CMY and generates halftone bi-level data in the format expected by the printhead.

プリントの間に、プリントロールを取り外すことができるように、用紙はプリントロールのリップに引き込まれ、ノズルはインク漏れ及び乾燥を防ぐためにキャップを被せることができる。実際の印刷がスタートする前に、従って、ノズルはキャップを取り外され、きれいにされ、用紙はプリントヘッドへ進められる。印刷自体は、画像が完全に印刷されるまで、VLIWプロセッサからラインデータを転送し、ラインデータを印刷し、用紙を進める。印刷の終了後、用紙は裁断機で切断され、プリントロールに引き込まれ、ノズルにキャップが被せられる。残りメディア長さはプリントロールで更新される。 During printing, the paper can be pulled into the lip of the print roll and the nozzles can be capped to prevent ink leakage and drying so that the print roll can be removed. Before the actual printing starts, the nozzles are therefore uncapped and cleaned, and the paper is advanced to the printhead. Printing itself transfers line data from the VLIW processor, prints the line data, and advances the paper until the image is completely printed. After the printing is finished, the paper is cut by a cutting machine, drawn into a print roll, and a cap is put on the nozzle. The remaining media length is updated by the print roll.

プリントロール自動マウント131
プリントロール自動マウントは、プリントロールの装着と取り外しに応答する。それは、プリントロールの装着と取り外しのイベントを生成し、このイベントは、アプリケーションによって処理され、状態表示を更新するため使用される。プリントロールは、プリントロールに組み込まれた認証チップと、Artcamに組み込まれた認証チップとの間でプロトコルに従って認証される。プリントロールが認証を失敗した場合、プリントロールは拒絶される。種々の情報がプリントロールから抽出される。用紙及びインク特性は、印刷プロセス中に使用される。残りメディア長さ及びメディアの固定ページサイズは、いずれにしても、プリントマネージャにより公表され、アプリケーションによって使用される。
Print roll automatic mount 131
The print roll automatic mount responds to the installation and removal of the print roll. It generates print roll loading and unloading events that are processed by the application and used to update the status display. The print roll is authenticated according to a protocol between an authentication chip incorporated in the print roll and an authentication chip incorporated in Artcam. If the print roll fails authentication, the print roll is rejected. Various information is extracted from the print roll. Paper and ink properties are used during the printing process. In any case, the remaining media length and the fixed page size of the media are published by the print manager and used by the application.

ユーザインタフェースマネージャ910(図221)
ユーザインタフェースマネージャは図225により詳細に示され、ユーザインタフェース管理サービスを提供する。それは、状態表示及び入力ハードウェアを制御し物理的ユーザインタフェースマネージャ911と、カラーディスプレイ上の仮想グラフィカルユーザインタフェースを管理するグラフィカルユーザインタフェースマネージャ912と、を含む。ユーザインタフェースマネージャは、仮想及び物理的入力をイベントに翻訳する。各イベントはそのイベントのために登録されたプロセスのイベントキュー入れられる。
User interface manager 910 (FIG. 221)
The user interface manager is shown in more detail in FIG. 225 and provides user interface management services. It includes a physical user interface manager 911 that controls status display and input hardware and a graphical user interface manager 912 that manages a virtual graphical user interface on a color display. The user interface manager translates virtual and physical inputs into events. Each event is queued to the event queue of the process registered for that event.

ファイルマネージャ905(図222)
ファイルマネージャは、ファイルマネージメントサービスを提供する。それは、統合階層ファイルシステムを提供し、その中では、全てのマウントされたボリュームのファイルシステムが現れる。Artcamで使用される一次着脱式記憶媒体はArtCardである。Artcardは、2値のドットのブロックによって高解像度で印刷され、2値のドットのブロックは、誤差を許容するリード・ソロモン符号化2値データを直接表現する。ブロック構造は、(Artcamで初期には使用されていない)適当なリード−ライトArtCard装置における追記及び追記−書き換えをサポートする。より高いレベルでは、ArtCardは、拡張型追記−書き換え可能ISO9660準拠CD−ROMファイルシステムを含み得る。ファイルマネージャのソフトウェア構造、及び特に、ArtCard装置コントローラは、図226に示されている。
File manager 905 (FIG. 222)
The file manager provides a file management service. It provides an integrated hierarchical file system, in which the file systems of all mounted volumes appear. The primary removable storage medium used in Artcam is ArtCard. Artcard is printed at high resolution by binary dot blocks, which directly represent Reed-Solomon encoded binary data that allows for errors. The block structure supports append and append-rewrite in a suitable read-write ArtCard device (not initially used in Artcam). At a higher level, ArtCard may include an extended write-once-rewritable ISO9660 compliant CD-ROM file system. The file manager software structure, and in particular the ArtCard device controller, is shown in FIG.

ネットワークマネージャ904(図222)
ネットワークマネージャは、赤外線(IrDA)及び汎用シリアルバス(USB)を含む様々なインタフェース上での家電製品ネットワーキングサービスを提供する。これは、Artcamシステムが撮影された画像を共有し、印刷のための画像を受信できる。
Network manager 904 (FIG. 222)
The network manager provides home appliance networking services on various interfaces including infrared (IrDA) and universal serial bus (USB). This allows the Artcam system to share the captured image and receive the image for printing.

クロックマネージャ907(図222)
クロックマネージャは日付及び時刻のクロックサービスを提供する。それは、Artcamに組み込まれたバッテリバックアップ型リアルタイムクロックを利用し、ユーザが時刻をセットしたときに実行される自動キャリブレーションに基づいて、クロック変動を自動的に調節する程度までそれを制御する。
Clock manager 907 (FIG. 222)
The clock manager provides date and time clock services. It utilizes a battery-backed real-time clock built into the Artcam and controls it to the extent that it automatically adjusts the clock variation based on an automatic calibration performed when the user sets the time.

パワーマネージメント
システムが使用されていないとき、システムは、入力イベントの周期的走査が行われる休止電力状態に入る。入力イベントは、ボタンの押下、又はArtCardの挿入を含む。入力イベントが検出されると直ぐに、Artcam装置は、動作電力状態に戻る。その後、システムは入力イベントをいつもの通りに取り扱う。
When the power management system is not in use, the system enters a sleep power state where periodic scanning of input events takes place. Input events include button presses or ArtCard insertions. As soon as an input event is detected, the Artcam device returns to the operating power state. The system then handles input events as usual.

システムが動作電力状態であるときでさえ、個々のモジュールに関連したハードウェアは、典型的に窮し電力状態にある。これは、全体的な電力消費を削減し、プリンタの用紙切断機のような特に浪費のもとになるハードウェアコンポーネントが動作中に電源を独占できるようする。カメラ指向のArtcam装置は、デフォルトで、画像撮影モードである。即ち、カメラは動作状態であり、プリンタのような他のモジュールは休止状態である。つまり、カメラ以外の機能が始動されたとき、アプリケーションはカメラモジュールを明白に一時停止させなければならない。他のモジュールは、待機状態になると、自発的に一時停止する。 Even when the system is in the operating power state, the hardware associated with the individual modules is typically in a slightly power state. This reduces overall power consumption and allows particularly wasting hardware components such as printer paper cutters to monopolize the power supply during operation. Camera-oriented Artcam devices are in image capture mode by default. That is, the camera is in operation and other modules such as printers are in a dormant state. That is, the application must explicitly pause the camera module when a function other than the camera is activated. When other modules enter a standby state, they pause spontaneously.

ウォッチドッグタイマー
システムは、周期的な優先度の高いウォッチドッグタイマー割込を生成する。割込ハンドラーは、システムが最後の割込以降、進んでいない、即ち、システムが故障していると判断した場合、システムをリセットする。
The watchdog timer system generates a periodic high priority watchdog timer interrupt. The interrupt handler resets the system if it determines that the system has not progressed since the last interrupt, ie, the system has failed.

代替プリントロール
他の一実施形態では、適切に簡単に一つにはめ込まれた射出成形プラスチック部品によって大部分を構築することができる改良された形態のプリントロールが提供される。改良された形態のプリントロールは、多少構造が単純化されると共に、インク貯蔵容量が増加している。画像が印刷されるべきプリントメディアは、構造を簡単化するため、プラスチック製スリーブフォーマーの周りに巻き付けられる。インク媒体リザーバは、インクが流れ出る可能性ができるだけ少なくなる構造にされた一連の通気孔を有する。更に、ラバーシールがインク出口孔に設けられ、ラバーシールはプリントロールをカメラシステムに挿入する際に穿刺される。更に、プリントロールは、プリントメディア排出スロットを含み、排出スロットは周囲に成形された表面を有し、その表面は、プリントメディア放出スロットが、印刷又はカメラシステム内のプリントヘッドに対して正確な位置に置かれるように補助する。
In another embodiment of an alternative print roll, an improved form of print roll is provided that can be constructed in large part by injection molded plastic parts that are suitably and easily fitted together. The improved form of the print roll is somewhat simplified in structure and has an increased ink storage capacity. The print media on which the image is to be printed is wrapped around a plastic sleeve former to simplify the structure. The ink media reservoir has a series of vents structured to minimize the possibility of ink flowing out. In addition, a rubber seal is provided in the ink outlet hole, and the rubber seal is punctured when the print roll is inserted into the camera system. In addition, the print roll includes a print media discharge slot, the discharge slot having a circumferentially shaped surface that is positioned so that the print media discharge slot is accurately positioned relative to the print head in the printing or camera system. To be placed in.

次に、図227から図231を参照すると、図227には、組み付けられた形式のシングルポイントロールユニット1001が示され、部分的に切断されてプリントロールの内部が表されている。図228及び図229は、それぞれ、左側及び右側の分解斜視図である。図230及び図231は図227から図229の内部コア部1007の拡大斜視図である。 Next, referring to FIGS. 227 to 231, FIG. 227 shows a single point roll unit 1001 in an assembled form, which is partially cut to show the inside of the print roll. 228 and 229 are exploded perspective views of the left side and the right side, respectively. 230 and 231 are enlarged perspective views of the inner core portion 1007 of FIGS. 227 to 229.

プリントロール1001は、内部インク補充部を含む内部コア部1007の周りに構築される。コア部1007の外側にはフォーマー1008が設けられ、フォーマーの周りに、用紙又はフィルム補給品1009が巻き付けられる。用紙補給品の周りには、二つのカバー部品1010、1011が設けられ、プリントロールの周りで一体としてスナップ式に留まり、図227に示されるようにカバーユニットを形成する。下側カバー部品1011はスロット1012を含み、そのスロットを通って、プリントメディア1004の出力がカメラシステムと相互連結する。 The print roll 1001 is built around an inner core portion 1007 that includes an inner ink replenishment portion. A former 1008 is provided outside the core portion 1007, and a paper or film supply product 1009 is wound around the former. Two cover parts 1010 and 1011 are provided around the paper supply, and remain snapped together around the print roll to form a cover unit as shown in FIG. The lower cover part 1011 includes a slot 1012 through which the output of the print media 1004 interconnects with the camera system.

二つのピンチローラー1038、1039が用紙を駆動ピンチローラー1040に圧迫するため設けられるので、それらは、一体として、ローラー1040の周りで用紙のカールを取り去る。このカールの取り除きは、長期間に亘ってプリントロールの形で蓄えられている用紙に加わる強いカールを打ち消すように作用する。ローラー1038、1039は、カバーベース部1077の端部及びローラーとスナップ式にフィットするため設けられ、ローラー1040は、駆動用の歯車付きの端部1043を含み、上側カバー部品1010とスナップ式にフィットし、用紙1004を間でしっかりと締め付ける。 Since two pinch rollers 1038, 1039 are provided to press the paper against the drive pinch roller 1040, they together remove the curl of the paper around the roller 1040. The removal of the curl acts so as to cancel the strong curl applied to the paper stored in the form of a print roll over a long period of time. Rollers 1038 and 1039 are provided to snap fit with the end of the cover base 1077 and the roller, and the roller 1040 includes a geared end 1043 for driving and snap fit with the upper cover part 1010. Then, the paper 1004 is firmly tightened between them.

カバー部品1011は、端部隆起又はリップ1042を含む。端部リップ1042は用紙の出口孔を、カメラシステム内の対応した印刷熱プラテン構造体と正確にアライメントするため設けられる。このようにして、既存の用紙は、近傍のプリントヘッドに対して、正確にアライメント又は位置決めされ、用紙をプリントヘッドへ完全に案内する。 Cover component 1011 includes an end ridge or lip 1042. An end lip 1042 is provided to accurately align the paper exit hole with a corresponding printing thermal platen structure in the camera system. In this way, the existing paper is accurately aligned or positioned with respect to the nearby print head and fully guides the paper to the print head.

図230及び図231を参照すると、射出成形部品から形成可能である内部コア部の分解斜視図が示され、このコア部は、内部スポンジ部分1034から1036を有する3個のコアインクシリンダが中心に置かれている。 Referring to FIGS. 230 and 231, there is shown an exploded perspective view of an inner core portion that can be formed from an injection molded part centered on three core ink cylinders having inner sponge portions 1034 to 1036. It has been placed.

コア部の一端には、一連の通気チャンネル、例えば、1014から1016が設けられる。各通気チャンネル1014から1016は、第1の孔、例えば、1018を外部接点1019と相互連結し、外部接点は雰囲気に相互連結される。通気チャンネル、例えば、1014が後に続く通路は、好ましくは、曲がりくねった性質があり、あちこちに曲がりくねっている。通気チャンネルは、シーリングテープ1020の一部分によってシールされ、シーリングテープはコア部の端に被せられる。シーリングテープ1020の表面は、好ましくは、疎水性を高めるため、疎水性的に処理されているので、流体部分が通気チャンネルに進入することを防ぐ。 One end of the core is provided with a series of vent channels, for example 1014 to 1016. Each vent channel 1014 to 1016 interconnects a first hole, eg, 1018, with an external contact 1019, which is interconnected to the atmosphere. The passage followed by the vent channel, eg 1014, is preferably of a tortuous nature and is tortuous around. The ventilation channel is sealed by a portion of the sealing tape 1020, and the sealing tape is placed over the end of the core. The surface of the sealing tape 1020 is preferably hydrophobically treated to increase hydrophobicity, thus preventing fluid portions from entering the vent channel.

コア部1007の第2の端には、3個の厚くなった部分1024、1025及び1026を含むラバーシーリングキャップ1023が設けられ、厚くなった各部分は一連の疎らな孔が存在する。例えば、部分1024は、疎らな孔1029、1030及び1031を含む。疎らな孔は、別個の厚くなった部分の各々からの1個の孔は1本の直線に並ぶように配置される。例えば、疎らな孔1031、1032及び1033(図230)は、全てが1本の線に並び、各孔は別個の厚くなった部分に由来する。厚くなった部分の各々は、対応したインク供給リザーバと対になり、3個の孔が穿刺されたとき、対応したリザーバと流体連通する。 A rubber sealing cap 1023 including three thickened portions 1024, 1025, and 1026 is provided at the second end of the core portion 1007, and each thickened portion has a series of sparse holes. For example, portion 1024 includes sparse holes 1029, 1030 and 1031. The sparse holes are arranged so that one hole from each of the separate thickened portions is aligned with one straight line. For example, the sparse holes 1031, 1032 and 1033 (FIG. 230) all line up in a single line, and each hole comes from a separate thickened portion. Each thickened portion is paired with a corresponding ink supply reservoir and is in fluid communication with the corresponding reservoir when three holes are pierced.

端部キャップユニット1044は、コア部1007に取り付けられる。端部キャップ1044は、認証チップ1033を挿入するためのアパーチャ1046を含み、その上、3個の突起を含む延長されたアダプタ(図示せず)を含み、3個の突起は、対応した孔(例えば、1048)を貫通し、シール1023の厚くなった部分(例えば、1033)を穿刺し、対応したインクチャンバー(例えば、1035)と相互連結する。 The end cap unit 1044 is attached to the core portion 1007. The end cap 1044 includes an aperture 1046 for inserting the authentication chip 1033, and further includes an extended adapter (not shown) including three protrusions, the three protrusions corresponding to the corresponding holes ( For example, through 1048), a thickened portion (eg, 1033) of seal 1023 is punctured and interconnected with a corresponding ink chamber (eg, 1035).

更に、端部1044には、認証チップ1033が挿入され、認証チップは、プリントロールのカメラシステムへのアクセスを認証するため設けられる。したがって、このコア部は、3個の別個のチャンバーに分割され、各チャンバーは、別の色のインクと、内部スポンジと、を収容する。各チャンバーは、第1の端にインク出口を含み、第2の端に通気孔を含む。シーリングテープ1020のカバーは通気チャンネルを覆うために設けられ、ラバーシール1023はインクチャンバーの第2の端をシールするため設けられる。 Further, an authentication chip 1033 is inserted into the end 1044, and the authentication chip is provided for authenticating access to the camera system of the print roll. Thus, the core is divided into three separate chambers, each chamber containing a different color ink and an internal sponge. Each chamber includes an ink outlet at a first end and a vent at a second end. A cover of the sealing tape 1020 is provided to cover the ventilation channel, and a rubber seal 1023 is provided to seal the second end of the ink chamber.

内部インクチャンバースポンジ、及び疎水性チャンネルは、プリントロールを移動可能な環境、多種多様な向きでも利用できるようにさせる。更に、スポンジは、それ自体に疎水化処理をすることができるので、インクをコア部から順序正しく追い出すことができる。 The internal ink chamber sponge and hydrophobic channel make the print roll available in a movable environment and in a wide variety of orientations. Furthermore, since the sponge can be hydrophobized by itself, the ink can be ejected in order from the core.

一連のリブ(例えば、1027)は、コア部1007とプリントロールフォーマー1008との間の摩擦的接触を最低限にさせるため、コア部の表面に設けることができる。 A series of ribs (eg, 1027) can be provided on the surface of the core portion to minimize frictional contact between the core portion 1007 and the print roll former 1008.

プリントロールの殆どの部分は、射出成形プラスチックから構成することが可能であり、プリントロールは、大きい内部インク貯蔵容量をもつ。簡単化された構造は、用紙のカールを取り除くメカニズムと、漏れを最小限に抑えるインクチャンバー通気孔と、を含む。ラバーシールは、インク供給チャンバーとの間に効率的な通路を設けるので、動作的能力が高まる。 Most parts of the print roll can be composed of injection molded plastic, which has a large internal ink storage capacity. The simplified structure includes a mechanism for removing paper curl and an ink chamber vent that minimizes leakage. The rubber seal provides an efficient passage between the ink supply chamber and increases the operational capability.

Artcardは、勿論、それ以外の様々な環境で使用される。例えば、Artcardは、組み込み型及びパーソナルコンピュータ(PC)アプリケーションの両方で使用可能であり、大量のデータ又はコンフィギュレーション情報への使い勝手のよいインタフェースを提供する。 Artcard is, of course, used in various other environments. For example, Artcard can be used in both embedded and personal computer (PC) applications and provides an easy-to-use interface to large amounts of data or configuration information.

この結果として、多数のアプリケーションが見込まれる。例えば、ArtCardリーダーはPCに取り付けてもよい。PCのアプリケーションは多種多様である。最も簡単なアプリケーションは、低コスト読み出し専用配布媒体である。ArtCardは印刷されるので、社内のデータ配布のため使用されるならば、監査の証跡を与える。 As a result, many applications are expected. For example, an ArtCard reader may be attached to a PC. There are a wide variety of PC applications. The simplest application is a low-cost read-only distribution medium. Since ArtCard is printed, it provides an audit trail if used for in-house data distribution.

更に、PCは、しばしば、クローズドシステムのベースとして使用されるが、多数のコンフィギュレーション上のオプションが存在する。複雑なオペレーティングシステムのユーザ用インタフェースに頼るのではなく、ArtCardをArtCardリーダーに単に挿入するだけで、あらゆるコンフィギュレーション上の必要条件を満たすことができる。 Further, although PCs are often used as the basis for closed systems, there are numerous configuration options. Rather than relying on a complex operating system user interface, all configuration requirements can be met by simply inserting ArtCard into the ArtCard reader.

ArtCardの裏面は、アプリケーションとは無関係に、同一の視覚的外観を備えているが(なぜならば、データを格納しているからである)、ArtCarの表面はアプリケーションに依存している。表面は、アプリケーションの状況においてユーザに理解される。 The back side of ArtCard has the same visual appearance regardless of the application (because it stores data), but the surface of ArtCard is application dependent. The surface is understood by the user in the context of the application.

したがって、図Z35の装置は、本、新聞、雑誌、技術マニュアル等の形で情報の効率的な配信を行う。 Accordingly, the apparatus of FIG. Z35 efficiently distributes information in the form of books, newspapers, magazines, technical manuals, and the like.

更なるアプリケーションでは、図Z36に示されるように、Artcard80の表面は、サンプル画像に適用される芸術的な効果を含む画像を表示する。カード80の裏面にプログラムされたデータを読み出すカードリーダー82を含むカメラシステム81を準備し、アルゴリズム的なデータをサンプル画像83に適用して出力画像84を生成することが可能である。カメラユニット81は、オンボードインクジェットプリンタと、サンプル画像データを処理するために十分な処理手段と、を含む。ArtCardの構想の更なるアプリケーションは、BizCardと呼ぶものであり、会社情報を名刺に記憶させる。BizCardは、会社情報の新しいコンセプトである。bizCardの表面は、図Z37に示されるように、外観と機能の点で現在の普通の名刺と全く同じである。それは、写真と連絡先情報とを含み、名刺と同じように多種多様なカードスタイルがある。しかし、各biZCardの裏面は、黒色ドットと白色ドットの印刷された配列を含み、会社に関する1から2メガバイトの情報を保持する。その結果は、3.5インチ形ディスケットの記憶装置が各名刺に取り付けられていることと同じである。 In a further application, as shown in FIG. Z36, the surface of Artcard 80 displays an image containing artistic effects applied to the sample image. It is possible to prepare a camera system 81 including a card reader 82 that reads programmed data on the back side of the card 80 and apply algorithmic data to the sample image 83 to generate an output image 84. The camera unit 81 includes an on-board inkjet printer and processing means sufficient to process sample image data. A further application of the ArtCard concept is called BizCard, which stores company information on a business card. BizCard is a new concept of company information. The surface of bizCard is exactly the same as the current ordinary business card in terms of appearance and function, as shown in FIG. Z37. It includes photos and contact information, and there are as many different card styles as business cards. However, the back side of each biZCard contains a printed array of black and white dots and holds 1 to 2 megabytes of information about the company. The result is the same as a 3.5 inch diskette storage device attached to each business card.

情報は、会社情報、特定製品シート、ウェブサイトポインタ、電子メールアドレス、経歴等、bizCardの所有者が望む情報であれば何でも構わない。BizCardは、USBポートを用いて標準的なPCに接続可能なPC付属型カードリーダーのような如何なるArtCardリーダーでも読むことが可能である。BizCardは、ドキュメントとして専用組み込み装置に表示させてもよい。PCの場合、ユーザはそのbizCardをリーダーに挿入するだけでよい。bizCarは、好ましくは、ウェブサイトと全く同様に、通常のウェブブラウザを使用してナビゲートされる。 The information may be any information desired by the owner of the bizCard, such as company information, a specific product sheet, a website pointer, an e-mail address, and a career. BizCard can be read by any ArtCard reader, such as a PC-attached card reader that can be connected to a standard PC using a USB port. BizCard may be displayed on a dedicated embedded device as a document. In the case of a PC, the user only has to insert the bizCard into the reader. The bizCar is preferably navigated using a normal web browser, just like a website.

所有者の写真及びデジタル署名を、会社の公開鍵へのポインタと共に収容することによって、各biZCardは、その人が、本当にその人本人であり、且つ指定の会社のために実際に働いている人であることを電子的に検証するために使用できる。その上、会社の公開鍵を指すことにより、biZCardは、安全な通信を簡単に開始させることができる。 By accommodating the owner's photo and digital signature along with a pointer to the company's public key, each biZCard is the person who is really the person himself and who is actually working for the specified company. Can be used to verify electronically. Moreover, by pointing to the company's public key, biZCard can easily initiate secure communication.

TourCardと呼ばれる更なるアプリケーションは、ある都市への旅行者及び訪問者のための情報を格納したArtCardのアプリケーションである。tourCardがArtcardブックリーダーに挿入されると、情報は次の形式をとり得る:
*地図
*公共輸送機関時刻表
*名所
*郷土史
*行事及び催事
*レストラン案内
*ショッピングセンター
TourCardは、観光客用パンフレット、ガイドブック、及び街角案内の低コスト代替物である。製造コストがカード1枚当たりわずか1セントであれば、tourCardは、観光客案内所、ホテル、及び観光地で、最低限のコスト、又は広告による資金援助があれば無料で配布可能である。ブックリーダーの携帯性は、これを旅行者にとって完璧なソリューションにする。TourCardは、ArtCardリーダーを備わっているコンピュータが任意のウェブブラウザ上でtourCardに符号化された情報を復号化することができる情報キオスクでも使用可能である。
A further application called TourCard is an ArtCard application that stores information for travelers and visitors to a city. When tourCard is inserted into an Artcard book reader, the information can take the following form:
* Maps * Public transport timetables * Famous points * Local history * Events and events * Restaurant guidance * Shopping center TourCard is a low-cost alternative to tourist brochures, guidebooks, and street corners. If the manufacturing cost is only 1 cent per card, tourCard can be distributed free of charge at tourist information centers, hotels, and tourist destinations with minimum cost or financial support through advertising. The portability of the book reader makes this a perfect solution for travelers. TourCard can also be used in an information kiosk that allows a computer equipped with an ArtCard reader to decode information encoded in tourCard on any web browser.

ブックリーダーの双方向性は、tourCardを非常に多用途化する。例えば、地図に格納されたハイパーテキストリンクは、呼び物ビルディングの歴史的物語を表示するために選択可能である。このように、旅行者は、その都市のガイド付きツアーに出かけることが可能であり、関連した交通機関の路線図及び時刻表は何時でも利用可能である。tourCardは、地図と、ガイドブックと、時刻表と、レストラン案内と、を別々にする必要性を無くし、各個の旅行者に対する簡単なソリューションを作成する。勿論、データカードにはこの他にも多くの利用可能性がある。例えば、新聞、学習案内、ポップグループカード、ベースボールカード、時刻表、音楽データファイル、製品パーツ、広告、テレビガイド、映画ガイド、見本市情報、雑誌のクーポンカード、レシピ、求人広告、医療情報、プログラム及びソフトウェア、競馬新聞、電子新聞、年次報告書、レストランガイド、ホテルガイド、バケーションガイド、翻訳プログラム、ゴルフコース情報、ニュース放送、コミック、気象詳細等がある。 The interactivity of the book reader makes tourCard very versatile. For example, hypertext links stored on a map can be selected to display historical stories of featured buildings. In this way, travelers can go on a guided tour of the city, and relevant transportation route maps and timetables are available at any time. tourCard eliminates the need for separate maps, guidebooks, timetables, and restaurant guides and creates a simple solution for each individual traveler. Of course, there are many other possibilities for data cards. For example, newspapers, study guides, pop group cards, baseball cards, timetables, music data files, product parts, advertisements, TV guides, movie guides, trade show information, magazine coupon cards, recipes, job advertisements, medical information, programs And software, horse racing newspapers, electronic newspapers, annual reports, restaurant guides, hotel guides, vacation guides, translation programs, golf course information, news broadcasts, comics, weather details, etc.

例えば、ArtCardは、本の内容、又は新聞の内容を含み得る。このようなシステムの一例は図Z35に示され、ArtCard70は、一方の面に本のタイトルを含み、もう一方の面には本の符号化された内容が印刷されている。カード70はリーダー72に挿入され、リーダー72には、カードリーダー72の折り畳みを可能にさせるフレキシブルディスプレイ73が含まれ得る。カードリーダー72は表示制御部74を含み、表示制御部は、前ページへの移動、次ページへの移動、及びカードリーダー72のその他の制御を可能にさせる。
アートカードの特別の使用
技術説明
技術04の説明
For example, ArtCard may contain book content or newspaper content. An example of such a system is shown in FIG. Z35, where ArtCard 70 includes the title of the book on one side and the encoded content of the book is printed on the other side. The card 70 is inserted into a reader 72, which can include a flexible display 73 that allows the card reader 72 to be folded. The card reader 72 includes a display control unit 74 that allows movement to the previous page, movement to the next page, and other control of the card reader 72.
Art card special use technology explanation technology 04 explanation

さらなる改善では、アートカム装置は、マイクロフォン装置や関連の録音技術を装備するように適当に変更される。写真が撮られる時、周囲の音環境か、その画像に関係するメッセージのいずれかを録音する機会が与えられる。そして、録音された音声は、エンコード形式により出力写真の裏面に印刷される。そのエンコード化は高い復元性を有することが望ましい。その録音された音声は写真に関係する、永久的な音声録音を提供する。次に、再生装置は、エンコードされた音声をスキャンし、この情報を復号化するために提供される。   In a further improvement, the art cam device is suitably modified to be equipped with a microphone device and associated recording technology. When a picture is taken, you are given the opportunity to record either the ambient sound environment or a message related to the image. The recorded audio is printed on the back side of the output photo in the encoding format. The encoding is desirably highly recoverable. The recorded audio provides a permanent audio recording related to the photo. A playback device is then provided to scan the encoded audio and decode this information.

ここで、図233を参照すると、アートカム配列のさらなる改善1601が概略形式で示されており、該配列では、画像1602がCCDセンサー1603により検知され、重要な計算リソースを有するアートカム中央プロセッサ1604に転送されるようになっている。該アートカム中央プロセッサ1604は、メモリー1605に画像を格納でき、該メモリ1605は、好ましくは、メモリーに結合された高速RAMBUS(登録商標)を備える。アートカム中央プロセッサ1604は、また、要求に応じてインスタント写真を提供するため、フルカラー写真、例えば1607の印刷のためにプリントヘッド1606の駆動を制御するようになっている。   Referring now to FIG. 233, a further improvement of the art cam array 1601 is shown in schematic form, where the image 1602 is detected by the CCD sensor 1603 and forwarded to the art cam central processor 1604, which has significant computational resources. It has come to be. The art cam central processor 1604 can store images in a memory 1605, which preferably comprises a high speed RAMBUS (R) coupled to the memory. The art cam central processor 1604 is also adapted to control the drive of the print head 1606 for printing full color photos, eg, 1607, to provide instant photos on demand.

さらなる改善では、そのカメラ編成1601はサウンドチップ1610も備えており、該サウンドチップ1610は、ACPプロセッサ1604の制御下で、RAMBUS1611を介してメモリー1605に接続されている。そのサウンドチップ1610は、標準的又は専用形式であることができ、例えばサウンドマイクロフォン1613からアナログ入力1612を取り込むDSPプロセッサを備えることができる。或いは、チップの複雑度が増大するのに従い(ムーアの法則)、サウンドチップ1610の機能はACPチップ1604内に組込まれることができ、ACPチップ1604は、最先端のCMOS型集積回路チップを備えるのが好ましい。本発明の範囲内に該当する他の多くの種類の編成を提供できることは容易に明白であろう。   In a further improvement, the camera organization 1601 also includes a sound chip 1610 that is connected to the memory 1605 via the RAMBUS 1611 under the control of the ACP processor 1604. The sound chip 1610 can be in a standard or dedicated format and can include, for example, a DSP processor that captures the analog input 1612 from the sound microphone 1613. Alternatively, as chip complexity increases (Moore's Law), the functionality of sound chip 1610 can be incorporated into ACP chip 1604, which includes a state-of-the-art CMOS integrated circuit chip. Is preferred. It will be readily apparent that many other types of organization falling within the scope of the present invention can be provided.

サウンドチップ1610は、アナログ入力1612を対応するデジタル形式へ変換し、それをメモリー1605に格納するために転送する。録音プロセスは、カメラ装置上のボタン(図示せず)を押すことによって作動させることができ、そうでなければ、ボタンがACPプロセッサ1604の制御下にあって、録音プロセスは写真を撮るときに実質的に自動化されることができる。録音されたデータは、メモリ1605に格納される。   The sound chip 1610 converts the analog input 1612 to the corresponding digital format and forwards it for storage in the memory 1605. The recording process can be activated by pressing a button (not shown) on the camera device; otherwise, the button is under the control of the ACP processor 1604, and the recording process is effective when taking a picture. Can be automated. The recorded data is stored in the memory 1605.

図234を参照すると、カメラ編成は、好ましくは、2つのプリントヘッド1615,1616からなるプリンター装置1606を有し、第1のプリントヘッド1615はプリントメディア1617に画像を印刷するのに使用され、第2のプリントヘッド1616はプリントメディアの裏面に情報を印刷するのに使用される。   Referring to FIG. 234, the camera organization preferably has a printer device 1606 consisting of two print heads 1615, 1616, the first print head 1615 being used to print an image on print media 1617. The second print head 1616 is used to print information on the back side of the print media.

図235を参照すると、写真メディア1617の裏面への見本の出力が示されている。該出力は図234のプリントヘッド1616にて印刷されたものである。その情報は、場所や日付や時間のデータ1620を含むことができる。そして、場所のデータは、キーボード入力により、或いは、GPSや同様のもののような、付属の位置決めシステムの利用によって与えられる。それらの情報1620は、印刷された画像の記録をユーザが整備するために、視認可能な形式で呈示される。重要なことは、画像1617の裏面には、エンコード形式の音声情報1622も印刷されているということである。エンコード形式は多種多様であることができるが、擦り傷、汚れ、書き込み、磨耗、回転、退色などを許容するよう、エンコード化は高い障害許容力を有する方法で行われるのが好ましい。図236には、データ1625の一部分が概略形式で示され、そのデータは、図234のプリントヘッド1616により印刷されるドット列を有する。その開示された手法は写真の裏面に約2.5メガバイトの任意のデータを保管し、この特別な場合には、音声データを含めることができる。符号化フォーマットは、データのリード・ソロモン符号化の利用に強く依存し、高い障害許容力を提供する。さらに、画像の検知を補助するよう、図236に示されるように、高周波“チェッカーボード状”模様がデータに追加されるように記載される。図234のプリントヘッドにより印刷されるドット列をデータが含むようなデータ部1625が図236に概略形式で示される。   Referring to FIG. 235, a sample output to the back side of photographic media 1617 is shown. The output is printed by the print head 1616 in FIG. The information can include location, date, and time data 1620. The location data is then provided by keyboard input or by using an attached positioning system such as GPS or the like. The information 1620 is presented in a viewable format for the user to maintain a record of the printed image. What is important is that audio information 1622 in an encoded format is also printed on the back surface of the image 1617. The encoding format can vary widely, but encoding is preferably performed in a highly fault-tolerant manner to allow scratches, dirt, writing, wear, rotation, fading, etc. In FIG. 236, a portion of data 1625 is shown in schematic form, and the data has dot rows printed by the print head 1616 of FIG. The disclosed technique stores about 2.5 megabytes of arbitrary data on the back of the photo, and in this special case can include audio data. The encoding format is highly dependent on the use of Reed-Solomon encoding of data and provides high fault tolerance. In addition, a high frequency “checkerboard-like” pattern is described to be added to the data, as shown in FIG. 236, to assist in image detection. A data portion 1625 is shown in schematic form in FIG. 236 such that the data includes dot rows printed by the printhead of FIG.

録音された音声を“再生”したいときは、読み取り装置1626を通り抜けるように写真1617を移動させる。その読み取り装置1626はピンチローラーを有しており、該ピンチローラーは写真を挟んだ状態で回転し、CCDリニアセンサー装置1627を該写真が通過するようにする。   When it is desired to “reproduce” the recorded voice, the photograph 1617 is moved so as to pass through the reading device 1626. The reading device 1626 has a pinch roller, and the pinch roller rotates while sandwiching the photograph so that the photograph passes through the CCD linear sensor device 1627.

図238を参照すると、図237の音声読み取り装置1626の操作を示す概略形式が示されている。前記CCDリニアセンサー1627は第2のアートカム中央プロセッサ1628に接続されており、該プロセッサ1628は、写真の裏面に格納されているデータを読み取り復号化するよう適切に適合化されている。復号化された音声情報は、サウンド処理チップ1633を介してスピーカー1629で再生するためにメモリー1632に格納される。そのサウンド処理チップ1633はACPデコーダ1628の制御下で動作でき、ACPデコーダ1628は、音量制御、巻戻し、再生および早送り制御などを含むことのできる、種々のユーザ入力制御1633の下で動作する。   Referring to FIG. 238, a schematic form showing the operation of the voice reader 1626 of FIG. 237 is shown. The CCD linear sensor 1627 is connected to a second artcam central processor 1628, which is suitably adapted to read and decode data stored on the back side of the photograph. The decoded audio information is stored in the memory 1632 for reproduction by the speaker 1629 via the sound processing chip 1633. The sound processing chip 1633 can operate under the control of an ACP decoder 1628, which operates under various user input controls 1633, which can include volume control, rewind, playback, fast-forward control, and the like.

重要なことには、上述の通り、アートカードの裏面にあたかも情報が印刷されているかのように、CCDリニアセンサー1627及びACPデコーダ1628は読み取りプロセスを実行する。   Importantly, as described above, the CCD linear sensor 1627 and the ACP decoder 1628 perform the reading process as if the information was printed on the back of the art card.

好適な実施の形態の上記の説明から分るように、写真と関係する音声録音を提供するように、出力画像と関係する音声の自動録音のためのシステムが提供される。写真の裏面の画像出力を読み取るための音声読み取りシステムも開示される。
技術06の説明
As can be seen from the above description of the preferred embodiment, a system for automatic recording of audio associated with an output image is provided to provide audio recording associated with a photograph. An audio reading system for reading the image output on the back side of a photograph is also disclosed.
Explanation of Technology 06

さらなる改善では、先述したアートカムは、後のデジタル画像の生成に利用されるカメラの向きを自動的に決定するための装置を含む。そして、そのアートカムは、画像生成に向きの情報を利用することを適切にプログラムされている。   In a further improvement, the art cam described above includes a device for automatically determining the orientation of the camera that is used for subsequent digital image generation. The art cam is then properly programmed to use orientation information for image generation.

ところで、向きの情報を使用する多くの例が添付図面を参照して説明される。図239を参照すると、第1のポートレート写真1801が示されており、該写真1801には、カメラシステムに入力された日付けや撮影場所情報のような、ポートレート1801に関連した情報を配置するために領域1802が用意されている。さらに、そのポートレート1801は、顔などのような、画像の特定の目に見える部分を変形させる画像処理技術により処理されるかも知れないと予想される。これらの変形は、写真1801を撮影するカメラの向き決定に依存する。また、図239には、カメラが回転されたポートレートモードで使用された第2のポートレートモード画像1803が示されている。残念なことに、横向きモードの画像1801の画像データ1802が同じ位置にあるならば、該データは、最後の画像における望まれない領域1805に現われる。理想的には、ポートレートモードで写真が撮影されるとき、画像の特定の情報は場所1806に現われるべきであろう。なお、直角で、異方性で、画像内容の特定の方法で画像に与えられる画像処理効果は、画像が回転されるときに無駄になってしまうだろう。   By the way, many examples using orientation information will be described with reference to the accompanying drawings. Referring to FIG. 239, a first portrait photograph 1801 is shown. In the photograph 1801, information related to the portrait 1801, such as date and shooting location information input to the camera system, is arranged. An area 1802 is prepared for this purpose. It is further anticipated that the portrait 1801 may be processed by an image processing technique that deforms certain visible portions of the image, such as a face. These deformations depend on the orientation determination of the camera that takes the photograph 1801. FIG. 239 shows a second portrait mode image 1803 used in the portrait mode in which the camera is rotated. Unfortunately, if the image data 1802 of the image 1801 in landscape mode is in the same position, the data appears in an unwanted area 1805 in the last image. Ideally, when a picture is taken in portrait mode, specific information about the image should appear at location 1806. It should be noted that the image processing effects that are imparted to the image in a specific manner of image content that are perpendicular, anisotropic, and image content will be wasted when the image is rotated.

前記向きセンサー1846は向きを検知し、該検知された向きはACP1831によって、対応するデジタル向き角度に変換される。前記エリアイメージセンサー1802はカメラにより撮影される画像を検知し、該画像はACP1831に転送され、メモリー記憶装置1833に保存される。次に、検知された向きは、撮影された画像がポートレートモードか風景モードであるかを決定するために使用される。該検知された画像はメモリー記憶装置1833から読み取られ、再びメモリー記憶装置1833に出力される前に回転される。最後の結果が回転された画像1808である。また、検知された向きの情報を利用するための他の技術を挙げることができる。例えば、メモリー記憶装置1833に保存されている検知画像は、向き情報と関連付けて保存されることができ、該向き情報は、従来の回転マトリクスマッピング、世界座標系及び局所座標系マッピングに利用される。続いて、その情報の処理を行うコンピュータ・グラフィック・アルゴリズムは、回転向きに画像を操作するように処理している最中にその座標系を使用することができる。位置検知情報(例えば、図239の符号1806)が画像に組み入れられる場合には、このテキストは正しい向きに配置されることができる。さらに、カメラの向きは、顔検出のような、画像に適用される画像を特定するアルゴリズム技術に使用されることができる。顔の位置は大体分るので、向きの情報の利用は顔検出アルゴリズムを大幅に単純化する。   The orientation sensor 1846 detects the orientation, and the detected orientation is converted into a corresponding digital orientation angle by the ACP 1831. The area image sensor 1802 detects an image captured by the camera, and the image is transferred to the ACP 1831 and stored in the memory storage device 1833. The detected orientation is then used to determine whether the captured image is in portrait mode or landscape mode. The detected image is read from the memory storage device 1833 and rotated before being output to the memory storage device 1833 again. The final result is a rotated image 1808. Other techniques for using detected orientation information can also be mentioned. For example, the detected image stored in the memory storage device 1833 can be stored in association with the orientation information, and the orientation information is used for conventional rotation matrix mapping, world coordinate system, and local coordinate system mapping. . Subsequently, the computer graphics algorithm that processes the information can use the coordinate system while processing to manipulate the image in a rotational orientation. If position sensing information (eg, 1806 in FIG. 239) is incorporated into the image, the text can be placed in the correct orientation. Furthermore, the camera orientation can be used for algorithmic techniques that identify the image applied to the image, such as face detection. Since the position of the face is roughly, the use of orientation information greatly simplifies the face detection algorithm.

向きセンサーは、例えばマーキュリーセンサのような、単純で安価な重力スイッチを含むことができ、或いは、マイクロマシンシリコン加速度計のような、より複雑な小規模の装置にすることができる。
技術07の説明
The orientation sensor can include a simple and inexpensive gravity switch, such as a Mercury sensor, or it can be a more complex small scale device, such as a micromachined silicon accelerometer.
Explanation of Technology 07

さらに、プリントローラーの他の形態が構成されることができる。図241を参照すると、前述した装置の修正版に利用されるようなプリントロールの他の配列が概略的に示されている。重要なことには、使い捨てのプリントロール(例えば、1910)は、インクを集めることを許容するスポンジ部1912を有する“延長されたリーフ部分1911”を備える。従って、プリントヘッドを横切るように搬送されるフィルムや紙の端縁部へのプリントヘッドによる印刷を許容するため、運転中、前記スポンジ部1912はプリントヘッドの下方に配置される。   In addition, other forms of print rollers can be configured. Referring to FIG. 241, there is schematically shown another arrangement of print rolls such as that utilized in a modified version of the apparatus described above. Importantly, disposable print rolls (eg, 1910) include an “extended leaf portion 1911” having a sponge portion 1912 that allows ink to be collected. Accordingly, during operation, the sponge portion 1912 is disposed below the print head in order to allow printing by the print head to the edge of the film or paper conveyed across the print head.

そのスポンジ部1912は、使い捨てのプリントロール1910の一部を形成するので、プリントロールを使い切ったときにカメラの外に取り出され、それによって、余分の不用なインクがプリントヘッドから取り除かれる。
技術08の説明
The sponge portion 1912 forms part of the disposable print roll 1910 and is therefore removed from the camera when the print roll is used up, thereby removing excess waste ink from the print head.
Explanation of Technology 08

さらなる実施例では、最大のコントラストを確保するCCDデータストリームの処理によりオートフォーカスが実行される。CCDデータストリームに基づき焦点位置を決定する技術は公知である。例えば、Butterworth−Heinemannによって1993年に出版され、Leslie StroebelとRichard Zakiaにより編集された“The Encyclopedia of Photograpy”や、“Applied Photographic Optics(ロンドン及びボストン、フォーカルプレス、1988年)”にて言及されている。これらの技術は、第一に、入力画像の一部を覆う隣接画素間のコントラスト測定を行う。その画像は、正確なオートフォーカス設定を決定するためにACPにより処理される。   In a further embodiment, autofocus is performed by processing a CCD data stream that ensures maximum contrast. Techniques for determining the focal position based on the CCD data stream are known. For example, “The Encyclopedia of Photographic” published in 1993 by Butterworth-Heinemann and edited by Leslie Stroebel and Richard Zakia, and “Applied Photographic Boston” Yes. These techniques first measure the contrast between adjacent pixels covering a part of the input image. The image is processed by ACP to determine the correct autofocus setting.

このオートフォーカスの情報は、特定のモード、例えば、画像の中に顔の位置を見つけようとする場合にACPによって使用され、画像における顔の大体のサイズを案内することによって顔位置検知プロセスを簡素化している。   This autofocus information is used by ACP in certain modes, such as when trying to find the position of a face in an image, and simplifies the face position detection process by guiding the approximate size of the face in the image. It has become.

図242を参照すると、顔検出アルゴリズムによる調査のために大体の画像の特徴を決定すべく使用される方法の見本2001が示されている。   Referring to FIG. 242, a sample method 2001 is shown that is used to determine approximate image features for investigation by a face detection algorithm.

例えば、2002,2003,2004のような様々な画像がカメラ装置により取得される。焦点設定の詳細は、オートフォーカスの操作の副産物としてACPに保存される。加えて、ズーム・モータの現在位置もまた使用される(2006)。これらの設定のいずれもがACPにより決定される。次に、大体の奥行き位置(depth location)に応じた大きさとなる、画像中のオブジェクト(興味のあるオブジェクト)を含む画像を出力する前に、ACPは、検知した値に分析技術2008を適用する。   For example, various images such as 2002, 2003, and 2004 are acquired by the camera device. Details of the focus setting are stored in the ACP as a by-product of the autofocus operation. In addition, the current position of the zoom motor is also used (2006). Any of these settings are determined by the ACP. Next, before outputting an image including an object in the image (an object of interest) having a size corresponding to the approximate depth location, the ACP applies the analysis technique 2008 to the detected value. .

次に、画像におけるオブジェクトの位置を見つけるため、該奥行きの値(depth value)が、入力された検知画像2011に加えてACP2031の顔検出アルゴリズム2010に利用される。近距離値2009はポートレート画像の高い可能性を示し、中距離値はグループ写真の高い可能性を示し、遠距離値は風景画像の高い可能性を示す。この可能性の情報は顔検出の目的としても使用されることができ、オブジェクトまでの距離に依存して適用される他の技術やクリップアートと共に、画像中に“描いた”ような効果を生成したり、画像を描いたりする場合に、様々なパラメータを選択するために使用されることができる。
技術09の説明
Next, in order to find the position of the object in the image, the depth value (depth value) is used in the face detection algorithm 2010 of the ACP 2031 in addition to the input detection image 2011. A short distance value 2009 indicates a high possibility of a portrait image, a medium distance value indicates a high possibility of a group photograph, and a long distance value indicates a high possibility of a landscape image. This possibility information can also be used for the purpose of face detection, along with other techniques and clip art applied depending on the distance to the object, creating an effect that “draws” in the image Or when drawing an image, it can be used to select various parameters.
Explanation of Technology 09

さらなる実施例では、アートカム装置は、そのときのアイポジションを検知するアイポジションセンサーを有するように変更されることができる。その検知されたアイポジション情報は、その検知されたアイポジションに従った修正や変形等を行うため、カメラにより撮影されたデジタル画像を処理するために使用される。   In a further embodiment, the art cam device can be modified to have an eye position sensor that detects the current eye position. The detected eye position information is used to process a digital image captured by the camera in order to perform correction or deformation according to the detected eye position.

アイポジションセンサーの構成は当業者に知られており、多くの製品のカメラ(特に、キヤノン社のカメラ)にて使用されている。アイポジションセンサーは、ビューファインダから視聴者の目への赤外線の照射と、大体のアイポジションを決定するために検出され使用される反射とに依存している。   The configuration of the eye position sensor is known to those skilled in the art and is used in many product cameras (particularly Canon cameras). The eye position sensor relies on infrared illumination from the viewfinder to the viewer's eyes and the reflections detected and used to determine the approximate eye position.

図243を参照すると、アイポジション情報2110と画像2111とはアートカムのメモリーに格納されており、ACPによって処理が行われ(2112)、その処理画像は、プリントヘッドにより写真として印刷するために出力される。画像処理2112の形態は、アイポジション情報2110に依存してかなり変化されることができる。例えば、画像処理の第1の形態においては、画像中の顔の位置を検出して、様々なグラフィック・オブジェクト(例えば、顔との関係で一般的にオフセットしている吹き出し)を適用するために、顔検出アルゴリズムが画像2111に適用される。そのようなプロセスの一例が図244に示されており、第1の画像2115は3人の人間を示している。前記顔検出アルゴリズムの適用により、3つの顔2116,2117,2118が検出される。そして、アイポジション情報は、フレーム中に推定された目に最も近い顔選択するために使用される。第1の例においては、吹き出しは頭2116に対して配置される。第2の例2120においては、吹き出しは頭2117に対して配置され、第3の例2121においては、吹き出しは頭2118に対して配置されている。したがって、画像中の所定の顔の上方に吹き出し文字を配置するために、アートカードは、吹き出し適用アルゴリズムのコード化された形態と、処理された画像とを含むように提供される。   Referring to FIG. 243, the eye position information 2110 and the image 2111 are stored in the art cam memory, processed by the ACP (2112), and the processed image is output for printing as a photograph by the print head. The The form of the image processing 2112 can vary considerably depending on the eye position information 2110. For example, in the first form of image processing, to detect the position of the face in the image and apply various graphic objects (eg, speech balloons that are generally offset relative to the face) A face detection algorithm is applied to the image 2111. An example of such a process is shown in FIG. 244, where the first image 2115 shows three people. By applying the face detection algorithm, three faces 2116, 2117, and 2118 are detected. The eye position information is then used to select the face closest to the eye estimated during the frame. In the first example, the balloon is positioned relative to the head 2116. In the second example 2120, the balloon is disposed with respect to the head 2117, and in the third example 2121, the balloon is disposed with respect to the head 2118. Thus, to place a balloon character above a given face in the image, an art card is provided that includes a coded form of the balloon application algorithm and the processed image.

アイポジション情報は多くの異なる方法で画像2111を処理するために使用することができるということは容易に理解される。局所的な、或いは特定の方法で焦点合わせの効果を適用し、顔やオブジェクトに特定の変形を与えることができる。さらに、行われた画像処理は、画像の芸術的な演出を含み、該演出は、芸術的な絵筆技術を適用することを含む。その芸術的なブラッシング方法は、アイポジション情報2110に従って特定の方法で適用され得る。最終的な処理画像2113は、要求に応じて印刷され得る。さらなる画像が撮影され、異なる出力画像の生成のため、異なるアイポジションが検出され使用される。
技術10の説明
It will be readily appreciated that the eye position information can be used to process the image 2111 in many different ways. Focusing effects can be applied locally or in specific ways to give specific deformations to faces and objects. Further, the image processing performed includes an artistic rendering of the image, which includes applying artistic paintbrush techniques. The artistic brushing method can be applied in a specific way according to the eye position information 2110. The final processed image 2113 can be printed on demand. Further images are taken and different eye positions are detected and used to generate different output images.
Explanation of Technology 10

さらなる改善では、アートカムは、撮影画像の明るさのレベルを決定するために自動露出センサーを有するように構成変更されている。この自動露出センサーは、画像の一部分を引き立たせるため、設定された露光量に従って画像を処理するために使用される。   In a further improvement, the art cam is reconfigured to have an automatic exposure sensor to determine the brightness level of the captured image. The automatic exposure sensor is used to process an image according to a set exposure amount in order to enhance a part of the image.

望ましくは、前記エリアイメージセンサーは、画像を撮影するときの光の状態を決定するための装置を有する。該エリアイメージセンサーは、検出したレベルに従って、CCDにより取得されたダイナミックレンジの値を調整する。取得した画像はアートカム中央プロセッサに送られ、メモリーストアに格納される。前記エリアイメージセンサーにより測定された強度情報は、また、ACPに転送される。この情報は、保存されている画像に特定の効果を与えるため、ACPによって使用される。   Preferably, the area image sensor has a device for determining a light state when taking an image. The area image sensor adjusts the value of the dynamic range acquired by the CCD according to the detected level. The acquired image is sent to the art cam central processor and stored in the memory store. The intensity information measured by the area image sensor is also transferred to the ACP. This information is used by the ACP to have a specific effect on the stored image.

図245を参照すると、ACPによって画像を処理するため、自動露出設定情報2201が、保存されている画像2202に関連して使用される。処理された画像は、後でプリンターで印刷2204するためにメモリーに戻される。   Referring to FIG. 245, automatic exposure setting information 2201 is used in connection with the stored image 2202 to process the image by ACP. The processed image is returned to memory for later printing 2204 on the printer.

所定の光の状態に従って多数の処理ステップが実施されることができる。暗い場所で画像が撮影されたことを自動露出設定情報2201が示す場合には、画像の色をより強く、より深く、より鮮やかにするために、画像の画素の色が選択的にリマップされる。   A number of processing steps can be performed according to a predetermined light condition. When the automatic exposure setting information 2201 indicates that an image was taken in a dark place, the pixel color of the image is selectively remapped to make the image color stronger, deeper and more vivid. .

写真が撮影されるときが明るい状態であると自動露出情報が示す場合には、より明るく、よりサチュレートするように画像の色が処理される。画像の再配色は、色相・彩度・明度(HSV)フォーマットに画像を変換し、要求に従ってピクセル値を変更することにより行うことができる。該ピクセル値は、印刷の出力色フォーマットに変換して出力することができる。   If the automatic exposure information indicates that the photo is taken in a bright state, the image color is processed to be brighter and more saturated. Image re-coloring can be done by converting the image to Hue / Saturation / Brightness (HSV) format and changing the pixel values as required. The pixel value can be converted into an output color format for printing and output.

もちろん、数多くの異なる再配色技術が使用されるかも知れない。それらの技術は、好ましくは、読み出し装置に挿入されるアートカードに明確に示されている。他の方法としては、ある状態での使用のため、画像処理アルゴリズムが自動的に適用され、カメラの中に組み込まれることができる。   Of course, many different recoloring techniques may be used. These techniques are preferably clearly shown on an art card inserted into the reading device. Alternatively, image processing algorithms can be automatically applied and incorporated into the camera for use in certain situations.

他の方法としては、挿入されたアートカードは、画像に適用される、自動露出設定に限定された、多くの取扱いを有することができる。例えば、暗い画像には、蝋燭等を含むクリップ・アートが挿入されることができ、明るい画像には大きな太陽が挿入されることができる。
技術11の説明
Alternatively, the inserted art card can have a lot of handling, limited to the automatic exposure setting applied to the image. For example, a clip art containing candles etc. can be inserted into a dark image and a large sun can be inserted into a bright image.
Explanation of technology 11

フラッシュを使用した結果、取得画像に生じる“赤目”の影響を除去することは、重要な処理の1つである。図246を参照すると、さらなる改善において、CCD装置により取得された画像は、フラッシュが使用されていた場合には、印刷のために処理された出力画像を形成するため、処理ステップ3を受けさせる。図247を参照すると、CCD装置による画像の取得の際にフラッシュが使用されていた場合に使用されることのできる、1つの特別な画像処理アルゴリズム2310が、より詳細に示されている。そのアルゴリズムは、好ましくは、CCDにより画像を取得するためにフラッシュが使用されたときにのみ使用される(2311)。そのアルゴリズムの目的は、フラッシュの利用による画像への影響を低減することである。そのような画像の影響は、写真画像において個々の眼が赤く見えるという、周知の“赤目”影響を含むことができる。また、フラッシュ光の反射面からの反射などのような他の影響は、別途、他のアルゴリズムを使用して処理することができる。画像における赤目の影響を排除するための第1ステップは、画像中における顔を決定することである(2312)。何らかの他の画質増強や色修正を行った後、通常光の下で人間の顔の色についてのHSVの値の地図で近接する範囲を決定することにより、顔検出プロセスが実行される。検出された範囲については、目や口や全体形状や重なりの決定を含む、様々な簡単なテストがなされる。その簡単なテストは、顔の可能性についての結果を生じさせることができ、閾値以上の場合には、画像での顔の位置を決定することができる。   Removing the “red-eye” effects that occur in the acquired image as a result of using a flash is one of the important processes. Referring to FIG. 246, in a further improvement, the image acquired by the CCD device is subjected to processing step 3 to form an output image processed for printing if a flash was used. Referring to FIG. 247, one special image processing algorithm 2310 that can be used if a flash was used during image acquisition by the CCD device is shown in more detail. The algorithm is preferably used only when the flash is used to acquire an image with the CCD (2311). The purpose of the algorithm is to reduce the effect on the image due to the use of flash. Such image effects can include the well-known “red-eye” effect in which individual eyes appear red in a photographic image. In addition, other influences such as reflection of the flash light from the reflecting surface can be separately processed using other algorithms. The first step to eliminate the red-eye effect in the image is to determine the face in the image (2312). After performing some other image enhancement or color correction, the face detection process is performed by determining a close range in a map of HSV values for human face colors under normal light. The detected range is subjected to various simple tests including determination of eyes, mouth, overall shape and overlap. That simple test can produce a result about the likelihood of a face, and if it is above a threshold, the position of the face in the image can be determined.

画像の中で顔が決定されると(2312)、その顔の中で眼の位置が見つけられる(2313)。そして、赤目除去処理が必要かどうかを決定するため、特別な範囲の色を判断する処理がそれぞれの眼に個別に行われる。もし、赤目除去処理が必要とされるならば、出力画像において、如何なる不連続さや起こり得る不自然さを生じないようにさせながら、赤色を減少させるようにすべく、目のエリアに対して修正アルゴリズムが適用される。もちろん、眼の中心点の周りのガウシアン・デグリーの形式を含む多くの異なる技術が使用される。最後に、メモリーストア2333の裏にアップデートされた形式で画像が書き込まれる(2316)。   When a face is determined in the image (2312), the position of the eye is found in the face (2313). Then, in order to determine whether the red-eye removal process is necessary, a process for determining a special range of colors is performed for each eye individually. If red-eye removal processing is required, correct for the eye area to reduce red while avoiding any discontinuities or possible unnaturalness in the output image. The algorithm is applied. Of course, many different techniques are used, including a Gaussian degree format around the center point of the eye. Finally, the image is written in the updated format behind the memory store 2333 (2316).

望ましくは、この時点で、フラッシュ光のスペクトル特性の影響を受けた色をリマップすることを含む、他の修正アルゴリズムが使用される。代わりに、挿入されるアートカードが、画像に適用される多くの処理(フラッシュの設定を特定する処理)を行うようにしても良い。例えば、蝋燭や光の球体(light globe)等のクリップアートが、如何なる閃光も無い画像中に閃光や大きな太陽が挿入されても良い。
技術12の説明
Preferably, other correction algorithms are used at this point, including remapping colors that are affected by the spectral characteristics of the flash light. Instead, the inserted art card may perform many processes applied to the image (process for specifying flash settings). For example, a clip art such as a candle or a light globe may have a flash or a large sun inserted into an image without any flash.
Explanation of Technology 12

さらなる改善においては、第2のインクジェットが写真の裏面への印刷のために用意されている。図248には、標準的な配列の概略図が示されている。ローラー(例えば、2404)に挟まれる紙2403に写真を印刷するためにプリントヘッド2402が用意されている。2つのインクジェット・プリントヘッド2402,2411を備えるという実施例に従い、図249には代替案2410が示されている。プリントヘッド2411は、写真に関連のある重要な情報を写真2403の裏面に印刷するために用意されている。例えば、その写真を撮った時間や日付が、そのインクジェット・プリントヘッド2411によってその裏面に印刷されることができる。加えて、そのアートカム装置はグローバル・ポジショニング・センサーを備えるかも知れない。該センサーは、アートカム中央プロセッサによってデータ取り出しが行われ、その写真が撮られた場所を確定するために利用されるかも知れない。この付加情報は、また、写真出力2403の裏面に印刷されるかも知れない。
技術13の説明
In a further improvement, a second ink jet is provided for printing on the back side of the photograph. In FIG. 248, a schematic representation of a standard arrangement is shown. A print head 2402 is provided for printing a photograph on paper 2403 sandwiched between rollers (eg, 2404). According to an embodiment with two inkjet printheads 2402, 2411, an alternative 2410 is shown in FIG. The print head 2411 is prepared for printing important information related to the photograph on the back side of the photograph 2403. For example, the time and date when the photo was taken can be printed on the back side by the inkjet printhead 2411. In addition, the art cam device may be equipped with a global positioning sensor. The sensor may be used to determine where the data was taken and the picture was taken by the Artcam central processor. This additional information may also be printed on the back side of the photographic output 2403.
Explanation of Technology 13

プリントロールは堅く巻かれた形態で提供される。残念なことに、プリントロールを堅く巻いた結果として、プリントメディアの特性が、アートカムシステムにより出力される写真には過量のカールがもたらされるというようになるかも知れない。   The print roll is provided in a tightly wound form. Unfortunately, as a result of tightly rolling the print roll, the characteristics of the print media may result in an excessive amount of curl in the photos output by the art cam system.

図250を参照すると、3個のローラー配列2511−2513を有するシステムを提供する、プリントロールの別の配列が示されている。そのローラー配列は、プリントロールを抜け出たプリントメディア2514に、しっかりとしたアンチカールを与える。それらの3つのローラー2511−2513はメディア2514を挟み込み、ピンチローラー(例えば、2517)によってプリントヘッド2516へ搬送される前にその紙にアンチカールを与える。それらの3つのローラー2511−2513は、プリントロールケース、或いはアートカム装置の内部に配置されることができる。
技術15の説明
Referring to FIG. 250, another arrangement of print rolls is shown that provides a system having three roller arrangements 2511-2513. The roller array provides a firm anti-curl to the print media 2514 that has exited the print roll. These three rollers 2511-2513 sandwich the media 2514 and provide anti-curl to the paper before being conveyed to the print head 2516 by a pinch roller (eg, 2517). Those three rollers 2511-2513 can be arranged inside a print roll case or an art cam device.
Explanation of Technology 15

図251を参照すると、さらなる改善では、観察者2703に、立体的、或いは疑似三次元的な効果で見せるような写真画像を作ることが望まれる。これらの効果は、2つの画像をすぐ近くに同時に記録し、1つ目の画像を観察者の右眼2704に与え、2つ目の画像を観察者の左眼2705に与えることにより得ることができる。左眼と右眼のために画像を記録し、そして左眼には左の立体的画像を見せ、右眼には右の立体的画像を見せることにより、3次元の立体効果を作り出すことができる。   Referring to FIG. 251, in a further improvement, it is desired to create a photographic image that can be shown to the viewer 2703 with a stereoscopic or pseudo three-dimensional effect. These effects can be obtained by recording two images in close proximity simultaneously, giving the first image to the viewer's right eye 2704 and the second image to the viewer's left eye 2705. it can. 3D stereoscopic effects can be created by recording images for the left and right eyes, and showing the left stereoscopic image to the left eye and the right stereoscopic image to the right eye .

さらなる改善では、左右の眼の画像を取得する、一連のレンズ状の透明な柱によって、写真や立体画像2702は、以下のように、よりはっきりとなるように、構成されるだろう。   In a further improvement, with a series of lenticular transparent columns that capture left and right eye images, the photo or stereo image 2702 will be constructed to be more distinct as follows.

図252を参照すると、写真紙2702の表面部分の断面図が示されている。断面図2710に明らかなように、写真紙は、左右の立体視が可能となるようにデザインされた、一連のレンズ状の列を有する。画像は、透明な写真紙2710の底面2712に印刷される。   Referring to FIG. 252, a cross-sectional view of the surface portion of photographic paper 2702 is shown. As is apparent in cross-sectional view 2710, the photographic paper has a series of lenticular rows designed to allow left and right stereoscopic viewing. The image is printed on the bottom surface 2712 of the transparent photographic paper 2710.

1つの画素のピッチ2713は80μmで、ドットの配列ピッチ2714は20μmである。それ故に、1つの画素につき4つのドット2714−2717が配置される。2つのドット2714−2715は左側の立体視のために用意され、2つのドット2716−2717は右側の立体視のために用意される。その写真紙を見る右眼は右側の画素ドット2716,2717の像を取得し(2720,2721)、左眼は左側のドット2725,2726の像を取得する(2723,2724)。それ故、2つの画像がそれぞれの眼に別々に示され、実体写真効果が生じる。主として、2711のような各列(column)のレンズ状の外形に起因する実体写真効果。   The pitch 2713 of one pixel is 80 μm, and the dot arrangement pitch 2714 is 20 μm. Therefore, four dots 2714-2717 are arranged per pixel. Two dots 2714-2715 are prepared for left stereoscopic viewing, and two dots 2716-2717 are prepared for right stereoscopic viewing. The right eye looking at the photographic paper obtains the image of the right pixel dots 2716, 2717 (2720, 2721), and the left eye obtains the image of the left dots 2725, 2726 (2723, 2724). Therefore, the two images are shown separately for each eye, resulting in a stereographic effect. Entity photo effect mainly due to the lens-shaped outer shape of each column such as 2711.

ここで、図253を参照すると、紙2710の下面部の斜視図が示されている。図253の説明図は、4つのドット2731−2734を有する画素のピッチに加えて、各ドット2730のドットピッチを示すために作図線を含む。図253に明らかなように、右側立体視のために用意された2つのドット2731−2732、及び、左側立体視のために用意された2つのドット2733−2734の4つのドットにより各画素が構成される。そのドット、例えば、2730はプリントメディア2710に配置されているので、該メディアが裏返された時に、正しい立体視が行われる。   Referring now to FIG. 253, a perspective view of the bottom surface of paper 2710 is shown. The illustration of FIG. 253 includes a construction line to indicate the dot pitch of each dot 2730 in addition to the pitch of the pixels having four dots 2731-2734. As is apparent from FIG. 253, each pixel is composed of four dots, two dots 2731-2732 prepared for right stereoscopic viewing and two dots 2733-2734 prepared for left stereoscopic viewing. Is done. Since the dots, for example, 2730, are arranged on the print medium 2710, when the medium is turned over, correct stereoscopic viewing is performed.

ここで、図254を参照すると、立体画像を撮像する1つの方法が論じられるだろう。望ましくは、携帯用カメラ装置に配置されたCCDカプラー2740,2741により2つの画像が撮像される。各CCD装置2740,2741は別々の画像を取得し、それら別々の画像は、図235に示されるような左右交互の方法で、立体処理ユニット2742にて結合されるべきである。画像が立体処理ユニット2742にて正しく交互配置されると、その画像は、プリントエンジン2743、及び、写真紙2710の表面2746にその画像をプリントするプリントヘッド2744に送られる。   Referring now to FIG. 254, one method for capturing a stereoscopic image will be discussed. Desirably, two images are picked up by CCD couplers 2740 and 2741 arranged in the portable camera device. Each CCD device 2740, 2741 acquires a separate image, and these separate images should be combined in the stereo processing unit 2742 in a left-right alternating manner as shown in FIG. When the images are correctly interleaved in the stereo processing unit 2742, the images are sent to a print engine 2743 and a print head 2744 that prints the images on the surface 2746 of the photographic paper 2710.

写真紙2710の現在位置が位置合わせユニット2750により検知され、その現在位置が、プリントヘッド2744の制御のためにプリントエンジン2743によりフィードバックされる。その位置は、LEDタイプの装置2780がプリントメディア2710のレンズ状面を照らすと共に、プリントメディア2710の反対側の光導電体2781が周期的な明るさの変化を測定することにより決定される。   The current position of the photographic paper 2710 is detected by the alignment unit 2750, and the current position is fed back by the print engine 2743 for control of the print head 2744. Its position is determined by LED type device 2780 illuminating the lenticular surface of print media 2710 and photoconductor 2781 on the opposite side of print media 2710 measuring periodic brightness changes.

図255を参照すると、破線2750により示される位置合わせユニットの動作がここでさらに説明される。写真紙2710はローラー2751,2752に挟まれ、ローラー2752は、写真紙(プリントメディア)2710のレンズ状面2754に一致する面を有するように構成されている。その写真紙2710のレンズの周期が2780mmのオーダーなので、ローラー2752の表面は、写真紙2710のレンズ状面のように、誇張して示される。レンズ状写真紙の緻密な周期は、ローラー2752がプリントメディアの他の形態にも同様に使用できることを意味している。   Referring to FIG. 255, the operation of the alignment unit indicated by dashed line 2750 will now be further described. The photographic paper 2710 is sandwiched between rollers 2751 and 2752, and the roller 2752 is configured to have a surface that coincides with the lens-like surface 2754 of the photographic paper (print media) 2710. Since the lens period of the photographic paper 2710 is on the order of 2780 mm, the surface of the roller 2752 is shown exaggerated like the lenticular surface of the photographic paper 2710. The precise period of the lenticular photographic paper means that the roller 2752 can be used for other forms of print media as well.

ローラー2752の表面は、ローラー2752との一定の空間的関係をプリントメディア2710が維持することを保証する。従って、要求に応じてローラー2752を回転し、それによってプリントヘッド2744を通過するようにプリントメディア2710を搬送するように、プリントローラー2751,2752はプリントエンジン2743の制御下で位置合わせユニット2750によりモニターされながら駆動される。結果として、プリントヘッド2744により印刷されるドットとレンズ状列との位置の合致が維持される。   The surface of the roller 2752 ensures that the print media 2710 maintains a certain spatial relationship with the roller 2752. Accordingly, the print rollers 2751 and 2752 are monitored by the alignment unit 2750 under the control of the print engine 2743 to rotate the roller 2752 on demand and thereby transport the print media 2710 through the print head 2744. It is driven while being. As a result, the alignment of the dots printed by the print head 2744 and the lenticular row is maintained.

プリントメディア2710がプリントヘッドを通過するように搬送される際に、プリントヘッド2744により立体画像をプリントすることができる。プリントヘッド2744としては、フルページ幅のプリントヘッドが望ましい。   A three-dimensional image can be printed by the print head 2744 when the print medium 2710 is conveyed so as to pass through the print head. The print head 2744 is preferably a full page width print head.

もちろん、プリントヘッド2744に関連する、プリントメディア2710の現在位置を他の装置により決定することも可能である。   Of course, the current location of the print media 2710 relative to the print head 2744 can be determined by other devices.

図256を参照すると、好適な形状のレンズ状紙2761と、対応するインク供給(不図示)とを有するプリンターロール2760を結合することにより、カメラ装置が、提案された実施例の原則に従って提供され得る。その紙2761は、プリントローラー2760からピンチローラー2763,2763によってプリント装置2764に取り出される。該プリント装置2764は、さらに、ピンチローラー2765,2766、カッター2767、プラテン2769、ピンチローラー2751,2752、及びプリントヘッド2744を有する。立体画像はプリントヘッド2744によってプリントされ、その紙2761がカッター2767により切断された後に取り出される。その出力2770は透明な形態である。   Referring to FIG. 256, a camera device is provided according to the principles of the proposed embodiment by combining a printer roll 2760 with a suitably shaped lenticular paper 2761 and a corresponding ink supply (not shown). obtain. The paper 2761 is taken out from the print roller 2760 to the printing device 2764 by the pinch rollers 2763 and 2763. The printing device 2764 further includes pinch rollers 2765 and 2766, a cutter 2767, a platen 2769, pinch rollers 2751 and 2752, and a print head 2744. The three-dimensional image is printed by the print head 2744, and the paper 2761 is taken out after being cut by the cutter 2767. Its output 2770 is in a transparent form.

図257を参照すると、画像の排出物2770の上に、平坦な白の面2771を付着することができる。これは、透明2770を貼り付ける粘着面の使用により成し遂げられる。続いて、左右のステレオ画像を生成して、撮影画像に三次元効果を与えるように、図251に示されるように、レンズシステムを通して画像が視認される。図256に描かれたカメラシステムは、理想的には、写真を撮影して直ぐに立体写真を得たい場所に運ぶことができるような携帯用である。
技術17の説明
技術21の説明
Referring to FIG. 257, a flat white surface 2771 can be deposited on the image output 2770. This is accomplished through the use of an adhesive surface to which transparent 2770 is applied. Subsequently, the left and right stereo images are generated, and the image is visually recognized through the lens system as shown in FIG. 251 so as to give a three-dimensional effect to the captured image. The camera system depicted in FIG. 256 is ideally portable so that a photograph can be taken and taken immediately to a place where a stereoscopic photograph is desired.
Explanation of Technology 17 Explanation of Technology 21

さらなる改善では、堅くロール状に巻かれて格納される画像メディアは、異方性のリブ構造を持つように処理され、ロール状で運ぶのに好適で、該プリントメディアに印刷された画像を見るときには該プリントメディアのカール度合いが減少されるようになっている。   In a further improvement, image media that are tightly rolled and stored are processed to have an anisotropic rib structure, suitable for carrying in rolls, and viewing images printed on the print media Sometimes the curl degree of the print media is reduced.

ここで図259を参照すると、この改善の本質に従って取り扱われるプリントメディア3311が示されている(3310)。該プリントメディア3311は、他の形態が好適だけれども、プラスチックの平面的なフィルムにて構成される。該プリントメディア3311は、図259の拡大図に示されるように、ポリマーのリブ状構造3312を有するように前処理されており、実際の列のピッチが約200mである。したがって、該プリントメディア331の一方の表面は、該プリントメディア331の全長を上下に走行する一連の列3312を有するように処理されている。該列3312の断面は図に拡大図で示されている。   Referring now to FIG. 259, there is shown print media 3311 that is handled according to the nature of this improvement (3310). The print medium 3311 is made of a plastic flat film, although other forms are suitable. As shown in the enlarged view of FIG. 259, the print media 3311 is pretreated to have a polymer rib-like structure 3312, and the actual row pitch is about 200 m. Thus, one surface of the print media 331 is treated to have a series of rows 3312 that run up and down the entire length of the print media 331. The cross section of row 3312 is shown in an enlarged view in the figure.

一連の列3312を使用することのメリットは、プリントメディア3311の表面部分に力3313が加えられた場合に明らかである。その列3312は、プリントメディア3311が堅く巻かれることを許容する一方で、3316の向きにプリントメディア3311が巻かれることに抵抗する。従って、加えられた如何なる力3313も、3315及び3316の両向きに伝達しそうである。そのメディア3311の異方性の性質は、3315及び3316の両向きに支持を与えるように機能するリブ3312によってもたらされ、それによってメディア3311のカールを制限する。また、その材料の異方性の強度は、ロールの中心軸に沿った強度で格納されることが許容される。   The advantage of using a series of rows 3312 is apparent when a force 3313 is applied to the surface portion of the print media 3311. The row 3312 allows the print media 3311 to be tightly wound while resisting the print media 3311 from being wound in the 3316 orientation. Thus, any applied force 3313 is likely to be transmitted in both directions 3315 and 3316. The anisotropic nature of the media 3311 is provided by ribs 3312 that function to provide support in both directions 3315 and 3316, thereby limiting the curl of the media 3311. Further, the anisotropic strength of the material is allowed to be stored with the strength along the central axis of the roll.

図260を参照すると、ユーザの手3320,3321の中で画像3311を単に保持して、ポイント3324,3325に僅かな圧力を与えることによって、カーリングによる効果を減少させて、メディア3310上の画像を見ることができる。   Referring to FIG. 260, by simply holding the image 3311 in the user's hand 3320, 3321 and applying a slight pressure on the points 3324, 3325, the effect of curling is reduced and the image on the media 3310 is displayed. Can see.

もちろん、異方性のメディアは、該メディアがプラスチック材料を含んでいる場合には多くの技術を利用して製造されることができる。例えば、それは、押し出し成形法により製造されることができる。或いは、他の技術が利用され得る。例えば、1つの製造方法が図261に模式的に示される(3340)。該方法では、ローラー3342,3343の間でメディア3341がプレスされるようになっている。図261(a)に示すように、ローラー3343はフラットな面を有し、ローラー3342はギザギザのある面3345を有している。説明のため、鋸状の外形は図261に拡大されている。   Of course, anisotropic media can be manufactured using a number of techniques when the media includes a plastic material. For example, it can be manufactured by an extrusion process. Alternatively, other techniques can be utilized. For example, one manufacturing method is schematically shown in FIG. 261 (3340). In this method, the medium 3341 is pressed between the rollers 3342 and 3343. As shown in FIG. 261 (a), the roller 3343 has a flat surface, and the roller 3342 has a jagged surface 3345. For illustration purposes, the saw-shaped outer shape is enlarged in FIG.

メディアがそのようなプロセス3340での利用に適していない場合、異方性メディアは、互いに貼り合わされた2枚のフィルムの面を利用することによってもたらされる。そのようなプロセス3350は図262に示される。画像の印刷が望まれる第1面3351は、接着剤や熱融合等の方法によって要求通りに第2面3352に貼り付けられる。   If the media is not suitable for use in such a process 3340, anisotropic media is provided by utilizing the surfaces of two films that are laminated together. Such a process 3350 is shown in FIG. The first surface 3351 for which printing of an image is desired is affixed to the second surface 3352 as required by a method such as an adhesive or heat fusion.

さらに、プリントメディアの製造の他の方法が可能である。例えば、図263及び図264を参照すると、プリントメディア3360の構造が断面図で示される。該プリントメディア3360の構造は、繊維型の中に引かれる、軟ポリエチレン・ナフタレートにより形成された繊維からなる強化ポリマーを含む第1繊維材料3361から形成される。ポリエチレン等を含む第2の熱流動ポリマー(heat−flowable−polymer)3362は、インク/画像の化学薬品のキャリッジのための“紙”の基材を提供するために使用される。繊維3361と印刷ベース3362とが、図264に示すように一体ユニットを形成するように、メディア・ポリマー3362は粘着力が残っている間(例えば、加熱後)繊維材料3361に押し付けられる。図263及び図264のメディアの配列は、多くの技術に従って作られることができる。次に、図265を参照すると、繊維状材料の成型スプール3380を使用する、第1のそのような技術が示されている。その技術では、多くのスプールと、対応する繊維3381とが、所望のプリントロール長に相当している。それらのスプール3380は、対応する繊維3381が第1ローラー3382に供給されるように配列されている。そして、それらの繊維3381は、加熱された粘着性のあるプリントメディアの層を該繊維に供給するプリントメディア塗布ユニット3384を通過するように引かれる。その後、ローラー3385,3386が、繊維とプリントメディアとが一つに融合するように必要な圧力を供給すると共に、最後に異方性面3388を形成するようにプリントメディアの面を平らにする。その後、該面3388は裁断され、上述のように異方性プリントメディアを形成するように巻かれる。   In addition, other methods of manufacturing print media are possible. For example, referring to FIGS. 263 and 264, the structure of print media 3360 is shown in cross-section. The structure of the print media 3360 is formed from a first fiber material 3361 comprising a reinforced polymer made of soft polyethylene naphthalate drawn into a fiber mold. A second heat-flowable polymer 3362 including polyethylene or the like is used to provide a "paper" substrate for the ink / image chemical carriage. The media polymer 3362 is pressed against the fiber material 3361 while the adhesive force remains (eg, after heating) so that the fibers 3361 and the print base 3362 form an integral unit as shown in FIG. The media arrangement of FIGS. 263 and 264 can be made according to a number of techniques. Referring now to FIG. 265, a first such technique using a fibrous material molding spool 3380 is shown. In that technique, many spools and corresponding fibers 3381 correspond to the desired print roll length. The spools 3380 are arranged such that the corresponding fibers 3381 are supplied to the first roller 3382. The fibers 3381 are then drawn through a print media application unit 3384 that supplies a heated adhesive print media layer to the fibers. Thereafter, rollers 3385 and 3386 provide the necessary pressure to fuse the fibers and print media together, and finally flatten the print media surface to form an anisotropic surface 3388. Thereafter, the surface 3388 is cut and wound to form an anisotropic print media as described above.

もちろん、要望に応じて繊維状材料の形成を他の形態で行うことが可能である。例えば、図266には、タンク3390からファイバ3391を引く方法により繊維状材料を押し出して生成する1つの形態が示されている。図266の装置は図265のスプール3380に置き換えることができる。
技術24の説明
Of course, it is possible to form the fibrous material in other forms as desired. For example, FIG. 266 shows one form in which fibrous material is extruded and generated by a method of pulling fiber 3391 from tank 3390. The apparatus of FIG. 266 can be replaced with the spool 3380 of FIG.
Explanation of Technology 24

さらなる改良版では、前記アートカムシステムに利用されるアルゴリズムが説明される。該アルゴリズムは、入力画像中における一群の画素を、出力画像では“ブラッシュストローク”で置き換えることにより、写真画像を“描いた”ような演出に自動変換するものである。該アルゴリズムは、ブラッシュストロークをヴァン・ゴッホ・スタイルに近付けるように、画像中のフラットな部分での主要なエッジを自動検出し、該エッジの方向の情報を増殖させる(propagate)ように働く。該アルゴリズムは、前述のアートカム装置にて履行するのに好適である。   In a further refinement, an algorithm used for the art cam system is described. The algorithm automatically converts a group of pixels in an input image into a “drawn” effect by replacing a “brush stroke” in the output image. The algorithm works to automatically detect major edges in the flat part of the image and propagate information on the direction of the edges so that the brush stroke approaches the Van Gogh style. The algorithm is suitable for implementation on the art cam device described above.

まず、図267を参照すると、そのアルゴリズムは多くのステップ3601を含む。これらのステップは、エッジを検出するために画像のフィルタリングをする第1ステップ(3602)を含む。次に、それらのエッジは、最終的なエッジを決定する処理(3605)の前に、閾値処理、或いは“スケルトン処理(3604)”される。そして、それらのエッジにベジエ曲線が適合(fit)される。次に、該曲線はオフセットされ(3607)、最終的な画像にブラッシュストロークが描かれる(3608)。それらの処理3607,3608は、画像がブラッシュストロークにより十分に覆われるようになるまで繰り返される。その後、画像への最後の“修正”が実行される(3609)。   Referring first to FIG. 267, the algorithm includes a number of steps 3601. These steps include a first step (3602) of filtering the image to detect edges. These edges are then thresholded or “skeletonized (3604)” prior to the final edge determination (3605). Then, a Bezier curve is fitted to these edges. The curve is then offset (3607) and a brush stroke is drawn (3608) in the final image. These processes 3607 and 3608 are repeated until the image is sufficiently covered by the brush stroke. Thereafter, the last “correction” to the image is performed (3609).

次にそれぞれのステップをより詳細に説明する。エッジを検出するためにフィルタリングをする第1のステップ(3602)では、図268に示すような係数の集合3612,3613を持つソーベル(Sobel)の3×3のフィルターが前記画像に適用される。ソーベルフィルターはデジタル画像処理にて使用される、良く知られたフィルターであり、その特性は、マサチューセッツのAddison−Wesley出版社により1992年に出版された、規範となる教科書“デジタル画像処理”にてGonzalez及びWoodsにより197−201頁に完全に討論されている。ソーベル微分フィルターは、フィルタリング前に画像をグレースケールに変換するか、或いは、画像を各カラーチャネルにフィルタリングして最大値を取ることにより適用されることができる。ソーベルフィルタリングにより、画像の画素単位のエッジ強度を示すグレースケール画像が作成される。   Next, each step will be described in more detail. In a first step (3602) of filtering to detect edges, a Sobel 3 × 3 filter having a set of coefficients 3612 and 3613 as shown in FIG. 268 is applied to the image. The Sobel filter is a well-known filter used in digital image processing, and its characteristics are the normative textbook “Digital Image Processing” published in 1992 by the Addison-Wesley publisher in Massachusetts. Is fully discussed by Gonzalez and Woods on pages 197-201. The Sobel differential filter can be applied by converting the image to grayscale before filtering, or by filtering the image into each color channel and taking the maximum value. By Sobel filtering, a grayscale image indicating the edge strength of each pixel of the image is created.

次に、対応する二値画像を作成するために閾値処理が行われる(3603)。その閾値を変化させることができるが、最大強度値の50%の値が適切である。エッジを強化した画像(edge strength image)中の各画素が該閾値と比較され、もし閾値よりも大きければ“1”が出力され、閾値よりも小さければ“0”が出力される。この処理の結果、閾値エッジマップ(threshold edge map)が作成される。   Next, a threshold process is performed to create a corresponding binary image (3603). The threshold can be varied, but a value of 50% of the maximum intensity value is appropriate. Each pixel in the edge strength image is compared with the threshold, and if it is greater than the threshold, “1” is output, and if it is less than the threshold, “0” is output. As a result of this processing, a threshold edge map is created.

次に、図267のステップ3604では前記閾値エッジマップが“スケルトン処理”される。画像をスケルトンする処理は、上述参考教科書の491〜494頁や、他の標準的な教科書に完全に明確に記載されている。そのスケルトン処理は、前記閾値エッジマップにおける相当数の特徴を維持しつつ、“薄く”スケルトン化されたエッジマップを作成する。   Next, in step 3604 of FIG. 267, the threshold edge map is “skeletonized”. The process of skeletonizing an image is described completely and clearly in pages 491 to 494 of the above reference textbooks and other standard textbooks. The skeleton process creates a “thin” skeletonized edge map while maintaining a significant number of features in the threshold edge map.

次のステップでは、画像におけるポイントのリストを含むデータ構造を生じさせる、スケルトン化されたエッジマップにおけるエッジが決定される。好ましくは、予め決められた最小値よりも長いエッジのみがリストに加えられる。   In the next step, an edge in the skeletonized edge map is determined that yields a data structure containing a list of points in the image. Preferably, only edges that are longer than a predetermined minimum value are added to the list.

前記スケルトン化された画像は、多重分岐が可能な1画素幅のエッジのみを有するので、C++コード片(code fragment)で表された次のアルゴリズムは、スケルトン化された画像において切れ目のないエッジに属するポイントを決定したり同定したりする1つの方法を提示する。それは、分岐したエッジを別々のエッジに分解し、各分岐の湾曲を最小限にする方向にエッジに沿って伸びることを選択する。例えば、分岐ポイントにて、最小の湾曲を生じさせる分岐を助ける。そのコードは以下の通りである。:

Figure 0004309954
Figure 0004309954
Figure 0004309954
Figure 0004309954
Since the skeletonized image has only one-pixel-wide edges that can be multi-branched, the following algorithm represented by a C ++ code fragment can be applied to unbroken edges in the skeletonized image. One way to determine and identify the points to which it belongs is presented. It breaks the bifurcated edge into separate edges and chooses to extend along the edge in a direction that minimizes the curvature of each bifurcation. For example, at the bifurcation point, help the bifurcation that produces minimal curvature. The code is as follows: :
Figure 0004309954
Figure 0004309954
Figure 0004309954
Figure 0004309954

スケルトン化されたエッジマップにこのアルゴリズムを使用することにより、少なくとも所定のサイズを有するエッジのリストが生成される。好適なサイズは、20画素長であることが分っている。   By using this algorithm on the skeletonized edge map, a list of edges having at least a predetermined size is generated. A suitable size has been found to be 20 pixels long.

図267の次のステップ3606では、ステップ3605にて得られた各エッジリストのそれぞれにベジエ曲線が適合される。エッジリストのそれぞれのため、区分的なベジエ曲線がポイントのリストに適合される。区分的ベジエ曲線を適合させる好適なアルゴリズムは、“デジタル化された曲線を自動的に適合させるためのアルゴリズム”シュナイダー,P.J.著、Glassner,A.S.編集、Graphics Gems、Academic出版、1990年にて説明されるようなシュナイダー曲線適合アルゴリズムである。このアルゴリズムは、パラメトリックの連続性ではなく幾何学的な連続性のみを目的とし、素早く収束するようにしている。シュナイダーアルゴリズムは機能的であり、もし適合度が乏しければ、最大エラー部で曲線を再分割し、該分割されたものに曲線を適合させる。次に、その分割部分での接線の推定は、分割点のいずれかのみを使用してなされる。密集した点集合のために、ローカルノイズが増幅される傾向がある。曲線を適合することの、改良された品質は、接線の基礎とした分割点から遠ざかる点を使用することで得られる。   In the next step 3606 of FIG. 267, a Bezier curve is fitted to each of the edge lists obtained in step 3605. For each of the edge lists, a piecewise Bezier curve is fitted to the list of points. A suitable algorithm for fitting piecewise Bezier curves is "Algorithm for automatically fitting digitized curves" Schneider, P. et al. J. et al. Written by Glassner, A .; S. Schneider curve fitting algorithm as described in Edit, Graphics Gems, Academic Publishing, 1990. This algorithm is intended only for geometric continuity, not parametric continuity, so that it converges quickly. The Schneider algorithm is functional, and if the fitness is poor, the curve is subdivided at the maximum error part, and the curve is fitted to the divided one. Next, the estimation of the tangent at the divided portion is performed using only one of the dividing points. Due to the dense point set, local noise tends to be amplified. The improved quality of fitting the curve is obtained by using points away from the division point on which the tangent is based.

図267の次のステップ3607では、所望の“ブラッシュストローク幅”の半分だけ初期のカーブリストから曲線がオフセットされる。そのオフセットは、最初の主曲線の両側に平行となるように、互いにほぼ1ストローク幅だけ離れる2つの曲線を生じさせる。   In the next step 3607 of FIG. 267, the curve is offset from the initial curve list by half the desired “brush stroke width”. The offset results in two curves that are approximately one stroke apart from each other so that they are parallel to both sides of the first main curve.

特定の区分的ベジエ曲線にほぼ平行な区分的ベジエ曲線を生成するため、次のステップを含むアルゴリズムが使用される。
i. 空のポイントリストの作成
ii. 空の接線(ベクトル)リストの作成
iii. 区分的ベジエ曲線を形成する曲線部分のそれぞれに選択されたポイントを評価し、特定のオフセット値によりそれらをオフセットさせる。前記ポイントリストにオフセットポイントを付け足し、対応する接線を前記接線リストに付け足す。
iv. 得られたポイントリストに区分的ベジエ曲線を適合させる。曲線を適合させるプロセスにおいて接線を予測するのではなく、オフセットポイントに関連した正確な接線を使用する。
To generate a piecewise Bezier curve that is approximately parallel to a particular piecewise Bezier curve, an algorithm is used that includes the following steps.
i. Creating an empty point list
ii. Creating an empty tangent (vector) list
iii. Evaluate the selected points for each of the curve portions that form a piecewise Bezier curve and offset them by a specific offset value. An offset point is added to the point list, and a corresponding tangent is added to the tangent list.
iv. Fit a piecewise Bezier curve to the resulting list of points. Rather than predicting the tangent in the process of fitting the curve, use the exact tangent associated with the offset point.

各曲線の区分は次のようにオフセットさせる:
i. 曲線値と、標準化された接線と、標準化された法線とを求める。その法線は、0.0以上1.0以下の、等間隔に配置されるパラメータ値(例えば、0.25の間隔)で画像のサイズが標準化される。
ii. 前記特定のオフセット値により法線をscaleする。
iii. 前記曲線のポイントと縮小された法線とを使用して線分を組み立てる。
iv. もし、2本の線分が交差するならば、1本の線分に関連するポイントを削除する。
v. 存続するポイント(surviving point)をポイントリストに付け足し、それらに対応する接線を接線リストに付け足す。もし、問題の線分が区分的曲線の最後のものであったなら、パラメータ値1.0に関連するポイントのみを付け足し、次の線分のパラメータ値0.0に関連するポイントは複写する。
Each curve segment is offset as follows:
i. A curve value, a standardized tangent, and a standardized normal are obtained. The size of the normal is standardized by parameter values (for example, an interval of 0.25) arranged at equal intervals between 0.0 and 1.0.
ii. The normal is scaled by the specific offset value.
iii. Assemble the line segment using the points of the curve and the reduced normal.
iv. If two line segments intersect, delete the point associated with one line segment.
v. Add surviving points to the point list and add corresponding tangents to the tangent list. If the line segment in question is the last piece of a piecewise curve, only the point associated with parameter value 1.0 is added, and the point associated with parameter value 0.0 of the next line segment is copied.

各曲線部分をオフセットさせるプロセスは次のように行われる。すなわち、
1. 初めに、0.0以上1.0以下の、ベジエ曲線上に等間隔に配置されるパラメータ値のため、各パラメータ値Pn(図269)のため、曲線値3630と、標準化された接線3631と、標準化された法線3632とが計算される。
2. 次に、特定のオフセット値により前記法線3632がscaleされる。
3. 次に、ポイント3630からポイント3636(scaleされた法線3634の端のポイント)までの線分が計算される。
4. 次に、その線分3630−3639は、曲線上の他の全てのポイント(例えば、3638,3639)がチェックされる。もし、いずれか2つの線分が交差しているならば、ポイントの1つ3636は廃棄される。存続するポイント(surviving point)をポイントリストに付け足し、それらに対応する接線を接線リストに付け足す。もし、問題の線分が区分的曲線の最後のものであったなら、パラメータ値1.0に関連するポイントのみを付け足し、次の線分のパラメータ値0.0に関連するポイントは複写する。
The process of offsetting each curve portion is performed as follows. That is,
1. First, for parameter values that are 0.0 to 1.0 and are equally spaced on the Bezier curve, for each parameter value Pn (FIG. 269), a curve value 3630 and a standardized tangent 3631 , A normalized normal 3632 is calculated.
2. Next, the normal 3632 is scaled with a specific offset value.
3. Next, the line segment from point 3630 to point 3636 (the end point of the scaled normal 3634) is calculated.
4). The line segments 3630-3639 are then checked for all other points on the curve (eg, 3638, 3639). If any two line segments intersect, one of the points 3636 is discarded. Add surviving points to the point list and add corresponding tangents to the tangent list. If the line segment in question is the last piece of a piecewise curve, only the point associated with parameter value 1.0 is added, and the point associated with parameter value 0.0 of the next line segment is copied.

図270を参照すると、一連のベジエ曲線区分(例えば、C1,C2等)を作成するため、図267のステップ3607に従った曲線のオフセットの最終結果が示されている。最初に、一定間隔で配置された一連のパラメータポイントP1−P5。次に、各ポイントP1−P5に対して、法線のポイントN1−N5(図269のポイント3636に対応する)が作成される。次に、それらのポイントN1−N5を利用して、区分的ベジエ曲線3640が作成される。このプロセスは、ポイントN6−N10を含む反対側の曲線3641にも適用される。このプロセスは、続く区分的曲線C2等にも適用される。この結果、互いに平行で、ほぼ1ブラッシュストロークの幅だけ離れて配置される2本の曲線3640,3641が得られる。   Referring to FIG. 270, the final result of the curve offset according to step 3607 of FIG. 267 to create a series of Bezier curve segments (eg, C1, C2, etc.) is shown. First, a series of parameter points P1-P5 arranged at regular intervals. Next, normal points N1-N5 (corresponding to point 3636 in FIG. 269) are created for each point P1-P5. Next, a piecewise Bezier curve 3640 is created using these points N1-N5. This process also applies to the opposite curve 3641 that includes points N6-N10. This process is also applied to the following piecewise curve C2 and the like. This results in two curves 3640 and 3641 that are parallel to each other and are spaced apart by approximately one brush stroke width.

次に、一連のブラッシュストロークが、前記曲線に沿って、出力画像中に配置される。それらのストロークは、曲線の接線方向に方向付けられる。各ブラッシュストロークは、他のブラッシュストロークと重ならない場所を規定するフットプリントによって規定される。そのフットプリントが出力画像中に既に表示されているフットプリントと重ならない場合には、ブラッシュストロークはその曲線に沿うようにのみ配置される。ブラッシュストロークが配置されていない曲線は廃棄され、ステップ3607と3608のプロセスが、曲線がなくなるまで(若干の修正を加えられながら)繰り返される。ステップ3607における若干の修正は、図270の曲線C1から曲線をオフセットさせる場合に必要な、半分のブラッシュストロークよりも大きく曲線をオフセットさせることである。   A series of brush strokes is then placed in the output image along the curve. Those strokes are directed in the tangential direction of the curve. Each brush stroke is defined by a footprint that defines where it does not overlap other brush strokes. If the footprint does not overlap with the footprint already displayed in the output image, the brush stroke is only placed along the curve. Curves without brush strokes are discarded and steps 3607 and 3608 are repeated until there are no more curves (with some modifications). A slight modification in step 3607 is to offset the curve by more than half the brush stroke required to offset the curve from curve C1 in FIG.

上述の方法は、画像中の興味のあるオブジェクトから一連のブラッシュストロークが放射されるようにすることにも利用できる。   The method described above can also be used to cause a series of brush strokes to be emitted from the object of interest in the image.

与えられたサイズのブラッシュストロークで画像が覆われるのに続いて、より小さなブラッシュストロークでさらなる処理がなされ、画像においてブラッシュストロークの重要な特徴をさらに正しくするように、閾値レベルが高められる。そのようなテクニックは、細かさが要求される特定の部分にゴッホが使用するテクニックに近似している。
技術26の説明
Following the image being covered with a brush stroke of a given size, further processing is done with a smaller brush stroke, and the threshold level is increased so as to further correct the important features of the brush stroke in the image. Such a technique approximates the technique Van Gogh uses for specific parts that require fineness.
Explanation of Technology 26

何らかの画像(例えば、写真)のために、該写真等の中の興味を引く領域(例えば、顔等の位置)を割り出せることが望まれる。一旦、画像中における顔の位置が特定されると、図271に示されるように、顔領域に対して吹き出しを配置するような、多くの奇抜な効果を実行する画像処理を単純にできる。顔領域が一旦検出されると、眼鏡のような顔に関連する物を配置する等、顔を変形させるというような他の効果を履行することができる。   It is desirable to be able to determine a region of interest (for example, the position of a face or the like) in the photograph or the like for some image (for example, a photograph). Once the position of the face in the image is specified, as shown in FIG. 271, image processing that performs many unusual effects such as placing a speech balloon on the face area can be simplified. Once the face area is detected, other effects such as deforming the face can be implemented, such as placing objects related to the face such as glasses.

前述したように、画像における領域の検出は、領域に限定して芸術的効果を適用するというような、領域特異的処理に適用できる。例えば、背景の空の領域は幅広のブラッシュストロークで描き、最前面の顔の領域は細かいブラッシュストロークで描くと言った処理である。また、画像における特徴の決定等である。色を基準にした領域の検出は、検出される色が肌の自然な色合いであって、画像における人の顔の検出を行う時に極めて役に立つ。   As described above, detection of a region in an image can be applied to region-specific processing such as applying an artistic effect only to a region. For example, the background sky area is drawn with a wide brush stroke, and the foreground face area is drawn with a fine brush stroke. Moreover, it is the determination of the feature in an image. The detection of the area based on the color is extremely useful when detecting the human face in the image because the detected color is a natural tone of the skin.

照明を変化させると、特定のスペクトルの色のオブジェクトが、輝度や彩度が変化されて画像中に現われるかも知れない。色相はオブジェクトの優位周波数(卓越周波数、dominant frequency)を評価するので、オブジェクトの色は、色相よりも輝度や彩度においての方が大きく異なる傾向がある。図272に示されるように、さらなる改善の方法3801は、輝度や彩度から色相を区別する色空間に、取得した画像をまず変換するという第1のステップを有する。そのようなもので、良く知られている2つの色空間としてはHLS色空間とHSV色空間がある。これらの色空間を含む様々な色空間は、フォーリー,J.D.、ヴァン・ダム、A.、フェイナー、S.K.、ヒューズ、J.F.、コンピュータグラフィックス、原理と実行、第二版、アディソンウェスレー、1990年、584―599ページのような標準的なテキストで十分に説明されている。   When lighting is changed, objects of a specific spectral color may appear in the image with varying brightness and saturation. Since the hue evaluates the dominant frequency of the object (objective frequency), the color of the object tends to differ greatly in luminance and saturation than the hue. As shown in FIG. 272, the further improvement method 3801 includes a first step of first converting the acquired image into a color space that distinguishes hue from luminance and saturation. As such, two well-known color spaces include an HLS color space and an HSV color space. Various color spaces including these color spaces are described in Foley, J. et al. D. Van Dam, A.C. Feiner, S. K. , Hughes, J.A. F. It is well described in standard text, such as Computer Graphics, Principles and Practice, Second Edition, Addison Wesley, 1990, pages 584-599.

次のステップは、多数の入力カラーシード(color seed)を入力することである(3804)。各シード3805は次のように定義される。:
(1)色値のシードカラー範囲
(2)局部的な色の差の制限(a
local color difference limit)
(3)全体的な差の制限(a
global color difference limit)
The next step is to enter a number of input color seeds (3804). Each seed 3805 is defined as follows. :
(1) Seed color range of color values (2) Local color difference limit (a
local color difference limit)
(3) Overall difference limit (a
global color difference limit)

次のステップ3808はビットマップを構築するためにシードを処理することである。   The next step 3808 is to process the seed to build the bitmap.

図271の方法における最後のステップ3807は、入力画像と同じ容量であって、入力画像中の画素が、シードのリスト3805により定義される色域に属することを示すビットマップを出力することである。この方法3801は、別々のパス3808の各シードの処理と、各パスの出力ビットマップと全体の出力ビットマップの結合を含む。個々のビットマップのどんなセット・ビットも全体のビットマップに書かれている。   The last step 3807 in the method of FIG. 271 is to output a bitmap indicating that the pixels in the input image are of the same capacity as the input image and belong to the color gamut defined by the seed list 3805. . The method 3801 includes processing each seed in a separate pass 3808 and combining the output bitmap of each pass with the entire output bitmap. Any set bit of an individual bitmap is written in the entire bitmap.

図273を参照すると、図272のステップ3808がより詳細に示されている。第1のステップ3820では、問題になっているシードが定義されるシードカラーレンジにシードがある全ての色について、シードビットマップが割り出される。次のステップ3821では、該シードビットマップにおける各シードのため、シード位置に連結される入力画像中の4コネクト又は8コネクトの領域を検出する“シード充填”アルゴリズムのためのシード位置として利用される。そのシード充填アルゴリズムは、シード出力ビットマップの領域に属する画素にフラッグを立てる。ステップ3821にてシード出力ビットマップ中でフラッグが立てられたシードは、それらが次のシード充填のためのスタートポイントとして使用されないように、ステップ3820で作成されたシードビットマップから消去される。   Referring to FIG. 273, step 3808 of FIG. 272 is shown in more detail. In a first step 3820, a seed bitmap is determined for all colors that have a seed in the seed color range where the seed in question is defined. In the next step 3821, for each seed in the seed bitmap, it is used as a seed position for a "seed filling" algorithm that detects 4 connect or 8 connect regions in the input image connected to the seed position. . The seed filling algorithm flags pixels belonging to the region of the seed output bitmap. The seeds flagged in the seed output bitmap at step 3821 are erased from the seed bitmap created at step 3820 so that they are not used as a starting point for the next seed fill.

全てのシードがシード充填処理のために使用されると、シードの全てのリストのために、シード出力ビットマップは全体的な出力ビットマップと結合される。   When all seeds are used for the seed filling process, the seed output bitmap is combined with the overall output bitmap for all lists of seeds.

上述の参考文献の979頁〜986頁に開示されているように、シード充填アルゴリズムは標準タイプである。しかしながら、該シード充填アルゴリズムは特定の画素関係テストを有する。   As disclosed on pages 979-986 of the above-mentioned reference, the seed filling algorithm is a standard type. However, the seed filling algorithm has a specific pixel relationship test.

もし、色が、前述の画素の色と局部的色差制限と同程度までに異なり、シードカラーと全体的色差制限と同程度までに異なるならば、画素は現在の領域の一部となる。その色差制限は各色成分毎に別々に決められる。スパンは検出されるか、左右から処理されるので、前述の画素は現在の画素の左の画素である。新しいスパンの初めの部分で、前述の画素の色は、もとのスパンの平均色となるようにされる。シードカラーは、シードカラー範囲の中間色となるようにされる。   If the color differs to the same extent as the pixel color described above and the local color difference limit, and the seed color differs to the same extent as the global color difference limit, the pixel becomes part of the current region. The color difference limit is determined separately for each color component. Since the span is detected or processed from the left and right, the aforementioned pixel is the pixel to the left of the current pixel. At the beginning of the new span, the color of the aforementioned pixel is made to be the average color of the original span. The seed color is set to be an intermediate color in the seed color range.

区別できる色の特徴であるが良く知られた顔のような領域を同定するために、1つのシードを使用するのではなく、シードのリストが使用される。   Rather than using a single seed, a list of seeds is used to identify distinguishable color features but well-known facial-like regions.

局部的色差制限及び全体的色差制限の使用は、画像中の不連続を横切らずに、可能な限り領域を検出するために使用される。領域は様々な色を含むかも知れないが、これらは、その領域にわたって穏やかに変化する。領域における全体の色の変化は、局部的な色の変化よりも一般的に大きい。局部的色差制限の使用(imposing)は、画像の不連続部を横切るというリスクを減少させる。また、それは、全体的色差制限が控えめにならないことを許容する。その領域の検出は、例えば、徐々に明るく或いは暗くなる領域においてでさえより完全にできる。   The use of local and global chrominance limits is used to detect as much of the region as possible without crossing discontinuities in the image. An area may contain a variety of colors, but these vary gently over the area. The overall color change in the region is generally greater than the local color change. The use of local color difference limits reduces the risk of crossing image discontinuities. It also allows the overall color difference limit not to be conservative. The detection of the area can be made more complete, for example, even in areas that gradually become brighter or darker.

入力画像の色空間が色相を基準としている場合、低輝度又は低飽和のため、色相は少々当てにならないので、色相差制限は好ましくは輝度(又は輝度値)及び飽和によって縮小される。したがって、領域中の暗いエリアや飽和していないエリアにおいて色相が当てにならない場合には、検出された領域にそれらのエリアが含まれるようにその効果は縮小される。これは、もちろん、輝度及び飽和に関しての差制限が前提となっている。   If the color space of the input image is based on hue, the hue difference limit is preferably reduced by luminance (or luminance value) and saturation, since the hue is somewhat unreliable due to low luminance or low saturation. Therefore, when the hue is not reliable in a dark area or an unsaturated area in the area, the effect is reduced so that those areas are included in the detected area. This is of course premised on a difference limitation on brightness and saturation.

また、色相六角形の円の特性に一致して、色相差は正確に計算される。   Also, the hue difference is accurately calculated in accordance with the characteristics of the hue hexagonal circle.

画像中のオブジェクトを検出する上記アルゴリズムを使用した場合に、非常に適切な結果がしばしば得られることは分っている。例えば、上記の方法は、多くの固体を有する画像であって、カラーシードが標準的な皮膚の色調にセットされた画像に利用された。その結果は、画像中の個々の顔の位置を正確に探すことができる。
技術27の説明
It has been found that very good results are often obtained when using the above algorithm for detecting objects in an image. For example, the above method was used for images with many solids, where the color seed was set to a standard skin tone. As a result, the position of each face in the image can be accurately searched.
Explanation of Technology 27

さらなる改善では、図274に示すように、ソースとなる画像3901が、対応する“タイル状”のカラー画像3902に変換される。その変換処理については後述する。第1の実施例では、各タイル3094は、出力画像3902において標準的配列を取る。さらに、各タイル3904の色は、入力画像3901における対応画素3905の色から引き出したものである。出力画像におけるタイル化処理は、入力画像3901よりも高解像度で行われ、よって、そのタイル化処理は実際において低解像度画像にするために使用される。   In a further improvement, as shown in FIG. 274, the source image 3901 is converted into a corresponding “tile” color image 3902. The conversion process will be described later. In the first example, each tile 3094 takes a standard arrangement in the output image 3902. Further, the color of each tile 3904 is drawn from the color of the corresponding pixel 3905 in the input image 3901. The tiling process in the output image is performed at a higher resolution than the input image 3901, and thus the tiling process is actually used to make a low resolution image.

もちろん、タイルの形状としては、多くの異なるものが可能である。画像をタイル化するタイルの形状は、好ましくは、全体の画像をタイル化して複製する場合に“パターンユニット”に結合されると良い。例えば、図276に示すように、タイル3908と3909は、複製される際に画像をタイル状にして、パターンユニット3907として結合される。   Of course, many different tile shapes are possible. The shape of the tile that tiles the image is preferably combined with a “pattern unit” when the entire image is tiled and duplicated. For example, as shown in FIG. 276, tiles 3908 and 3909 are combined as a pattern unit 3907 with the image tiled when duplicated.

さらなる実施例においては、一つ一つのタイルは2つのチャンネルを持つ画像により規定される。第1のチャンネル3970は、図276に示すように、タイルの形状と不透明とを規定する。零でない不透明な領域3971は、タイルの一部である画素を規定する。各画素3971の値はその画素の不透明度を示す。図277及び図278を参照すると、第2のチャンネル3980は、高さ(height field)として、タイルにおける画素表面テクスチャを定義する。図278では、図277のA−A’線に沿った断面図が示されており、強度やピーク3991や傾斜3992,3993が示されている。   In a further embodiment, each tile is defined by an image with two channels. The first channel 3970 defines the shape and opacity of the tile, as shown in FIG. A non-zero opaque region 3971 defines pixels that are part of the tile. The value of each pixel 3971 indicates the opacity of that pixel. Referring to FIGS. 277 and 278, the second channel 3980 defines the pixel surface texture in the tile as a height field. FIG. 278 shows a cross-sectional view along the line A-A ′ in FIG. 277, showing the intensity, peak 3991, and slopes 3992 and 3993.

そのアルゴリズムへの入力は以下の通りである。すなわち、
タイルとして再生されるべきカラー画像
上述したようなタイルのパターン
出力解像度
The inputs to the algorithm are as follows: That is,
Color image to be played back as a tile Tile pattern output resolution as described above

付加される光学上の入力パラメータは下記のものである。   The added optical input parameters are as follows.

該アルゴリズムからの出力は、入力画像にタイル状の演出を行うことである。   The output from the algorithm is to perform a tiled effect on the input image.

繰り返しのタイル“パターンユニット”は次のように規定できる:
(1) パターンユニットのサイズ(行の数、列の数)
(2) 画像の第1画素のため、パターンユニットにおけるスタートポイントへのオフセット(行及び列のオフセット)
(3) 連続するパターンユニットの配置についての、垂直方向のオフセット
(4) パターンユニットを構成するタイルのリスト
(5) 1つのパターンユニットにおける、水平方向の連続的なタイルの配置のオフセット
(6) 該パターンの解像度(例えば、該パターンのタイル画像の解像度)
A repeating tile “pattern unit” can be defined as follows:
(1) Pattern unit size (number of rows, number of columns)
(2) Offset to the start point in the pattern unit (row and column offset) for the first pixel of the image
(3) Vertical offset for the arrangement of consecutive pattern units
(4) List of tiles that make up the pattern unit
(5) Horizontally continuous tile layout offset in one pattern unit
(6) Resolution of the pattern (for example, resolution of tile image of the pattern)

該パターンの幅は、水平方向に連続的に配置されるタイルの列オフセットの合計により定義される。   The width of the pattern is defined by the sum of the column offsets of tiles that are continuously arranged in the horizontal direction.

全てのオフセットは、連続する画素の組み合わせ(例えば、実数値の行及び列のオフセット)の中にある。このことは、タイルがサブ画素の正確さで配置されることを許容する。このことは、入力画像や出力画像や独立するタイルパターンの解像度を許容する。   All offsets are within consecutive pixel combinations (eg, real-valued row and column offsets). This allows tiles to be placed with sub-pixel accuracy. This allows the resolution of the input image, output image and independent tile pattern.

基本的なタイリング・アルゴリズムは、次のC++コードフラグメントにより実施される。すなわち、:

Figure 0004309954
Figure 0004309954
Figure 0004309954
The basic tiling algorithm is implemented with the following C ++ code fragment. That is:
Figure 0004309954
Figure 0004309954
Figure 0004309954

上述の通り、一つ一つのタイルは、その形状/不透明性チェンネルにより特徴付けられる形態を有している。そのタイルの形状並びにタイルの画像中における配置は、一緒になって、そのタイルによって覆われるところの、入力画像中の一連の画素を決定する。出力画像における、そのタイルの色は、その一連の画素に基づく。色を付与するという機能は、限定するものではないが、入力される色を1画素ずつコピーしたり、入力される色の平均を取ったり、入力される色の中央を取ったりすること等を含むようにしても良い。   As described above, each tile has a form characterized by its shape / opacity channel. The shape of the tile as well as the placement of the tile in the image together determine the series of pixels in the input image that are covered by the tile. The tile color in the output image is based on the series of pixels. The function of giving a color is not limited, but copying the input color pixel by pixel, averaging the input color, taking the center of the input color, etc. It may be included.

このように色が付されたタイルは、不透明度を無視して出力画像に直接描かれるかも知れないし、或いは、タイルの不透明度に従って出力画像に合成されるかも知れない。後者のケースでは、出力画像は最初に何らかの明度(例えば、黒)や何らかの任意の画像(例えば、入力画像自体)に初期化されなければならない。不透明なマスクやチャンネルを使用した合成画像は、例えばTomas Porter and Tom Duff(1984)“合成デジタル画像”SIGGRAPH会報1984年、253ページから259ページのような一般的な記事に開示されている標準的な合成技術を使用することができる。   Tiles colored in this way may be drawn directly on the output image, ignoring opacity, or may be composited into the output image according to the opacity of the tile. In the latter case, the output image must first be initialized to some brightness (eg, black) or some arbitrary image (eg, the input image itself). Composite images using opaque masks and channels are standard, for example, as disclosed in general articles such as Thomas Porter and Tom Duff (1984) “Composite Digital Image” SIGGRAPH Report 1984, pages 253-259. Any synthetic technique can be used.

それぞれのタイルは、テクスチャチャンネルにより定義される表面テクスチャマップを有している。そのテクスチャチャンネルは、タイル中における各画素の相対的な表面高さを規定する。この高さ(height field)は、模擬的な入射光の反射角決定に使用される表面法線を決定するために後で使用される。タイルや、そのタイルが配置される部分の画像に模擬的な光が与えられる場合、表面テクスチャは視覚的により明白になる。   Each tile has a surface texture map defined by a texture channel. The texture channel defines the relative surface height of each pixel in the tile. This height field is later used to determine the surface normal used to determine the reflection angle of the simulated incident light. When simulated light is applied to an image of a tile or a portion where the tile is placed, the surface texture becomes visually more apparent.

タイルが出力画像に直接描かれるか、出力画像に合成されるか、いずれにせよ、最も単純なケースでは、タイルのテクスチャは出力画像のテクスチャチャンネルに直接書かれる。   Whether the tiles are drawn directly on the output image or composited on the output image, in the simplest case, the tile texture is written directly to the texture channel of the output image.

各タイルの不透明チャンネルは、タイルの背景への合成を制御する。加えて、画像サイズの不透明チャンネルは、タイル全体の背景への合成を制御するかも知れない。最も単純なケースでは、タイルの不透明度は、タイルの合成に使用される不透明度を生じさせる、大域的な不透明度(global opacity)によって測られる。図279を参照すると、大域的な不透明度を使用するプロセスの一例が示されている。第1のプロット4000では、折り返された不透明度プロフィール(例えば、4001,4002等)の単純な形状を持つ各タイルの、断面の輪郭の例が示されている。次に、不透明度4005の段階的増加からなる、好ましい大域的不透明度チャンネル4004が示されている。上述した単純なケースでは、増加している不透明度のエリア(例えば、4007)を有する不透明度4006を生じさせるため、大域的不透明プロフィール4004でタイル不透明プロフィール4001が測られる。   The opaque channel of each tile controls the composition of the tile into the background. In addition, an image-sized opaque channel may control the composition of the entire tile to the background. In the simplest case, the opacity of a tile is measured by the global opacity that gives rise to the opacity used to synthesize the tile. Referring to FIG. 279, an example of a process that uses global opacity is shown. In the first plot 4000, an example of the cross-sectional profile of each tile with a simple shape of a folded opacity profile (eg, 4001, 4002, etc.) is shown. Next, a preferred global opacity channel 4004 consisting of a gradual increase in opacity 4005 is shown. In the simple case described above, the tile opacity profile 4001 is measured with a global opacity profile 4004 to produce an opacity 4006 with an increasing opacity area (eg, 4007).

もちろん、大域不透明チャンネルを伴った局所タイル不透明度の組み合わせのスキームは可能である。例えば、最初に、各タイルについて、画素の不透明度が平均化され、画素毎の不透明度は、画素毎の大域的不透明度ではなく、この平均化された不透明度によって測られる。   Of course, a scheme of combining local tile opacity with a global opaque channel is possible. For example, for each tile, pixel opacity is first averaged, and opacity per pixel is measured by this averaged opacity rather than global opacity per pixel.

上述したタイリング・アルゴリズムが、僅かな簡単な修正を行うことによって、描いたような効果を簡単に生じさせる上で役立つということは、驚きを持って発見されている。パターンユニットをブラッシュストロークの堆積として取扱い、各タイル画像がブラッシュストローク(例えば、ブラッシュヘアーの層や、ストローク端部で厚みを有するもの)に見えるようにすることにより、ストロークがオーバーラップされて、描いたような効果がタイル内やパターンユニット内に実行される。次に、このアルゴリズムは、連続的にパターン内でタイルを反復するよりもむしろ、無作為にストロークコレクションからストロークを選択するために修正される。さらに、下に描かれた、多くののテクスチュアリング、配置、彩色効果は代替的付加的に供給され得る。   It has been surprisingly discovered that the tiling algorithm described above helps to produce the effect as drawn by making a few simple modifications. By treating the pattern unit as a brush stroke stack and making each tile image look like a brush stroke (eg, a layer of brush hair or one having a thickness at the stroke end), the strokes are overlapped and drawn. Such effects are performed in tiles and pattern units. The algorithm is then modified to randomly select strokes from the stroke collection, rather than continuously repeating tiles in the pattern. In addition, many of the texturing, placement, and coloring effects depicted below can be provided as alternatives.

第一に、入力イメージ内に一般的には様々なレベルの細部がある。入力イメージは、タイリング又は彩色アルゴリズムを介して再現されたとき異なったレベルの細部を要求する。これは、多様な変化内でイメージの加工、それぞれの変化内の異なった程度のストロークコレクションの利用、それぞれの変化と(累積的な)バックグラウンドの合成によって達成され得る。画素単位の詳細な寸法で構成された、イメージサイズにされた細部マップは、それぞれの変化過程のイメージ部分を制御するために利用され得る。それぞれの変化は、その上でイメージの対応部分が処理される“細部境界”が与えられる。継続的な変化に、細部のレベルの増加とストロークコレクション割合の減少が与えられる。最初の変化はこのように、例えば全体のイメージを加工処理し、第2の変化は細部の確定したレベルを加え、第3の変化はなお多くの細部を加える、などである。これは、画家がどんどん細部を加えていくことによって絵画を精密にしていくのにいくらか類似している。この細部マップ自体は、イメージ内にエッジを配置すること、言い換えると派生したフィルターの間をイメージが通過することによって、簡単かつ自動的に生成され得る。   First, there are typically various levels of detail in the input image. The input image requires different levels of detail when reproduced via tiling or coloring algorithms. This can be achieved by processing the image within various changes, using different degrees of stroke collection within each change, and combining each change and (cumulative) background. An image-sized detail map composed of detailed dimensions in pixels can be used to control the image portion of each changing process. Each change is given a “detail boundary” over which the corresponding part of the image is processed. Continuous changes are given an increased level of detail and a reduced stroke collection rate. The first change thus processes the entire image, for example, the second change adds a defined level of detail, the third change still adds more detail, and so on. This is somewhat similar to how a painter refines a painting by adding more and more details. This detail map itself can be generated easily and automatically by placing edges in the image, in other words by passing the image between the derived filters.

タイルは概念上は柔軟性の無いもの(rigid)である。その表面のテクスチャは、背景の表面テクスチャや、重なり合う他のタイル(通常は如何なる他のタイルとも重なり合わないが)の表面テクスチャからの影響を受けることはない。他方では、ブラッシュストロークは概念的には柔軟である。その厚さや表面テクスチャは、背景の表面テクスチャや、重なり合う他のブラッシュストロークの表面ストラクチャの影響を受ける。特に、そのブラッシュストロークは、背景の凹部に充填される傾向があるが、背景の頂点(peak)では薄くなる傾向がある。(背景は、そのストロークに先行するブラッシュストロークの影響を含んでいる。)   Tile is conceptually inflexible. The surface texture is not affected by the surface texture of the background or the surface texture of other overlapping tiles (usually not overlapping with any other tiles). On the other hand, the brush stroke is conceptually flexible. Its thickness and surface texture are affected by the surface texture of the background and the surface structure of other overlapping brush strokes. In particular, the brush stroke tends to fill the recesses in the background, but tends to be thin at the background peak. (The background includes the effect of the brush stroke preceding the stroke.)

別の実施例においては、ブラッシュストロークが描かれる場合、幾つかの方法の内の一つによって、そのテクスチャは背景のテクスチャと結合される。まず、新しい背景高さを生じさせるために、ストローク高さは背景高さの一定割り合い(例えば、25%)だけ付加されるが、その高さは減少しないようにされる。このテクスチャの効果は図280(a) から(c) を参照して説明される。図280(a) においては、シングルタイルのブラッシュの断面輪郭の例が示されている。図280(b) においては、図280(a) のブラッシュパターン4010を覆う、画像部分の断面が一例として示されている。図280(c) においては、上述したルールを使用した結合処理の結果が示されている。線分4013,4014,4016,4017は、画像値4011が対応するブラッシュ値4010を超えるように、画像4011から直接取られたものである。しかしながら、4015の部分は、画像4011の対応部分の25%に、スト録4010のストローク高さを加えて計算されたものである。ストロークの下の背景が計算される。個々の画素において、背景の高さがもし平均よりも低ければ、ストローク高さは単に背景高さに加えられる。このようにして、背景の凹部にストロークが“充填”されるような擬態が行われる。もし、背景高さが平均に等しいか、平均よりも高ければ、ストローク高さはその平均に加えられる。このようにして、背景のピークによってストロークは薄くなる。背景がストロークを実質的に打ち破らない(例えば、ゼロまで薄くならない)ようにするため、その高さは、最小量(もちろん、ゼロを含む、最小ストローク厚さ)に応じて増加するようにされている。   In another embodiment, when a brush stroke is drawn, the texture is combined with the background texture in one of several ways. First, to create a new background height, the stroke height is added by a fixed percentage of the background height (eg, 25%), but the height is not reduced. The effect of this texture will be explained with reference to FIGS. 280 (a) to (c). FIG. 280 (a) shows an example of a cross-sectional profile of a single tile brush. In FIG. 280 (b), a cross section of the image portion covering the brush pattern 4010 in FIG. 280 (a) is shown as an example. FIG. 280 (c) shows the result of the join process using the above-described rule. Line segments 4013, 4014, 4016 and 4017 are taken directly from the image 4011 so that the image value 4011 exceeds the corresponding brush value 4010. However, the portion 4015 is calculated by adding the stroke height of the recording 4010 to 25% of the corresponding portion of the image 4011. The background under the stroke is calculated. For an individual pixel, if the background height is lower than average, the stroke height is simply added to the background height. In this way, a mimicry is performed in which the stroke is “filled” into the recesses in the background. If the background height is equal to or higher than the average, the stroke height is added to the average. In this way, the stroke is lightened by the peak of the background. To prevent the background from substantially breaking the stroke (eg, not thinning to zero), its height is made to increase with a minimum amount (of course, including the zero, minimum stroke thickness) Yes.

さらに、テクスチャー結合アルゴリズムの結果である、ストロークの正味の薄さを計算するため、ストロークの不透明度が計られるかも知れない。このようにして、背景のピークによりストロークが薄くなる場所は、より透明になる。   Furthermore, stroke opacity may be measured to calculate the net thinness of the stroke, which is the result of the texture combining algorithm. In this way, the place where the stroke becomes lighter due to the peak of the background becomes more transparent.

タイル/ストロークの位置が決定されると、さらに、多くの方法によって処理がされるかも知れない。例えば、手によるタイルやストロークのポジショニングにおける自然なバリエーションを真似るため、タイル/ストロークの位置は、特定の範囲や特定の速度で任意にジッターされるかも知れない。ストロークよりもタイルを真似た場合、通常は、タイルが重ならないように、タイルのジッターの範囲が限定される。例えば、“内部タイルのギャップ”の幅のみが変化される。ブラッシュストロークを真似る場合、ブラッシュストロークは通常は重なるので、ストロークジッター範囲は通常はより狭く限定される。   Once the tile / stroke position is determined, it may be further processed in a number of ways. For example, to mimic natural variations in tile and stroke positioning by hand, tile / stroke positions may be arbitrarily jittered at specific ranges and specific speeds. When a tile is imitated rather than a stroke, the range of jitter of the tile is usually limited so that the tiles do not overlap. For example, only the width of the “inner tile gap” is changed. When mimicking a brush stroke, the brush strokes usually overlap, so the stroke jitter range is usually narrower and limited.

さらに、タイルやストロークの位置についてのより標準的なバリエーションを真似るため、置換マップに従って各タイルの位置が置換される。その置換マップは2つのチャンネルからなる。第1は行の置換を含み、第2は列の置換を含む。   Furthermore, the position of each tile is replaced according to a replacement map to mimic a more standard variation of tile and stroke positions. The replacement map consists of two channels. The first includes row replacement and the second includes column replacement.

タイル/ストロークの色自体は、芸術的な効果のためにさらに処理されるかも知れない。例えば、
(1) 制限されたタイルや制限されたペイントパレットを真似るため、その色は、任意のパレットにマッピングされるかも知れない。
(2) タイルカラーの不完全性や、絵の具を混合するバリエーションを真似るため、その色は、特定の範囲及び特定の速度で任意にジッターされるかも知れない。
(3) その色のクロミナンスは、特定の速度で任意に変換されて、反対色を使用した印象派のスタイルを真似るかも知れない。
The tile / stroke color itself may be further processed for artistic effects. For example,
(1) To mimic a restricted tile or restricted paint palette, the color may be mapped to any palette.
(2) To mimic the imperfection of tile colors and variations that mix paints, the colors may be arbitrarily jittered at specific ranges and at specific speeds.
(3) The chrominance of the color may be arbitrarily converted at a specific speed to mimic an impressionist style using the opposite color.

タイル/ストロークの平均大域不透明度が決定されると、芸術的効果のためにさらに処理されるかも知れない。例えば、平均化された不透明度が、ゼロの不透明度や100%の不透明度に二値化されるかも知れない。このことは、タイルの不存在や存在を作り出す。もし、平均化された不透明度が二値化されたなら、大域的不透明度の再生は、入力画像に部分的に誤差拡散を行うことによって改良されるかも知れない。これは、画像中に重要な効果を生成するために見出されている。   Once the average global opacity of the tile / stroke is determined, it may be further processed for artistic effects. For example, the averaged opacity may be binarized to zero opacity or 100% opacity. This creates the absence or presence of tiles. If the averaged opacity is binarized, global opacity reproduction may be improved by performing partial error diffusion on the input image. This has been found to produce important effects in the image.

さらなる実施例が、アートカム装置の適切なプログラミングにより実行される。キャンバスに画像を“描く”ときの画家は、通常は、絵の具の色が限定されたパレットと、制約されたセットのものであって特徴的な筆遣いを形成するブラシとを用いて仕事をし、そして、独特の色や質感のキャンバスに描いている。そのことに気付くことにより、さらなる実施例が構築される。描くシーンをより真実に近付けたり真実から遠ざけたりするため、そのシーンについての画家のビジョンを描くため、画家は、異なる色の筆遣いを行う。いくつかの絵のスタイルが、シーンの特徴や色を再生するために試みられる。他のスタイルが、シーンの特徴や色についてのより多くの印象を取得するために試みられ、より単純で一様なブラッシュストロークや絵の具を混合したり重ね塗りしないことによって特徴づけられる。これらの印象派のスタイルは、写実派のスタイルに比べると より明るくより鮮明な色を達成するが、詳細な描写は犠牲にされる。   A further embodiment is implemented by appropriate programming of the art cam device. A painter who “draws” an image on a canvas usually works with a palette with a limited color of paint and a brush that is of a limited set and forms a characteristic brushwork, They are drawn on a canvas with a unique color and texture. By recognizing that, further examples are built. To draw a scene closer to the truth or away from the truth, the painter uses different colors to draw the artist's vision of the scene. Several picture styles are tried to reproduce scene features and colors. Other styles are tried to get more impressions about scene features and colors, and are characterized by simpler and more uniform brush strokes and by not mixing or overpainting the paint. These Impressionist styles achieve a brighter and clearer color than the Realistic style, but at the expense of detailed depiction.

“描かれた”演出となるように写真画像を自動的に変換するコンピュータシステムが、一般的には、入力画像中の画素から何らかの方法で取得した色のブラッシュストロークを出力画像中に入れる。そのようなシステムの課題は、上述したような、人が描くという行為の態様を取り入れることにある。印象派の演出を作り出す部分的解決法は、実際の芸術家の絵の具の色に基づくカラーパレットの構築と、入力画像に可能な限り一致させるような該パレットからのブラッシュストローク色の選択と、入力画像と整合する全体的な色を維持するための色の誤差拡散とにある。   A computer system that automatically converts a photographic image to produce a “drawn” effect typically places a brush stroke of a color obtained in some way from pixels in the input image in the output image. The problem with such a system is to incorporate the mode of action that a person draws as described above. A partial solution to create an impressionist presentation is the construction of a color palette based on the color of the actual artist's paint, the selection of a brush stroke color from the palette that matches the input image as closely as possible, and the input image And color error diffusion to maintain the overall color matching.

さらなる実施例においては、生の色だけを基準とするのではなく、ブラッシュストロークの最終的な色を基準とした画像を誤差拡散させるアルゴリズムが構築されている。この最終的な色は、絵の具の色や、ブラッシュの構成や、キャンバスの色や生地によって決定される。   In a further embodiment, an algorithm is constructed that error diffuses an image based on the final color of the brush stroke, rather than only on the raw color. This final color is determined by the color of the paint, the composition of the brush, the color of the canvas and the fabric.

該アルゴリズムの入力は以下の通りである。すなわち、
* 絵の具の色が限定されたパレット
* それぞれが不透明マップ(opacity
map)やバンプマップ(bump
map)にて定義された一連のブラッシュストローク。バンプマップの使用は三次元グラフィック演出の当業者に良く知られていて、例えば、Graphic Gemsの4巻433−437ページに記載されている。
* 色画像やバンプマップにより規定されるキャンバス
* 絵画として再生されるカラー画像
The input of the algorithm is as follows. That is,
* Palette with limited paint colors * Each is an opacity map
map) and bump map (bump
A series of brush strokes defined in map). The use of bump maps is well known to those skilled in the art of 3D graphic rendering and is described, for example, in Graphic Gems, Vol. 4, pages 433-437.
* Canvas defined by color images and bump maps * Color images reproduced as paintings

前記アルゴリズムの出力は、入力された画像の演出、つまり、ペイントパレットによって着色されたブラッシュストロークでキャンバスに“描く”ことである。該キャンバスやブラッシュストロークはテクスチャーされていると共に、これらのテクスチャーはペインティング工程の間は結合されているので、最終的なペインティングは一方向的に照らされるかも知れない。   The output of the algorithm is to “draw” on the canvas with the rendering of the input image, ie, the brush stroke colored by the paint palette. Since the canvas and brush strokes are textured and these textures are combined during the painting process, the final painting may be illuminated in one direction.

描かれたような効果を成し遂げるため、出力画像と入力画像との間で、より優れた色整合を成し遂げるための基本タイリングアルゴリズム(tiling algorithm)が使用される。最初のプロセスは、ブラッシュストロークのパレットフィードバックアルゴリズムである。このプロセスは、ストロークのカラーパレットの表を作成して実行される。図281に示す表4025は、ブラッシュストロークB1,B2,B3等により区分けされている。ブラッシュストロークセット中の各ブラッシュストロークBnのため、そして、ペイントパレットセット中の各ペイントカラーC1−CNのため、ストロークカラーS1−S4は、図282のフローチャートを参照して説明される通り、次のように決定される。すなわち、
1. ステップ4021にて、対応するブラッシュストロークB1を色付けるためにペイントカラーC1が使用される。
2. そして、不透明マップとバンプマップとを使用して、色つきのブラッシュストロークが空のキャンバスに合成される。
3. ステップ4023にて、描かれたストロークの平均色が計算される。この平均色が、図281のストロークカラーS1である。そして、ポインター(不図示)が、ストロークカラーパレット入力S1から、対応するペイントカラーパレット入力C1にポイントするためにセットされる。
4. そして、ストローク・カラー・テーブルが色によりソートされる。
In order to achieve the effect as depicted, a basic tiling algorithm is used to achieve better color matching between the output image and the input image. The first process is a brush stroke palette feedback algorithm. This process is performed by creating a table of stroke color palettes. A table 4025 shown in FIG. 281 is divided by brush strokes B1, B2, B3, and the like. For each brush stroke Bn in the brush stroke set and for each paint color C1-CN in the paint palette set, the stroke colors S1-S4 are as follows, as described with reference to the flowchart of FIG. To be determined. That is,
1. In step 4021 the paint color C1 is used to color the corresponding brush stroke B1.
2. Then, using the opaque map and the bump map, a colored brush stroke is composited on an empty canvas.
3. In step 4023, the average color of the drawn stroke is calculated. This average color is the stroke color S1 in FIG. A pointer (not shown) is then set to point from the stroke color palette input S1 to the corresponding paint color palette input C1.
4). The stroke color table is then sorted by color.

画像を描く場合、図283に示されるように、各ブラッシュストロークが通常の方法で選択される。そして、各ブラッシュストロークの所望の色が入力画像から通常の方法で決定される。しかしながら、ペイントカラーパレット中で最も近いペイントカラーCnは使用されない。その替わり、そのブラッシュストロークのため、ストロークカラーパレットの中で最も近いストロークカラーSnが使用される。次に、そのブラッシュストロークのためのペイントカラーとして、対応するペイントカラーCnが絵の具の色として使用される。   When drawing an image, each brush stroke is selected in the normal way, as shown in FIG. The desired color of each brush stroke is then determined from the input image in the usual way. However, the closest paint color Cn in the paint color palette is not used. Instead, because of the brush stroke, the closest stroke color Sn in the stroke color palette is used. The corresponding paint color Cn is then used as the paint color for the brush stroke.

該ペイントパレット中で利用できる色の範囲は制限されているため、通常は、所望の色と選択できる色Cnとの間にはいくらかの違いがある。この違い、或いは誤差は、誤差拡散を行う通常の方法で、入力画像の近接した部分に誤差拡散されることができる。所望の色とペイントカラーCnの違いの誤差は使用されない。代わりに、所望の色とストロークカラーSnとの違いである誤差が、この目的のため、ストロークを横断する平均色として使用される。実際のブラッシュストロークは他のストロークと重なるのに対して、ストロークパレット中のストロークは空のキャンバスに描かれるので、この平均色Snがストロークパレットにおける平均色と異なるかも知れないことに気付く。   Since the range of colors available in the paint palette is limited, there is usually some difference between the desired color and the selectable color Cn. This difference, or error, can be error diffused to adjacent parts of the input image in the usual way of error diffusion. The difference error between the desired color and the paint color Cn is not used. Instead, an error that is the difference between the desired color and the stroke color Sn is used for this purpose as the average color across the stroke. While the actual brush strokes overlap with other strokes, the strokes in the stroke palette are drawn on an empty canvas, so you will notice that this average color Sn may be different from the average color in the stroke palette.

この方法は、他のペインティング・パラメータの効果が同じ方法で取り入れられるように拡張することができる。これは、ペインティング・メディウムの種類(パイン油、チョーク、チャコール等)や、キャンバスの種類(テクスチャー紙、グラス等)などを含む。各パラメータは、ストロークカラーパレットの多次元表に次元を加えるが、本質的なアルゴリズムは変化しない。   This method can be extended so that the effects of other painting parameters can be incorporated in the same way. This includes the type of painting medium (pine oil, chalk, charcoal, etc.) and the type of canvas (texture paper, glass, etc.). Each parameter adds a dimension to the multidimensional table of the stroke color palette, but the essential algorithm does not change.

芸術家は、時折、1つのブラッシュストロークに2色又はそれ以上を混合させる。印象派のスタイルでは、これらの色はしばしば十分には混合されず、また、混合されない色がストロークの分離された成分として視認される。   Artists sometimes mix two colors or more in one brush stroke. In the Impressionist style, these colors are often not well mixed, and unmixed colors are visible as separate components of the stroke.

上述したアルゴリズムにおいて、多数色のブラッシュストロークは1色のブラッシュストロークの一般化にすることができる。それは、多数の不透明度マップにより適宜されることができる。これらの不透明度マップは、ブラッシュストロークの共通の排他的領域のため、ゼロでない不透明度を定義する。それらは、全体的なブラッシュストロークの形状を規定する。そのアルゴリズムに次の修正を導入することにより、多数色のブラッシュストロークが提供される。   In the algorithm described above, multiple color brush strokes can be generalized to single color brush strokes. It can be done as appropriate with multiple opacity maps. These opacity maps define non-zero opacity because of the common exclusive region of the brush stroke. They define the overall brush stroke shape. By introducing the following modifications to the algorithm, multiple color brush strokes are provided.

一つ一つのブラッシュストロークのためにストロークカラーパレットが構築される場合、ペイントカラーパレットからのペンチカラーの可能な組み合わせでブラッシュストロークに色が塗られる。このことは、小さなペイントカラーパレットのため明らかに役立つ。各ストロークカラーパレットの入力は通常の方法で構築し、各ストロークカラーパレットは対応する多数のペイントカラーパレット入呂気宇。画像を描く場合、通常の方法で、ストロークカラーパレット中で最も近いストロークカラーを見つける。しかし、ストロークは、多数のペイントカラーで色づけされる。
技術30の説明
When a stroke color palette is constructed for each brush stroke, the brush stroke is colored with possible combinations of pliers colors from the paint color palette. This is obviously helpful for a small paint color palette. The input of each stroke color palette is constructed in the usual way, and each stroke color palette has a corresponding number of paint color palettes. When drawing an image, find the closest stroke color in the stroke color palette in the usual way. However, the stroke is colored with a number of paint colors.
Explanation of Technology 30

図284を参照すると、アートカム装置のプログラムのさらなる改善のステップが示されている。標準的な技法の通り、ブラッシュストロークが区分的ベジエ曲線として特徴付けられると想定される。ブラッシュストロークは所定の厚みを持つと想定される。そのブラッシュストロークは一連のベジエ曲線からなる。第1のステップ4211は各区分的ベジエ曲線を処理することである。それぞれのベジエ曲線は、標準的な技術を使用して、最初に折れ線に変換される(4212)。次に、“最も速い”エッジ(その意味は以下で明らかになる)が、所定のインクリメントにおける最も速いエッジを“出発する(step along)ために使用される。その位置は、ブラッシュストローク4214を合成するために使用される。   Referring to FIG. 284, further improvement steps of the art cam device program are shown. As with standard techniques, it is assumed that the brush stroke is characterized as a piecewise Bezier curve. The brush stroke is assumed to have a predetermined thickness. The brush stroke consists of a series of Bezier curves. The first step 4211 is to process each piecewise Bezier curve. Each Bezier curve is first converted to a polyline using standard techniques (4212). Next, the “fastest” edge (whose meaning will become clear below) is used to “step along” the fastest edge in a given increment. Used to do.

図285を参照すると、ブラッシュストローク4221の基礎を形成する第1のベジエ曲線4220が示されている。そのベジエ曲線4220を対応する一連の線分(例えば、4222)に変換するプロセス。折れ線の区分に線形近似するプロセスは標準的で良く知られており、普通の教科書に取り上げられている。その線形近似プロセスの一環として、各線の端点の法線(例えば、4224)がまた決定される。それらの法線は、必要ならば、線の傾きを補間する方法によって、点(例えば、4225)に隣接される線から決定されることができる。   Referring to FIG. 285, a first Bezier curve 4220 that forms the basis of the brush stroke 4221 is shown. The process of converting the Bezier curve 4220 into a corresponding series of line segments (eg, 4222). The process of linear approximation to line segmentation is standard and well known and is covered in ordinary textbooks. As part of the linear approximation process, the normal of each line endpoint (eg, 4224) is also determined. Those normals can be determined from lines adjacent to a point (eg, 4225), if necessary, by a method that interpolates the slope of the line.

図286を参照すると、2本の線分4233,4234の拡大図が示されている。各点(例えば、4232)のために、法線(例えば、4233,4234)は、それぞれの側にブラッシュストロークの幅の距離だけ突き出ている。点4236は突き出た法線4237,4238を有している。次に、法線4233と法線4237との間の距離4239が測定され、法線4234と法線4238との間の距離4240が測定される。エッジ4239に沿って移動するbodyが、エッジ4240に沿うよりも早く移動しなければならないという意味で、最も長い距離を有する側に“最も速い”エッジが定義される。したがって、最も速いエッジは曲線の凸状のエッジである。   Referring to FIG. 286, an enlarged view of two line segments 4233 and 4234 is shown. For each point (eg, 4232), a normal (eg, 4233, 4234) protrudes on each side a distance of the width of the brush stroke. Point 4236 has protruding normals 4237 and 4238. Next, the distance 4239 between the normal 4233 and the normal 4237 is measured, and the distance 4240 between the normal 4234 and the normal 4238 is measured. The “fastest” edge is defined on the side with the longest distance in the sense that the body moving along edge 4239 must move faster than along edge 4240. Therefore, the fastest edge is the convex edge of the curve.

最も速いエッジは、等しい量だけ離れたパラメータとしての所定数のポイントを定義するために使用される。図286の例は、線4239に沿って等間隔に規定された3つのポイント4243−4245が示されている。ほとんどの間隔は図286に示されたものよりも長い。   The fastest edge is used to define a predetermined number of points as parameters separated by an equal amount. The example of FIG. 286 shows three points 4243-4245 defined at equal intervals along line 4239. Most of the intervals are longer than those shown in FIG.

次に、各ポイントのパレメータ位置が決定され、線4230に沿ったパラメータポイントを決定するために使用される。その位置は、ブラッシュストロークが配置される位置である。   Next, the parameter position of each point is determined and used to determine the parameter points along line 4230. The position is a position where the brush stroke is arranged.

図287を参照すると、一連のブラシスタンプ4246,4247,4248が示されている。2つのスタンプ4246,4248は線の端の部分に使用され、部分4247は線の中央部分に沿って連続的に使用される。   Referring to FIG. 287, a series of brush stamps 4246, 4247, 4248 are shown. Two stamps 4246, 4248 are used for the end portion of the line, and portion 4247 is used continuously along the central portion of the line.

該ブラシスタンプは、マットチャネル、バンプマップチャネル及びフットプリントチャネルの3つの別々のチャネルにより定義される。図287の例では、ブラッシュのマットチャネルが示されている。“最大”テクニックとして知られている、第1のテクニックにおいては、マットチャネルやバンプマップチャネルは、分離されたブラッシングバッファにおいてブラッシュストロークを構築するために使用される。この合成技術においては、ブラッシュは最大不透明度を取ることにより構築される。そのバッファにて新しい不透明度が古い不透明度を超える場合、その不透明度は新しい不透明度に置き換えられる。生成された結果は、フォトショップにおけるエアーブラシやペインティングに近似したものとなる。   The brush stamp is defined by three separate channels: a matte channel, a bump map channel, and a footprint channel. In the example of FIG. 287, a brush matte channel is shown. In the first technique, known as the “maximum” technique, the matte and bump map channels are used to build brush strokes in a separate brushing buffer. In this synthesis technique, the brush is built by taking maximum opacity. If the new opacity exceeds the old opacity in the buffer, the opacity is replaced with the new opacity. The result produced is close to an airbrush or painting in Photoshop.

第2の合成技術においては、“フットプリント”技術として知られる。現在のラインのための前述したブラッシュスタンプが画素のためのブラッシュバッファに書き込まれなかった場合にのみマット値が変更されるように、フットプリントチャネルが使用される。第3の技術においては、マットチャネルやバンプマップチャネルが使用されるが、このとき、マットチャネルやバンプマップチャネは最小である。   In the second synthesis technique, it is known as the “footprint” technique. The footprint channel is used so that the mat value is changed only if the brush stamp described above for the current line has not been written to the brush buffer for the pixel. In the third technique, a mat channel and a bump map channel are used. At this time, the mat channel and the bump map channel are minimum.

上記の技術は、特に水彩画の効果を真似る場合に良い結果をもたらすことが分っている。次のコードセグメントは、さらに改良された実施例の処理を示す。:

Figure 0004309954
Figure 0004309954
Figure 0004309954
Figure 0004309954
Figure 0004309954
技術31の説明 The above technique has been found to give good results, especially when mimicking the effect of a watercolor painting. The following code segment illustrates the processing of a further improved embodiment. :
Figure 0004309954
Figure 0004309954
Figure 0004309954
Figure 0004309954
Figure 0004309954
Explanation of Technology 31

図288を参照すると、アートカム装置4302を含む、さらなる改善の配列(4310)が示されており、該アートカム装置4302は、適切な文字認識のできるタッチパッドLCDからなる文章入力装置4303に接続されている。代わりに、キーボード入力装置(例えば、4304)を文章入力装置とすることができる。文章入力装置の好適な形態は、前記アートカム装置4302に接続されるように適応されプログラムされたアップルのニュートン(登録商標)装置にて構成され得る。また、文章入力装置4303の他の形態が利用されることもできる。さらに、アートカム装置4302に挿入されるアートカード装置4305が提供され、該アートカードの表面に描かれている図に従って検知画像を(予め十分に検討されたように)処理するようになっている。   Referring to FIG. 288, a further improvement arrangement (4310) is shown, including an art cam device 4302, which is connected to a text input device 4303 comprising a touchpad LCD capable of proper character recognition. Yes. Alternatively, a keyboard input device (eg, 4304) can be a text input device. A preferred form of text input device may be configured with an Apple Newton® device adapted and programmed to be connected to the art cam device 4302. Also, other forms of the text input device 4303 can be used. In addition, an art card device 4305 is provided that is inserted into the art cam device 4302 to process the sensed image (as fully discussed in advance) in accordance with the figures drawn on the surface of the art card.

図289を参照すると、さらなる改良版の操作に関しての好ましい形態が示されている。この操作の形態においては、アートカード4305は、ローマ字で規定されるフォントと、該フォントで特別の文字を作成する方法の説明とを含むVarkスクリプトで符号化されている。例えば、その説明は、そのフォントで新しい文字を作成するために外形を処理する方法を含む。   Referring to FIG. 289, a preferred form for further improved operation is shown. In this form of operation, the art card 4305 is encoded with a Var script that includes a font defined in Roman letters and a description of how to create special characters in the font. For example, the description includes a method for processing an outline to create a new character in the font.

入力装置4303,4304は入力装置フォントを有する。その入力装置フォントは、情報を表示するためにテキスト入力装置4303,4304によって使用される。特に、非ローマ字が使用される。したがって、入力装置4303,4304は、アートカード4305によって要求されるテキストの入力のために使用される。入力に基づき、フォントのアウトラインが、特別の文字の作成のためにアートカード4305に符号化された指示に従ってアウトラインを処理するアートカムユニット4302にダウンロードされる。それらの文字はアートカム装置4302によって作成され、印刷される出力画像の一部として表示される。   The input devices 4303 and 4304 have input device fonts. The input device font is used by text input devices 4303 and 4304 to display information. In particular, non-Roman characters are used. Therefore, the input devices 4303 and 4304 are used for inputting text requested by the art card 4305. Based on the input, the font outline is downloaded to the art cam unit 4302 which processes the outline according to the instructions encoded in the art card 4305 for the creation of special characters. These characters are created by the art cam device 4302 and displayed as part of the printed output image.

この操作方法を使用することで、アートカム装置4302やアートカード装置4305にフォントの配列を保存することになしにアートカム装置4302の柔軟性が拡張される。この方法によれば、非ローマ字言語形式でアートカム装置4302を操作するために利用されるモデルの複雑さを減少すべく、テキスト入力装置(例えば、4303,4304)が各国ごとであることのみが必要である。
技術33の説明
By using this operation method, the flexibility of the art cam device 4302 is expanded without storing the font arrangement in the art cam device 4302 or the art card device 4305. This method only requires that the text input devices (eg, 4303, 4304) be country specific to reduce the complexity of the model used to operate the art cam device 4302 in a non-Roman language format. It is.
Explanation of Technology 33

さらなる改善では、デジタル画像カメラで撮影し、前述の特許出願にて開示されているような所定のdpi(例えば、1600dpi)を持つインクジェットプリンターのようなプリント装置で印刷するという、カメラ画像の再生が望まれることが前提である。   A further improvement is the reproduction of the camera image by taking a picture with a digital image camera and printing with a printing device such as an inkjet printer having a predetermined dpi (eg 1600 dpi) as disclosed in the aforementioned patent application. It is a premise that it is desired.

図290を参照すると、そのようなデジタル画像カメラ装置4501が、標準的な出力解像度の画像4502をプリントアウトするように設計されている。その画像4502は、マルチカラー出力(シアン、マゼンタ、イエロー)であって、入力画像の各色成分のためのドットの配列からなるインクジェットプリンター装置によって印刷される。出力された写真4502のコピーを希望する場合には、まず画像がスキャンされ、適切な色成分が抽出される。   Referring to FIG. 290, such a digital image camera device 4501 is designed to print out a standard output resolution image 4502. The image 4502 is a multi-color output (cyan, magenta, yellow), and is printed by an ink jet printer apparatus that includes an array of dots for each color component of the input image. If a copy of the output photo 4502 is desired, the image is first scanned and appropriate color components are extracted.

さらに改良された方法が図291に示されている。この方法では、写真画像4502がリニアCCD4510によって各色成分にスキャンされる。適切なリニアCCDは技術的に知られている。リニアCCD装置の構成及び操作の説明のために、「“CCDアレイ、カメラ、ディスプレイ”Gerald
C Holst著、1996年発行、SPIE
オプティカルエンジニアリング出版」のような標準的な文献が参考とされる。さらに、適切なセンサー装置は、家電についての電気電子技術者協会報告書で定期的に述べられている。
A further improved method is shown in FIG. In this method, a photographic image 4502 is scanned for each color component by a linear CCD 4510. Suitable linear CCDs are known in the art. For a description of the configuration and operation of a linear CCD device, “CCD array, camera, display” Gerald
C Holst, 1996, SPIE
Standard literature such as “Optical Engineering Publishing” is consulted. In addition, suitable sensor devices are regularly described in the Institute of Electrical and Electronic Engineers report on home appliances.

CCDアレイ4510は、CCDヘッドの下を通過する画像をスキャンして信号を生成し、アナログ信号をデジタル信号に変換する。CCDアレイ4510は、写真のドット解像度の3倍である、1インチ当たり4800ドットにする。該CCDアレイ4510は、各色に対して一つずつ三原色、フィルター、CCDを有する。4800dpiは一連の千鳥配列CCDアレイを使用することにより達成される。   The CCD array 4510 scans an image passing under the CCD head to generate a signal, and converts an analog signal into a digital signal. The CCD array 4510 has 4800 dots per inch, which is three times the dot resolution of photographs. The CCD array 4510 has three primary colors, filters, and CCDs, one for each color. 4800 dpi is achieved by using a series of staggered CCD arrays.

前記データ値はフレームバッファコントローラ4512に転送され、色成分毎にフレームバッファ4513に保存される。保存された画像は、写真の上にプリントされ、前述したように、印刷時の約3倍の解像度であるCCDスキャニング解像度にてCCDによりスキャンされるとき、本来のドットの位置に配置されるように処理される。残念ながら、スキャンされた画像には多くの欠陥が存在するかも知れない。これらの欠陥は、写真4502がCCDスキャナー4510に送られるときの写真4502の微々たる回転に加えて、写真4502の傷や歪みの影響を含む、スキャニング工程に関連した欠陥を含む。   The data value is transferred to the frame buffer controller 4512 and stored in the frame buffer 4513 for each color component. The stored image is printed on the photograph, and as described above, when it is scanned by the CCD at a CCD scanning resolution that is about three times the resolution at the time of printing, it is arranged at the original dot position. To be processed. Unfortunately, there may be many defects in the scanned image. These defects include defects associated with the scanning process, including the effects of scratches and distortion on the photo 4502 in addition to the slight rotation of the photo 4502 when the photo 4502 is sent to the CCD scanner 4510.

パターンやドットを決めるための手順は、写真4502の回転を抽出するプロセスの使用に依存する。そのような回転を割り出す(determine)ため、多くの方法を利用することができる。   The procedure for determining the pattern and dots depends on the use of a process that extracts the rotation of the photograph 4502. Many methods can be used to determine such rotation.

例えば、インクドットのスキャンされたパターンは前記回転に基づく基本的特徴周波数(fundamental characteristic frequencies)を有する。写真には、ドットの一般的な配列でインクが印刷されるので、その画像のフーリエ変換が、起こり得る回転を割り出すために使用される。その代案としては、写真の境界(abrupt boundary)やCCDの下方のスキャニング面(the underneath scanning surface of the CCD)からカードのエッジを割り出すことができる。さらに、画素の所望のドットピッチが決定(determine)される(1600dpi)。   For example, a scanned pattern of ink dots has fundamental characteristic frequencies based on the rotation. Since photographs are printed with ink in a general arrangement of dots, the Fourier transform of the image is used to determine possible rotations. As an alternative, the edge of the card can be determined from the photo boundary or the underneath scanning surface of the CCD. In addition, the desired dot pitch of the pixel is determined (1600 dpi).

写真のスキャン画像の一端縁から、ドットがそれぞれの出力ドット位置に配置されているかどうかを判断するための処理がなされる。重要なことは、出力ドットの判定を行うように、カードを横切る同期を維持するという方法が使用される。1つのカラムから次のカラムへの間隙についての局部的な変化は極めて小さく、多くの変化は画像の長さを超えることは明らかである。   From one end edge of the scanned image of the photograph, a process for determining whether or not a dot is arranged at each output dot position is performed. Importantly, a method of maintaining synchronization across the card is used to make the output dot determination. It is clear that the local change in the gap from one column to the next is very small, and many changes exceed the length of the image.

回転や、隣接するドットの間隔を割り出す処理の1形態は、ドット中心(“重心”として知られたもの)の列を記録し(keep)、カラム中の重心をカラム方法によって書き換える(update)ことである。図292を参照すると、重心処理の一形態が示されており、画像領域4520は、カードの表面部分にて見本のインクドット4521を有している。各画素における各インクドットのサイズは、対応する画素サンプリングレートの約3倍である。一連の重心のマーク(例えば、4522)は、各カラムに保持(keep)されている。カラムCn+1の重心マークにおいて初期の重心の回転を割り出すために、前に計算されていた重心マークや、隣接するカラムCnの重心マークが利用される。例えば、重心マーク4523の初期位置を割り出すために、重心マーク4522,4524,4525が利用される。初期位置が割り出されると、さらなる調整が必要かどうかの判断のため、重心マーク4523の周りの画素値が調べられる。   One form of processing to determine rotation and the spacing between adjacent dots is to record the row of dot centers (known as the “centroid”) and rewrite the centroid in the column using the column method (update). It is. Referring to FIG. 292, one form of gravity center processing is shown, and the image area 4520 has sample ink dots 4521 on the surface portion of the card. The size of each ink dot in each pixel is about three times the corresponding pixel sampling rate. A series of center of gravity marks (eg, 4522) is kept in each column. In order to determine the initial rotation of the center of gravity in the center of gravity mark of the column Cn + 1, the center of gravity mark calculated previously or the center of gravity mark of the adjacent column Cn is used. For example, centroid marks 4522, 4524, and 4525 are used to determine the initial position of the centroid mark 4523. Once the initial position is determined, pixel values around the center of gravity mark 4523 are examined to determine if further adjustment is necessary.

期待される位置から重心4523が動いているとの判定は、該ポイント4523の周りの画素値を調べることにより導き出される。その調査はX及びY方向で別々に行われ、その移動は、それらの方向で別々に行われる。   The determination that the centroid 4523 is moving from the expected position is derived by examining pixel values around the point 4523. The survey is done separately in the X and Y directions, and the movement is done separately in those directions.

多くの異なる方法が使用され得る。重心4523の微小な修正が必要かどうかを判断するための1つの方法は、図293に従って述べられる。この方法によれば、限定された数のインクドット配列のみが可能であることに気付く。これらの可能な配列は、図293に4530で示される通りのものであって、現在の画素(current pixel)4531と、隣接する2つの画素4532,4533を示す。それぞれのインクドット4531−4533は、CCDセンサーにて検知されるところの、ほぼ3つの画素値を有する。図293における各画素パターン4530のため、デジタル変換された後のCCD出力値4535の例を示す。CCDのサンプリング効果や、他の機械的及び明るさの効果のため、ドットパターンのCCD値4535は、AD変換されたガウス曲線(或いは、その一部)と同等なものをしばしば含む。したがって、切り立ったエッジは通常は与えられない。しかしながら、期待された断面は、最も近い断面を割り出すために得られたものを調べることができ、誤差はそれほど大きくはなく、よりフィットするために制限内に調整される。この方法によれば、新しい重心位置は第1のディメンジョン内にて得られる。もちろん、重心を調整するという課題は2つの方向において対称的であり、同じ処理ステップが他のディメンジョンにおいても適用される。多数の他の技術が、見本画像からトレーニングされたニューラル・ネットワークのような、より発展した技術が使用されるかも知れない。   Many different methods can be used. One method for determining whether a minor correction of the centroid 4523 is necessary is described according to FIG. It will be noted that according to this method, only a limited number of ink dot arrangements are possible. These possible arrangements are as shown at 4530 in FIG. 293 and show the current pixel 4531 and two adjacent pixels 4532 and 4533. Each ink dot 4531-4533 has approximately three pixel values as detected by the CCD sensor. An example of the CCD output value 4535 after digital conversion is shown for each pixel pattern 4530 in FIG. Due to the sampling effect of the CCD and other mechanical and brightness effects, the CCD value 4535 of the dot pattern often includes an equivalent to an AD-converted Gaussian curve (or part thereof). Therefore, a sharp edge is usually not given. However, the expected cross-section can be examined for what was obtained to determine the closest cross-section, and the error is not very large and is adjusted within limits to better fit. According to this method, a new center of gravity position is obtained in the first dimension. Of course, the task of adjusting the center of gravity is symmetric in the two directions, and the same processing steps apply in other dimensions. Many other techniques may be used, such as more advanced techniques such as neural networks trained from sample images.

調整した位置が割り出されると、重心4523(図292)が僅かに調整され、重心割り出しの処理が続行される。その新しい重心位置から、特定の重心位置のためにオン又はオフのインクドットの値が記録されるべきかどうかを判断するために周囲の見本の値が調べられる。   When the adjusted position is determined, the center of gravity 4523 (FIG. 292) is slightly adjusted, and the center of gravity determination process is continued. From that new centroid position, the value of the surrounding swatch is examined to determine whether an on or off ink dot value should be recorded for a particular centroid position.

図291に戻ると、記録されたインクドット値はインクドット配列4516に保存され、同じ解像度(1600dpi)か異なる解像度でプリンター(例えば、4517に示すものであって、オリジナル写真4502に等しいインクドットの写真4518をコピーするためのもの)にて印刷するために利用される。この方法によれば、ネガの使用や、画像をデジタルで分割して保存することをしなくても、オリジナル写真からのコピーである高品質写真のコピーが得られる。   Returning to FIG. 291, the recorded ink dot values are stored in the ink dot array 4516 and are printed at the same resolution (1600 dpi) or different resolutions of the printer (eg, as shown in 4517 and equal to the original photo 4502. Used to print a photo 4518). According to this method, it is possible to obtain a copy of a high-quality photograph that is a copy from the original photograph without using a negative or digitally dividing and storing the image.

もちろん、処理のスピードアップと、大容量のデータのセットをフレームバッファ等に保存する必要を排除するため、カスタマイズされたリアルタイムのパイプラインの基本設計概念の利用を含む、多くの改善が可能かも知れない。
技術34の説明
Of course, many improvements may be possible, including the use of a customized real-time pipeline basic design concept to speed up processing and eliminate the need to store large data sets in frame buffers etc. Absent.
Explanation of Technology 34

さらなる改善では、アートカム装置は、2Dモーションセンサーを含むように変更さる。そのモーションセンサーは、2軸での動きを検出する小さな微小電気機械システム(MEMS)装置や、他の好適な装置を備えることができる。そのモーションセンサーはカメラ装置に取り付けることができ、その出力はアートカム中央プロセッサによりモニターされる。   In a further improvement, the art cam device is modified to include a 2D motion sensor. The motion sensor may comprise a small micro electro mechanical system (MEMS) device that detects motion in two axes, or other suitable device. The motion sensor can be attached to the camera device and its output is monitored by the Artcam central processor.

図294を参照すると、さらなる改善の好ましい配列の概略図が示されている。加速度計4601は、CCD装置から不鮮明な検知画像を受け取るアートカム中央プロセッサ4602に出力する。そのアートカム中央プロセッサ4602は、写真が撮影されたときのカメラの角速度を決定するために、前記加速時計の測定値を使用する。そして、その測定値(速度因子)は、好適にプログラムされたアートカードプロセッサー4602によって利用され、不鮮明な検知画像4603に対してボケ修正が行われ、ボケの無い出力画像4604が出力される。アートカードプロセッサ4602におけるボケ修正プログラムとしては、コンピュータプログラミングやデジタル画像修復の当業者により知られている標準的なアルゴリズムが使用される。例えば、“Selected Papers on Digital Image Restoration”、M.Ibrahim Sezan編集、SPIE Milestoneシリーズ、74巻、特に再版の167−175ページが参照される。更に、簡易化された技術は“Image Processing Handbook” 第2版、John C.Russ著、CRC出版発行、336−341ページで明らかにされている。
技術38の説明
Referring to FIG. 294, a schematic diagram of a preferred arrangement for further improvement is shown. The accelerometer 4601 outputs the blurred detected image from the CCD device to the art cam central processor 4602. The art cam central processor 4602 uses the acceleration watch measurements to determine the angular velocity of the camera when the picture was taken. The measured value (velocity factor) is used by a suitably programmed art card processor 4602, blur correction is performed on a blurred detection image 4603, and an output image 4604 without blur is output. As the blur correction program in the art card processor 4602, a standard algorithm known by those skilled in the art of computer programming and digital image restoration is used. For example, “Selected Papers on Digital Image Restoration”, M.M. Reference is made to Ibrahim Sezan edited, SPIE Milestone series, volume 74, especially reprinted pages 167-175. Furthermore, a simplified technique is described in “Image Processing Handbook” 2nd edition, John C. Published by Russ, CRC publication, pages 336-341.
Explanation of Technology 38

図295を参照すると、さらなる改善の方向に従った構成として、付属のプリンター5010の形態が示されている。該プリンター5010は、空洞5012の中に挿入されるプリントロール5011を有するように設計されている。該プリントロール5011は空洞5012に挿入されると共に、ローラー(例えば、5013,5014)を有している。該ローラーは、内部の紙を挟むと共に、画像の印刷のため、要求に応じて該紙をプリントヘッド5015に搬送する。理想的には、該プリントロール5011は、消耗されるインクを供給する装置に加え、プリントメディアを備えている。インクは、画像の印刷の際にプリントヘッド5015により消耗される。   Referring to FIG. 295, the configuration of the attached printer 5010 is shown as a configuration according to the direction of further improvement. The printer 5010 is designed to have a print roll 5011 that is inserted into the cavity 5012. The print roll 5011 is inserted into the cavity 5012 and has rollers (for example, 5013 and 5014). The roller sandwiches the internal paper and conveys the paper to the print head 5015 as required for printing an image. Ideally, the print roll 5011 includes a print medium in addition to a device that supplies ink to be consumed. Ink is consumed by the print head 5015 during image printing.

プリンター5010は、アートカムの実施例の適切な再加工により構築されることができる。プリンターは、USBポートを介してコンピュータ5024と通信する。プリンターユニット5018はプラスチック成形のケースであり、画像を印刷するための内部プリントヘッド5015を有する。   The printer 5010 can be constructed by appropriate reworking of the art cam embodiment. The printer communicates with the computer 5024 via the USB port. The printer unit 5018 is a plastic molded case and has an internal print head 5015 for printing an image.

そのプリントヘッド5015は、自動ボンディング技術によりプリントヘッドチップ5020に接続されている。プリンターユニット5018のサイズを減少させるため、該プリントヘッドチップ5020はフレキシブルな回路基板に取り付けられている。USB通信ケーブル5022を介してプリンターユニット5018に転送される描写(description)から画像を生成するため、該プリントヘッドチップは、最新の半導体製造技術により作られ、関連したメモリー等を有している。もちろん、他の多くのインターフェースの形式が利用され得る。プリンタヘッドチップは、予め説明され得る。   The print head 5015 is connected to the print head chip 5020 by an automatic bonding technique. In order to reduce the size of the printer unit 5018, the print head chip 5020 is attached to a flexible circuit board. In order to generate an image from a description transferred to the printer unit 5018 via the USB communication cable 5022, the print head chip is made by the latest semiconductor manufacturing technology and has an associated memory and the like. Of course, many other interface formats can be utilized. The printer head chip can be described in advance.

従って、画像の印刷が望まれるとき、プリンターユニット5018に接続されているコンピュータシステム5024は、ケーブル5022を介してプリントユニット5018にページ記述言語(page description )を転送する。プリントチップ5020は、後でプリンタヘッド5015で印刷される画像を準備する。プリントロール5011は、消耗されるプリントメディアやインクを、使いやすい形態で供給し、プリンターユニット5018により使用されると、そのプリントロールは新しいプリントロールに置き換えられる。
技術40の説明
Accordingly, when it is desired to print an image, the computer system 5024 connected to the printer unit 5018 transfers a page description language (page description) to the print unit 5018 via the cable 5022. The print chip 5020 prepares an image to be printed later by the printer head 5015. A print roll 5011 supplies print media and ink to be consumed in an easy-to-use form. When the print roll 5011 is used by the printer unit 5018, the print roll is replaced with a new print roll.
Explanation of Technology 40

さらなる適応では、カメラシステム及び印刷システムは免除され、大きなスクリーンの読み取り装置(large screen reader)に置き換えられる。アートカードは、裏面に情報が書き込まれ、その情報の表示が他の面に印刷されるように設定されている。例えば、アートカードは本のコンテンツや新聞のコンテンツを含むことができる。そのようなシステムの一例が図296に示されるものであって、アートカード5210はその一面に本のタイトルを有し、他の面には、印刷されたコード化されたデータを有する。カード5210は読み取り装置5212に挿入される。この読み取り装置5212は、折り畳むことができるようにフレキシブルなディスプレイ5213を備える。カードの読み取り装置5212は、前や後ろにページをめくったり、他の制御を行ったりするためのディスプレイ制御装置5214を有する。   In a further adaptation, the camera system and printing system are exempted and replaced with a large screen reader. The art card is set so that information is written on the back side and the display of the information is printed on the other side. For example, an art card can include book content and newspaper content. An example of such a system is shown in FIG. 296, where art card 5210 has a book title on one side and printed coded data on the other side. The card 5210 is inserted into the reading device 5212. The reading device 5212 includes a flexible display 5213 that can be folded. The card reading device 5212 has a display control device 5214 for turning pages forward and backward and performing other controls.

したがって、図296の構成のものは、本や新聞や雑誌や技術マニュアル等の形式で情報を効率良く配布できることが分る。   Therefore, it can be seen that the configuration of FIG. 296 can efficiently distribute information in the form of books, newspapers, magazines, technical manuals, and the like.

数多くの変更及び/又は修正が、大まかに説明された本発明の精神または範囲から逸脱することなく、特定の実施の形態に示されるような本発明へなされてもよいことは、当業者によって理解されよう。したがって、本実施例は、図示されていてもされていなくても、あらゆる点で考慮されるべきである。
技術47の説明
It will be understood by those skilled in the art that numerous changes and / or modifications may be made to the invention as illustrated in the specific embodiments without departing from the spirit or scope of the invention as broadly described. Let's do it. Accordingly, this embodiment should be considered in all respects, whether or not illustrated.
Explanation of Technology 47

さらなる改良は、擬似的なブラッシュストロークを使用してキャンバスの上に画像を“描く”という処理について論じられる。バンプマップ技術が使用されることが前提であり、特に、使用される各画像が、画像表面のテクスチャーを規定するバンプマップを有することが前提である。   Further improvements are discussed in the process of “drawing” an image on the canvas using a pseudo brush stroke. It is assumed that bump map technology is used, and in particular, it is assumed that each image used has a bump map that defines the texture of the image surface.

図297には、見本としてのラウンドブラッシュ・バンプマップ5901が示されている。図298では、図297のA−A’線の断面が示され、該断面は、一般的なラウンドブラッシュストローク5901の表面の一般的外形5903を有する。図297のバンプマップを有するブラッシュストロークを一般的なへシアン形の“キャンバス”画像(バンプマップは図299に示され、B−B’線の高さは図300に示されたもの)に塗ることが前提である。その高さは、波状のピーク(例えば、5906)からなる。   FIG. 297 shows a round brush / bump map 5901 as a sample. In FIG. 298, a cross-section along line A-A ′ of FIG. 297 is shown, which has a general outline 5903 of the surface of a general round brush stroke 5901. Brush stroke with bump map of FIG. 297 is applied to a typical Hessian “canvas” image (the bump map is shown in FIG. 299 and the height of the BB ′ line is shown in FIG. 300). That is the premise. Its height consists of wavy peaks (eg 5906).

さらなる改善では、最終的なバンプマップの形成のために、図298のバンプマップと図300のバンプマップとが、供給された剛性因子に従って種々の方法で結合される。その剛性因子は、“剛性”のペイント、又は“フレキシブル”のペイントを使った効果を生じるように設計される。図301では、図298と図300の2つのバンプマップが低い剛性のブラッシュペイントのために結合された例が示されている。図302では、図298と図300の2つのバンプマップが高い剛性のブラッシュペイントのために結合された例が示されている。   In a further improvement, the bump map of FIG. 298 and the bump map of FIG. 300 are combined in various ways according to the supplied stiffness factor to form a final bump map. The stiffness factor is designed to produce an effect using “rigid” paint or “flexible” paint. In FIG. 301, an example is shown where the two bump maps of FIGS. 298 and 300 are combined for a low stiffness brush paint. In FIG. 302, an example is shown in which the two bump maps of FIGS. 298 and 300 are combined for a highly rigid brush paint.

さらなる改善では、絵の具からなるブラッシュストロークが一定の可塑性を有していて背景の凹部に満たされるので、バンプマップの結合に際して、バンプマップは単純に付加されはしない。したがって、図301や図302の効果を成し遂げるためには、ブラッシュストロークのバンプマップは、背景のバンプマップであってローパスフィルターされたものに付加される。そのフォーパスフィルターは、絵の具の剛性因子によって決まる範囲(radius)を有している。該剛性因子が高ければ高いほど、フィルターの範囲は広くなり、透かして見える背景の表面テクスチャは少なくなる。ブラッシュストロークが薄かったり、何も無かったりする場所(ほとんどが縁部に沿っている)ではフィルターがかけられた背景の表面テクスチャが、実際の背景の表面テクスチャに収斂するように、ローパスフィルターの範囲はブラッシュストローク厚さに応じて変動される。   In a further improvement, the bump map is not simply added when joining the bump maps, since the brush stroke made of paint has a certain plasticity and fills the recesses in the background. Therefore, in order to achieve the effects of FIGS. 301 and 302, the brush map of the brush stroke is added to the background bump map which has been low-pass filtered. The four-pass filter has a radius determined by the stiffness factor of the paint. The higher the stiffness factor, the wider the filter range and the less visible surface texture of the background. The range of the low-pass filter so that the filtered background surface texture converges to the actual background surface texture where the brush strokes are light or empty (mostly along the edges) Varies depending on the brush stroke thickness.

図303及び図304を参照すると、初期の背景バンプマップを示す図303を用いた処理の例が示されている。バンプマップ5911の、ローパスフィルターがかけられたものを覆う状態の、剛性の高いペイント5912を図304は示し、ローパスフィルターがかけられたバンプマップ5913を覆う状態の、剛性の低いペイント5914を図305は示している。
技術48の説明
Referring to FIGS. 303 and 304, an example of processing using FIG. 303 showing an initial background bump map is shown. FIG. 304 shows a high-rigidity paint 5912 in a state of covering the bump map 5911 with a low-pass filter applied, and FIG. 305 shows a low-rigidity paint 5914 in a state of covering the bump map 5913 with a low-pass filter applied. Shows.
Explanation of Technology 48

さらなる改善では、入力画像の色域(color gamut)は出力画像の色域(color
gamut)に“モーフ(morphed)”される。この出力画像の色域は、異なる複数の色域の試行という方法によって独断的に決定されたものである。さらなる改善では、理想的には、特定のスタイルのブラッシュストロークで画像を置き換えるというような、さらなる芸術的な処理にプレ処理ステップが使用される。そのブラッシュストロークは、画像から色を抽出し、該ブラッシュストロークは所望色域に関連する色を有する。
In a further improvement, the color gamut of the input image is the color gamut of the output image.
“morphed” by gamut. The color gamut of the output image is determined arbitrarily by a method of trial of a plurality of different color gamuts. In a further improvement, pre-processing steps are ideally used for further artistic processing, such as replacing an image with a particular style of brush stroke. The brush stroke extracts a color from the image, and the brush stroke has a color associated with the desired color gamut.

最終的な出力画像を作成するステップは、図306に符号6010で示されたものである。第1のステップ6011は、望ましくはアートカム装置により検知された任意の入力画像を入力することである。その入力画像の色域は、所定範囲の色域の出力画像を作成するために“モーフ(Morphed)”又は“ワープ(Warped)”される(6012)。モーフィング処理については後述する。出力の色域が作成されると、次のステップでは、適正なブラッシュストローク技術が適用される。ブラッシュストローク技術は、大いなる変化をもたらすことのできる処理である。使用されるブラッシュストロークの実際の形態では、前述した技術が本発明に絶対必要である訳ではない。入力画像に対して、色域を制限した演出を行って出力画像を形成するためにそのブラッシュストローク技術が適用される。   The step of creating the final output image is indicated by reference numeral 6010 in FIG. The first step 6011 is to input an arbitrary input image that is preferably detected by the art cam device. The color gamut of the input image is “Morphed” or “Warped” to create an output image with a predetermined range of color gamut (6012). The morphing process will be described later. Once the output color gamut is created, the next step is to apply the appropriate brush stroke technique. The brushstroke technique is a process that can bring about great changes. In the actual form of brush stroke used, the technique described above is not absolutely necessary for the present invention. The brush stroke technique is applied to produce an output image by performing an effect with a limited color gamut on the input image.

図307を参照すると、ガモットマッピングとモーフィングの問題の一例が示されている。L*a*b*色空間であるユニバーサル色空間6021で多くの可能な色値が定義されてシングルの色空間が使用されることが前提である。この色空間の内部で、入力センサーは、ある範囲の明度6022を検知することができる。さらに、出力プリント装置は、プリンター色域6023における特定の範囲の色を出力できるものと仮定する。該プリンター色域は入力センサーの色域6022よりも小さいかも知れないし大きいかも知れない。芸術的色域6024は特定のスタイルに従って規定される。その芸術的色域6024は、様々な技術の使用を通じて慎重に構築することができる。例えば、所望の出力画像がスキャンされ、所望の出力画像は、L*a*b*色空間の内部の特定の範囲を含むように、色のヒストグラムが構築される。所定の明度の3次元のL*a*b*色空間のように図307が解釈できることは、コンピュータグラフィック関係の当業者によれば理解され得る。   Referring to FIG. 307, an example of a gamut mapping and morphing problem is shown. It is assumed that a single color space is used by defining many possible color values in the universal color space 6021 which is the L * a * b * color space. Within this color space, the input sensor can detect a range of brightness 6022. Further, it is assumed that the output printing apparatus can output a specific range of colors in the printer color gamut 6023. The printer color gamut may be smaller or larger than the input sensor color gamut 6022. The artistic color gamut 6024 is defined according to a specific style. The artistic color gamut 6024 can be carefully constructed through the use of various techniques. For example, a desired output image is scanned and a color histogram is constructed such that the desired output image includes a specific range within the L * a * b * color space. It can be understood by those skilled in the computer graphic arts that FIG. 307 can be interpreted as a three-dimensional L * a * b * color space of a given brightness.

したがって、入力センサー色域6022の中の色を芸術的色域6024に移す(map)ことが必要である。さらに、残念ながら、芸術的色域6024は、特定の出力プリンター色域6023にとって“はみ出る色域”の色を含んでいる。そのようなケースでは、出力の色がプリンター色域6023内にあるために、芸術的な色域6024を移す(map)必要があるだろう。   Therefore, it is necessary to map the colors in the input sensor gamut 6022 to the artistic gamut 6024. Moreover, unfortunately, artistic color gamut 6024 includes colors that are “protruding” for a particular output printer color gamut 6023. In such a case, it may be necessary to map the artistic color gamut 6024 because the output color is in the printer color gamut 6023.

図308を参照すると、主要な要求は、L*a*b*値6031をL*a*b*出力値6032に移すための3次元ルックアップテーブル(例えば、6030)をアートカードが有するということである。好ましくは、その3次元ルックアップテーブル6030は、3次元マッピングのために定義される特定のポイントと、定義されたポイント間の中間値のマッピングのために利用される3次補間とを有するコンパクトな形式で提供される。   Referring to FIG. 308, the main requirement is that the art card has a three-dimensional lookup table (eg, 6030) for moving the L * a * b * value 6031 to the L * a * b * output value 6032. It is. Preferably, the 3D lookup table 6030 is a compact having specific points defined for 3D mapping and cubic interpolation used for mapping intermediate values between the defined points. Provided in form.

図309を参照すると、1つの実質的に任意の入力ガモットスペース6040から第2の所望の出力ガモットターゲットスペース6041へのガモット・モーフィングを適用するための処理についての極めて一般的な例が示されている。潜在的には、入力ガモットスペース6040の内側であって出力ガモットターゲットスペース6041の外側にあるポイント(例えば、6042)をガモットマッピング処理は処理しなければならない。前記3次元カラールックアップテーブル6030は(2+1)のサイズを有する。nは、1から、最大色コンポーネント・プレシジョン(例えば、通常は8ビット)までの範囲である。任意のワープがルックアップテーブル内で符号化される。該テーブルの使用は、また、別々に準備された符号化ワープファンクションを独立させるアルゴリズムを生じさせる。そのアルゴリズムは、任意のワープ関数のための予測できる性能を有している。ワープ関数が連続することは要求されない。したがって、そのアルゴリズムにおいては、任意のワープ関数にとって強固である。 Referring to FIG. 309, a very general example of a process for applying gamut morphing from one substantially arbitrary input gamut space 6040 to a second desired output gamut target space 6041 is shown. Yes. Potentially, the gamut mapping process must process points that are inside the input gamut space 6040 and outside the output gamut target space 6041 (eg, 6042). The three-dimensional color lookup table 6030 has a size of (2 n +1) 3 . n ranges from 1 to the maximum color component precision (eg, typically 8 bits). Any warp is encoded in the lookup table. The use of the table also results in an algorithm that makes the separately prepared encoding warp functions independent. The algorithm has predictable performance for any warp function. It is not required that the warp function is continuous. Therefore, the algorithm is robust for any warp function.

そのルックアップテーブルは、整数の3D配列であり、実数の出力色コーディネートは入力コーディネートの順で配列される。このようにして、前方ワープ関数が符号化される。   The lookup table is a 3D array of integers, and real output color coordinates are arranged in the order of input coordinates. In this way, the forward warp function is encoded.

要求された画像のカラー・ワープが、1画素毎、出力画像の順に計算される。そのアルゴリズムは3Dカラールックアップテーブルへのランダムなアクセスを必要とするが、入力色は空間中では滑らかに変化するので、ランダムなアクセスは一般的には統一性(coherent)がある。入力及び出力画像へのシーケンシャルなアクセスが要求される。   The requested image color warp is calculated pixel by pixel in the order of the output image. Although the algorithm requires random access to the 3D color look-up table, random access is generally coherent because the input color changes smoothly in space. Sequential access to input and output images is required.

不可欠なトリリニア・ワープ・アルゴリズムは次の疑似C++コードで実施される。

Figure 0004309954
The essential trilinear warp algorithm is implemented with the following pseudo C ++ code:
Figure 0004309954

前記ガモット圧縮プロセスは、ソースガモットにおける色の違いを維持しつつ、認知できる色の変化を最小限にするという方法で、ソースガモットの色を、より小さなターゲットガモットの色にマップさせようとする。ガモット圧縮の計算は色のワーピングから分断されるので、効果的なガモット圧縮は上述したルックアップテーブルで駆動されるプロセスを用いて実施される。   The gamut compression process attempts to map source gamut colors to smaller target gamut colors in a manner that minimizes perceptible color changes while maintaining color differences in the source gamut. Since the calculation of gamut compression is decoupled from color warping, effective gamut compression is performed using the look-up table driven process described above.

ガモット圧縮アルゴリズムは3次元ルックアップテーブルの構築を含み、図309を参照して述べたような次の疑似コードで実施される。

Figure 0004309954
The gamut compression algorithm involves the construction of a three-dimensional lookup table and is implemented with the following pseudo code as described with reference to FIG.
Figure 0004309954

ソースガモット又はターゲットガモットのいずれかがパレットフォームにて知られているならば、ガモット多面体はパレットポイントの凸包から計算される。   If either the source or target gamut is known in the pallet form, the gamut polyhedron is calculated from the convex hull of pallet points.

図310を参照すると、芸術的効果の創造において一般的に活用される処理であって、後述の如くガモット・モーフィングと称される処理を使用して、何らかのソース・ガモット6050をターゲット・ガモット6051にマップさせるために上記処理が使用され得る。ガモット・モーフィングは、ソース・ガモット中の色をターゲット・ガモット中の色へのマッピングを直接コントロールするために使用される。   Referring to FIG. 310, a process commonly used in the creation of artistic effects, which is referred to as gamut morphing as will be described later, is used to convert some source gamut 6050 to the target gamut 6051. The above process can be used to map. Gamut morphing is used to directly control the mapping of colors in the source gamut to colors in the target gamut.

ガモット圧縮と同様に、ガモット・モーフィングは、画像の色域(ガモット)を特定の芸術的スタイルに似させるために使用されるかも知れない。ガモット・モーフの計算はカラーワーピング処理から分断されるので、ガモット圧縮と同様に、効果的なガモット・モーフィングは、ルックアップテーブルを駆動するアルゴリズムによって実施されることができる。   Similar to gamut compression, gamut morphing may be used to resemble the gamut of an image to a particular artistic style. Since gamut morph computation is decoupled from the color warping process, as with gamut compression, effective gamut morphing can be implemented by an algorithm that drives a lookup table.

ガモット・モーフィングと共に、多くのソース・ガモット色(例えば、6053)が、同数の対応するターゲットガモット色(例えば、6054)に直接マップされる。ルックアップテーブル中のマップされたターゲットの残存しているターゲット色は、特定のターゲット色(例えば、6054)の加重和として計算される。そのターゲット色は好ましくは、各ルックアップテーブルのポイントから対応するソースカラーまでの距離の二乗の逆数により重み付けされる。   Along with gamut morphing, many source gamut colors (eg, 6053) are directly mapped to the same number of corresponding target gamut colors (eg, 6054). The remaining target color of the mapped target in the lookup table is calculated as a weighted sum of the specific target color (eg, 6054). The target color is preferably weighted by the reciprocal of the square of the distance from each lookup table point to the corresponding source color.

ガモット・モーフィング・アルゴリズムが次の疑似コードにより具現化される。

Figure 0004309954
The gamut morphing algorithm is embodied by the following pseudo code.
Figure 0004309954

前述の技術が最初に画像のガモットを所定のエリアに限定するために使用できることは、コンピュータグラフィックスにおける当業者には明白であろう。続いて、例えば、“点描画法”技術によって与えられると同様の効果を生じさせるため、制限されたガモット画像にブラッシュストロークフィルターが適用される。
技術53の説明
It will be apparent to those skilled in the art of computer graphics that the techniques described above can be used to initially limit an image gamut to a predetermined area. Subsequently, a brushstroke filter is applied to the restricted gamut image, for example, to produce a similar effect as given by the “point drawing” technique.
Explanation of Technology 53

前述のアートカムシステムの基本が図311に符号6501で示されている。そのアートカムシステム6501は、入力としてアートカード6503を必要とするアートカム6502に依存している。該アートカード6503は、出力写真6505の作成のため、画像のシーン(image scene)6504を処理するためのコード化された情報(指示情報)を有し、出力写真は、そのアートカード6503の指示情報に従って大幅に画像処理される。該アートカード6503は極度に高価とはならないようにされており、一面にはコード化された情報を含み、他の面には、アートカム6502に挿入された場合に生成されるであろう効果の描写を含んでいる。   The basics of the art cam system described above are indicated by reference numeral 6501 in FIG. The art cam system 6501 relies on an art cam 6502 that requires an art card 6503 as input. The art card 6503 has coded information (instruction information) for processing an image scene 6504 to create an output photo 6505, and the output photo contains instructions for the art card 6503. The image is greatly processed according to the information. The art card 6503 is made extremely inexpensive, one side contains coded information, and the other side has effects that would be generated when inserted into the art cam 6502. Includes a depiction.

さらなる改善の方法に従って、図312に示すように、多数のアートカード6510が用意され、パックで販売される。各パックは、特定のサイズの衣服の着用に関連しており、カメラにより撮影された画像がマッピングされて衣服6512を着用したモデルの画像(例えば、6511)を有する。そのマッピングは、異なるアートカード6510でha
異なる衣服アイテムとすることも可能である。マッピングアルゴリズムの1つの形態が図313の6520に示される。該アルゴリズムでは、魅力的なワーピングの効果を生成する反復タイリングパターンに画像をマップするというワープマップを使用して、入力画像が最初にワープされる(6521)。もちろん、アートカード6503(図311)により与えられる、多くの他の形式のアルゴリズムが、材料の魅力的な形式を生成するために準備される。
According to a further improvement method, a number of art cards 6510 are prepared and sold in packs as shown in FIG. Each pack is associated with wearing a specific size garment, and has an image of a model (eg, 6511) with the garment 6512 mapped onto an image taken by the camera. The mapping is ha with different art cards 6510
It is also possible to have different clothing items. One form of mapping algorithm is shown at 6520 in FIG. In the algorithm, the input image is first warped (6521) using a warp map that maps the image to an iterative tiling pattern that produces an attractive warping effect. Of course, many other types of algorithms, given by art card 6503 (FIG. 311), are prepared to generate attractive forms of materials.

次に、第2のワープ6522は、第1のワープマップ6521の出力を、アートカード中の特定のモデルの画像にワープするために用意される。したがって、ワープ6522はアートカード特有である。その結果は、アートカム写真6505として印刷されるために出力される(6523)。したがって、ユーザは、望みの画像6504をアートカム6502に示すことができ、流行の衣服のモデルを有する画像の処理バージョンを有するアートカム写真6505を作成することができる。この処理は、希望の結果が得られるまで続けることができる。   Next, a second warp 6522 is prepared to warp the output of the first warp map 6521 to an image of a particular model in the art card. Thus, warp 6522 is unique to art cards. The result is output for printing as art cam photo 6505 (6523). Thus, the user can show the desired image 6504 on the art cam 6502 and can create an art cam photo 6505 having a processed version of the image with a fashionable clothing model. This process can continue until the desired result is obtained.

次に、布についての最終的な選択がなされた場合には、図314に示されるように、インクジェット布プリンタや関連の駆動制御電子機器等を有する布プリンター6534にUSBポートを介してアートカム6502が接続される(6503)。アートカム6502又はインクジェットプリンタ6534のどちらかが、布6535にガーメントピース(例えば、6536)を印刷するようにプログラムされている。ガーメントピースは、アートカードのモデルにより伝えられるのと同じ衣類を作成するため、オリジナルのワープ画像をその表面に有している。   Next, when the final selection of the cloth is made, as shown in FIG. 314, the art cam 6502 is connected to the cloth printer 6534 having an inkjet cloth printer and related drive control electronic devices via the USB port. Connected (6503). Either the art cam 6502 or the inkjet printer 6534 is programmed to print a garment piece (eg, 6536) on the cloth 6535. The garment piece has an original warp image on its surface to create the same garment conveyed by the art card model.

出力された布は、ガーメントピースを繋ぎ合わせるための指示6540に加えて、位置合わせと境界領域(例えば、6539)のためのタブ部(例えば、6538)を有している。好ましくは、その出力プログラムは、衣服の交差した継ぎ目上に連続して発生させるために縁取り部分のワープマッチングへの提供を含む。   The output fabric has tabs (eg, 6538) for alignment and boundary areas (eg, 6539) in addition to instructions 6540 for joining garment pieces. Preferably, the output program includes provision for edge warp matching to generate continuously on the crossed seam of the garment.

さらに、ユーザーインターフェースは、異なった形のボディーを考慮に入れるため、多くの異なった出力サイズを有する同じカードの利用に備えられる。アートカム技術の利用に基づいて、アートカム機構6502の利用によって、カスタムされた衣類の生産と適当な結果の迅速な描写のためにシステムを提供することが出来る。
技術54の説明**
技術56の説明
Furthermore, the user interface is prepared for the use of the same card with many different output sizes to take into account differently shaped bodies. Based on the use of art cam technology, the use of art cam mechanism 6502 can provide a system for the production of customized clothing and rapid rendering of appropriate results.
Explanation of Technology 54 **
Explanation of Technology 56

さらなる改善では、画像の効果を転送するために、先述したようなアートカム装置が複数、USBポートを介して接続されている。各アートカムの内部のコンピュータ部の適切なプログラムにより、画像効果の転送が成し遂げられる。   In a further improvement, a plurality of art cam devices as described above are connected via a USB port in order to transfer the effect of the image. The transfer of image effects is accomplished by an appropriate program in the computer section inside each art cam.

好ましい配列は、図315に示されているように、一連のアートカム(例えば、6802,6803,6804)がそれらのUSBポートを介して接続されているというものである(6805)。それぞれのアートカム6802,6803,6804には、好適な画像処理プログラムが格納されたアートカード6807,6808,6809が備えられている。さらに、ネットワーク環境を利用するという指示をアートカード6807,6808,6809により与えることができる。そして、アートカム6802により検知された画像6810は、アートカード6807上の処理プログラムによって処理される。アートカード6808によって画像処理機能が適用されるアートカム装置(一連のアートカム装置の内の次のアートカム装置)6803に、その結果が転送される(6805)。このような目的のため、各アートカム装置は2つのUSBポートを持つように修正されている。最後のアートカム装置6804は、前述した画像処理の集積である出力6812を作成するため、アートカード6809に格納された処理を適用する。   A preferred arrangement is that a series of art cams (eg, 6802, 6803, 6804) are connected via their USB ports (6805) as shown in FIG. Each art cam 6802, 6803, 6804 is provided with an art card 6807, 6808, 6809 in which a suitable image processing program is stored. Further, an instruction to use the network environment can be given by the art card 6807, 6808, 6809. The image 6810 detected by the art cam 6802 is processed by the processing program on the art card 6807. The result is transferred to an art cam device (next art cam device in a series of art cam devices) 6803 to which the image processing function is applied by the art card 6808 (6805). For this purpose, each art cam device has been modified to have two USB ports. The last art cam device 6804 applies the processing stored in the art card 6809 in order to create the output 6812 which is a collection of the image processing described above.

したがって、図315の構成6801は、1つの検知画像に対して多様な効果を与えることができる。もちろん、多くのさらなる改良は可能である。例えば、それぞれのアートカムは、次のアートカムへ画像を転送することに加えて、自身が処理した画像を印刷することもあり得る。加えて、経路を分離して、1つのアートカムを2つの異なった下流側アートカムに出力し、異なる最終画像を出力するようにする。加えて、ループ等も利用される。
技術57の説明
Therefore, the configuration 6801 in FIG. 315 can give various effects to one detected image. Of course, many further improvements are possible. For example, each art cam may print an image it has processed in addition to transferring the image to the next art cam. In addition, the paths are separated so that one art cam is output to two different downstream art cams and different final images are output. In addition, a loop or the like is also used.
Explanation of Technology 57

さらなる改善では、開示されている技術は、双眼鏡セットに組み込まれるように適合されていて、双眼鏡のユーザからの要求により画像を印刷できるようになっている。まず、図316を参照すると、双眼鏡システムの一例が開示されている。該双眼鏡6901は、公知のタイプのものであり、本発明の原理に従って変形される。該双眼鏡は、レンズ入力を有する通常の光学レンズシステム6902,6902を有する。2つのレンズシステムは、コネクタープレート6906にヒンジシステム6904,6905を介して取り付けられている。その配列は大体従来的である。   In a further improvement, the disclosed technique is adapted to be incorporated into a binocular set so that images can be printed upon request from a binocular user. Referring first to FIG. 316, an example of a binocular system is disclosed. The binoculars 6901 are of a known type and are modified in accordance with the principles of the present invention. The binocular has a conventional optical lens system 6902, 6902 with a lens input. The two lens systems are attached to the connector plate 6906 via hinge systems 6904, 6905. The arrangement is largely conventional.

第1の光学レンズシステム6902はビーム・スプリッタ装置6908を有しており、該装置は、光学システム6902に入射された光の光路6909を2つの光路に分割する。第1の光路6910は、CCDシステム6914が取り付けられた側に向けられる。第2の光路6911は、接眼部6915の方向へ向けられる。該ビーム・スプリッタ装置6908は、光線6911の出力強度を弱くさせることとなる。したがって、光学レンズシステム6902の中のビーム・スプリッタ装置6908による減衰と一致させるようにするため、減衰フィルター6918を配置しても良い。   The first optical lens system 6902 has a beam splitter device 6908 that splits the optical path 6909 of light incident on the optical system 6902 into two optical paths. The first optical path 6910 is directed to the side on which the CCD system 6914 is attached. The second optical path 6911 is directed toward the eyepiece portion 6915. The beam splitter device 6908 weakens the output intensity of the light beam 6911. Accordingly, an attenuation filter 6918 may be arranged to match the attenuation by the beam splitter device 6908 in the optical lens system 6902.

したがって、CCD撮影装置6914は、光学レンズシステム6902で見るのと同じシーンを撮影することとなる。該CCD装置6914は、アートカム中央プロセッサやメモリー装置を有するプリント基板6920に取り付けられた処理システムに接続されている。そのアートカム中央プロセッサ装置は、重要な画像処理機能を有しており、画像をキャプチャーするように前記CCD装置を制御し、プリントヘッド装置6923を使用して画像を印刷するようにする。プリンターには、プリントメディアにインクを吐出するインクジェットプリント装置を使用する。該プリントメディアは、プリントメディアと印刷用インクとを含む着脱可能な使い捨て型プリントロール6925から供給される“紙”フィルム(実際には、適切なポリマー)からなる。該プリントロール6925はハウジング6925に収容されており、該ハウジングにはバッテリー6927が着脱可能に配置されている。   Accordingly, the CCD image capturing device 6914 captures the same scene as viewed with the optical lens system 6902. The CCD device 6914 is connected to a processing system mounted on a printed circuit board 6920 having an art cam central processor and a memory device. The art cam central processor device has an important image processing function and controls the CCD device to capture an image and prints the image using a print head device 6923. As the printer, an inkjet printing apparatus that discharges ink onto a print medium is used. The print media consists of a “paper” film (actually a suitable polymer) supplied from a removable disposable print roll 6925 containing the print media and printing ink. The print roll 6925 is accommodated in a housing 6925, and a battery 6927 is detachably disposed in the housing.

ユーザがボタン6919を押し下げると、アートカム中央処理装置は、シーンを撮影するためにCCD6914を作動させる。CCD装置6914によってキャプチャーされた画像はACPプロセッサによって処理され、撮影したシーンを即座に永久的に記録すべく、プリントヘッドに転送されて即座に印刷される。プリントヘッドは再び上述のようになる。   When the user depresses button 6919, the art cam central processor activates CCD 6914 to capture the scene. The image captured by the CCD device 6914 is processed by the ACP processor and transferred to the printhead for immediate printing in order to immediately and permanently record the captured scene. The printhead is again as described above.

多くの改良が、さらなる改善を成し遂げることができる。例えば、アートカム中央プロセッサーに接続されるUSBポートが提供されて、画像処理アルゴリズムを双眼鏡6901にプレロードできるようにしても良い。そのルーチンを作動させるための一連のボタンを配置するようにしても良い。そのルーチンは様々な画像強調操作等を含む。加えて、画像の特徴を強調するため、多くの異なる方法で出力画像を修正するようにしても良い。日時や場所についての関連情報を画像に自動的に掲載することにより画像をさらに特徴付けるようにしても良い。加えて、観察者の座標もまた出力画像に即座に印刷されるように、該双眼鏡をGPSに接続しておいても良い。加えて、被写体の場所を特定するための距離測定装置の提供や、該被写体に関する情報の前記出力画像への表示のような他のオプションが行われるようにしても良い。
技術58の説明
技術59の説明
Many improvements can achieve further improvements. For example, a USB port connected to the ArtCam central processor may be provided so that the image processing algorithm can be preloaded into the binoculars 6901. A series of buttons for operating the routine may be arranged. The routine includes various image enhancement operations and the like. In addition, the output image may be modified in many different ways to enhance the image characteristics. The image may be further characterized by automatically placing relevant information about the date and place in the image. In addition, the binoculars may be connected to the GPS so that the observer's coordinates are also immediately printed on the output image. In addition, other options such as providing a distance measuring device for specifying the location of the subject and displaying information about the subject on the output image may be performed.
Explanation of technique 58 Explanation of technique 59

さらなる改善では、開示された技術が、カード表面にフォールト・トレラント・データ配列を与えるために利用される。該データは、他のフォールト・トレラント配列に書き換えることによりアップデートされる。   In a further improvement, the disclosed technique is utilized to provide a fault tolerant data array on the card surface. The data is updated by rewriting to another fault-tolerant array.

まず、図317を参照すると、カード表面にデータ(例えば、7102)が書き込まれて、完全にデータ配列が書き込まれた後のカード1701が示されている。各データ配列(例えば、7102)は、カード表面に示されている64個のデータブロックの配列で、約20KBの情報が符号化される。もちろん、他の配列は、各データブロック(例えば、7102)の中に書き込まれるデータ量をより少なくすることも、より多くすることも可能である。初期状態では、該カード7101はデータブロックは有していない。代わりに、多分、1つの利用データブロックがそのカードの表面に書き込まれている。   Referring first to FIG. 317, the card 1701 is shown after data (eg, 7102) has been written on the card surface and the data array has been completely written. Each data array (for example, 7102) is an array of 64 data blocks shown on the card surface, and about 20 KB of information is encoded. Of course, other arrays can reduce or increase the amount of data written into each data block (eg, 7102). In the initial state, the card 7101 has no data block. Instead, perhaps one usage data block is written on the surface of the card.

図318を参照すると第2のカード7105が示されており、該カードでは、書き込まれた最後のデータブロックであるところの最新のデータブロック7106で12回“アップデート”されている。したがって、各カード(例えば、7105)は、該カードに与えられたデータブロック数に従ってアップデートされ、何回も使用される。   Referring to FIG. 318, a second card 7105 is shown, which has been “updated” 12 times with the latest data block 7106, which is the last data block written. Thus, each card (eg, 7105) is updated according to the number of data blocks given to the card and used many times.

図319を参照すると、1つのデータブロック(例えば、7108)の構成が示されている。該ブロックは、“アートカム”技術の縮小バージョンである。そのデータブロック7108はデータエリア7109からなり、該エリアは、印刷されたドット配列を有し、該ドットは、縁に沿った一連のクロック・マークに加えて、1画素幅のボーダーを有する。そのデータエリア7109のエッジに沿ってターゲット7110が配置され、該データエリア7109の位置決め及び読み取りをアシストするようになっている。各ターゲット7110の構成は図320に示される通りであって、たった一つの白のドットを囲む、大きな黒エリアからなる。もちろん、他の構成も可能である。該ターゲット7110はデータエリア7109を正確に位置決めするために提供される。さらに、それらのターゲット7110は、さらに、正確に検知され、正確な位置情報を導き出すために提供される。   Referring to FIG. 319, the configuration of one data block (eg, 7108) is shown. The block is a reduced version of the “Art Cam” technology. The data block 7108 consists of a data area 7109, which has a printed dot array that has a one pixel wide border in addition to a series of clock marks along the edge. A target 7110 is arranged along the edge of the data area 7109 to assist in positioning and reading the data area 7109. The configuration of each target 7110 is as shown in FIG. 320, and consists of a large black area surrounding only one white dot. Of course, other configurations are possible. The target 7110 is provided to accurately position the data area 7109. In addition, those targets 7110 are further provided to accurately sense and derive accurate location information.

図321を参照すると、カード読み取り及び書き込み装置7120が示されている。図321の要点部分の拡大は図322に示されている。該装置7120は、情報が印刷されるカード7122を挿入するための細長い隙間7121を有している。多くのピンチローラー(例えば、7123,7124)が、プリントヘッド7125やリニアCCDスキャナー7126を横切るようにカードの移動を制御する。該スキャナー7126は、下を通過するデータをスキャンする。図322には、挿入されたカード722のためのプリントヘッド7125及びCCDスキャナー7126の配列の拡大図が示されている。   Referring to FIG. 321, a card reading and writing device 7120 is shown. An enlargement of the main part of FIG. 321 is shown in FIG. The device 7120 has an elongated gap 7121 for inserting a card 7122 on which information is printed. Many pinch rollers (eg, 7123, 7124) control the movement of the card across the print head 7125 and linear CCD scanner 7126. The scanner 7126 scans data passing below. FIG. 322 shows an enlarged view of the arrangement of the print head 7125 and CCD scanner 7126 for the inserted card 722.

図323を参照すると、CCDスキャナー7126へカード7122が挿入される様子が概略的に示されている。CCDスキャナー7126は、該スキャナーを通過するようにカード7122を搬送し、カード7122に保存されている情報が、CCDスキャナー7126に取り付けられているアートカム中央プロセッサユニットによってデコードされる。カードリーダーからカード7122を取り出したい場合、新たなブロックのカードへの書き込みが必要か否かの決定がなされる。新たなブロックの位置は前にスキャンされたCCDデータから分る。カードの取り出しは、カードをプリントヘッド7125及びCCDスキャナー7126を通過するように、図324に示されるようにして行われる。スキャナー7126はカード7122の現在位置をモニターしており、図325に示すように、四角の領域7128を新しいデータでアップデートすることが望まれる場合は、プリントヘッド7125によりインク滴を吐出する。そして、フロッピーディスクなどと似たような方法でカードは装置(図321)から取り出される。そして、そのカードは、全てのデータスペースが埋め尽くされて新たなカードが作成されるまで、継続的に使用される。   Referring to FIG. 323, how the card 7122 is inserted into the CCD scanner 7126 is schematically shown. The CCD scanner 7126 conveys the card 7122 so as to pass through the scanner, and information stored in the card 7122 is decoded by an art cam central processor unit attached to the CCD scanner 7126. If it is desired to remove the card 7122 from the card reader, a determination is made whether writing a new block to the card is necessary. The position of the new block is known from the previously scanned CCD data. The card is taken out as shown in FIG. 324 so that the card passes through the print head 7125 and the CCD scanner 7126. The scanner 7126 monitors the current position of the card 7122. As shown in FIG. 325, when it is desired to update the square area 7128 with new data, the print head 7125 ejects ink droplets. Then, the card is taken out from the apparatus (FIG. 321) by a method similar to a floppy disk or the like. The card is then used continuously until all data space is filled and a new card is created.

それゆえ、カードを安価に作成し、情報配置のため弾力的な方法で利用可能であるという点で、前述のカードシステムの利用は、情報配置の効果的で安価な形式を提供するということが明白だろう。   Therefore, the use of the card system described above provides an effective and inexpensive form of information placement in that the card can be made inexpensively and used in an elastic manner for information placement. It will be obvious.

図326を参照すると、アートカード読み取り装置に利用される異なる機能のブロック図が示されている。プリントヘッド7125やリニアCCD7126は、適切にプログラムされたアートカム中央プロセッサー(ACP)チップ(ACP)7130の制御により操作される。ACP7130は、スキャンされたデータや他のデータ及びプログラムを保管するメモリー7131を備えている。さらに、ACPは、ピンチローラーを作動させる種々のモータ7132を制御する。もちろん、要求に応じて他の制御ボタン等も配置され得る。そのような編成の利用は、カード表面に格納された情報のモニタリングやアップデートのためのシステムを提供する。
技術60の説明
Referring to FIG. 326, a block diagram of different functions utilized in the art card reader is shown. The print head 7125 and linear CCD 7126 are operated under the control of an appropriately programmed artcam central processor (ACP) chip (ACP) 7130. The ACP 7130 includes a memory 7131 for storing scanned data and other data and programs. In addition, the ACP controls various motors 7132 that actuate the pinch rollers. Of course, other control buttons and the like can be arranged as required. The use of such an organization provides a system for monitoring and updating information stored on the card surface.
Explanation of Technology 60

さらなる改善では、ユーザの要求に応じて自身のアートカードを作成できるアートカード写真自動販売機が提供される。該自動販売機は通常の写真自動販売機と同様の方法で構成されるが、与えられた時間内にアートカードを自動作成するように構成されたコンピューテイショナル・リソースの要求のみが本質的要素ではない。   In a further improvement, an art card photo vending machine is provided that can create its own art card upon user request. The vending machine is configured in the same way as a normal photo vending machine, but only the request for computational resources configured to automatically create an art card within a given time is essential. Absent.

まず、図327を参照すると、さらなる改善7201の機能要素が図解的に示されている。さらなる改善7201は、ユーザーの見本写真7203をスキャンするための高解像度スキャナー7202を有している。また一方、そのスキャナー7202をオプションとして、付加された度合いのリアリズムをアートカード作成システムに与えるため、ユーザが彼らの写真を処理することを許容しても良い。スキャナー7202によってスキャンされた写真7203は、適正なオペレーティングシステムとプログラムを有するハイエンドのPCタイプのコンピュータである基幹コンピュータシステム7204に転送される。該コンピュータ7204は、スキャンされた写真のストレージ、並びに写真プリンター及びアートカードプリンター7205のコントロールをする。写真プリンター及びアートカードプリンター7205は、好ましくは出力されたプリントメディアの両面に印刷することができ、前に開示したような印刷技術を使用することができる。該プリンター7205は、アートカード7207に加えてユーザの写真7206の処理されたものを出力する。アートカードは両面が印刷される。写真7206を生成するため、写真7203の画像処理のための符号化された指示を含む。該符号化された指示はアートカードフォーマットに出力される。   Referring first to FIG. 327, functional elements of a further improvement 7201 are illustrated schematically. A further improvement 7201 includes a high resolution scanner 7202 for scanning a user sample photo 7203. On the other hand, the scanner 7202 may optionally be allowed to allow the user to process their photos in order to give the art card creation system an added degree of realism. The photograph 7203 scanned by the scanner 7202 is transferred to a backbone computer system 7204 which is a high-end PC type computer having an appropriate operating system and program. The computer 7204 controls the storage of scanned photos and the photographic printer and art card printer 7205. The photographic printer and art card printer 7205 are preferably capable of printing on both sides of the output print media and can use printing techniques such as those disclosed previously. The printer 7205 outputs a processed version of the user's photograph 7206 in addition to the art card 7207. Art cards are printed on both sides. In order to generate the photo 7206, the encoded instructions for image processing of the photo 7203 are included. The encoded instructions are output in an art card format.

該コンピュータシステム7204は、また、標準的なタッチ・スクリーン・タイプのようなユーザ・インターフェース7209を有している。該コンピュータシステム7204は、また、支払いシステム7210をコントロール又は内蔵している。該支払いシステム7210は、標準的なコイン又は紙幣の支払いシステム、或いは、取引の承認のためのクレジットカードのサービスプロバイダと適切なネットワーク接続をするクレジット支払いシステムより成る。加えて、エフトポス(EFTPOS)設備が提供されるかも知れない。   The computer system 7204 also has a user interface 7209 such as a standard touch screen type. The computer system 7204 also controls or incorporates a payment system 7210. The payment system 7210 comprises a standard coin or bill payment system or a credit payment system with appropriate network connection with a credit card service provider for transaction authorization. In addition, EFTPOS facilities may be provided.

ユーザが彼らの写真7203をスキャナースロット7202に挿入すると、写真はスキャンされ、保管され、続いて排出される。次に、“フォト・ブース”内に位置するユーザ・インターフェース7209をユーザが操作する。該ユーザ・インターフェース7209は支払いシステム7210に金を支払うための指示を最初に行う。しかしながら、該ユーザ・インターフェース7209の中核は、タッチスクリーンによる様々なアートカードの創作である。   When the user inserts their photo 7203 into the scanner slot 7202, the photo is scanned, stored, and subsequently ejected. Next, the user operates the user interface 7209 located in the “photo booth”. The user interface 7209 first instructs the payment system 7210 to pay money. However, the core of the user interface 7209 is the creation of various art cards with a touch screen.

好適なユーザ・インターフェースの一例は、図328に示される。該ユーザ・インターフェースの中核は、後に述べる方法で処理される多くの見本サムネイル画像7213をユーザに示すことで構成される。最初に、例えば、会社のイベントや、誕生日のイベントや、季節のイベントや、処理のタイプ等のような画像の処理7213がサブジェクトエリアに配置される。ユーザは、タッチスクリーンによって好みの画像(例えば、7213)を選択する。好みの画像が存在しない場合、ユーザは矢印ボタン7214を押して、他の処理を表示させることができる。ユーザが画像7213を選択したとき、その画像に似た“テーマ”を有して、一連の処理を提示する代替物の生成にその画像が使用される。そのユーザは、選択された種類から画像を選択することを継続できる。   An example of a suitable user interface is shown in FIG. The core of the user interface consists of showing the user a number of sample thumbnail images 7213 that are processed in the manner described below. First, for example, image processing 7213 such as a company event, a birthday event, a seasonal event, and a processing type is arranged in the subject area. The user selects a favorite image (for example, 7213) using the touch screen. If the preferred image does not exist, the user can press the arrow button 7214 to display other processing. When the user selects an image 7213, that image is used to generate an alternative that presents a series of processes with a “theme” similar to that image. The user can continue selecting images from the selected type.

好みの画像はセーブボタン7217の使用によりセーブすることができる。そして、そのユーザ・インターフェースは、セーブされている選択7218を示す。ナビゲーション・ボタン7215は前画面に戻るためのものであり、ナビゲーション・ボタン7216hは上位に戻るためのものである。この方法によれば、ユーザは、彼ら自身の特有のカスタマイズした要求を作るため、様々なアートカードを検索することができる。この方法によれば、独特の芸術的創作活動が、独特のアートカードの作成を促す。   A favorite image can be saved by using a save button 7217. The user interface then shows the selection 7218 being saved. The navigation button 7215 is for returning to the previous screen, and the navigation button 7216h is for returning to the upper level. This method allows users to search various art cards to make their own unique customized requests. According to this method, unique artistic creation activities encourage the creation of unique art cards.

そのような様々なアートカードの作成は、作成プロセスにおける創作者の役割をユーザに与える遺伝的アルゴリズム技術に依存している。ここで、図329を参照すると、図327のコンピュータシステムにて実行されるアプリケーションのソフトウェア・レイアウトの例が示されている。該ソフトウェア・レイアウト7220は、実行できる画像処理の遺伝的プール7221と、特定の画像に適合させるテーマ処理とを備えている。この遺伝的プールは、新たな種類(属)の生成のための遺伝的アルゴリズム・コアによって利用される。遺伝的アルゴリズムの標準的なテキストを紹介すると、例えば、この分野において最新の処理が加えられている“遺伝的アルゴリズム”Golberg著がある。或いは、遺伝子のプログラミングの分野は利用され得、そして、この点で、“遺伝子プログラミング”と題名づけられたKozaによる一般的な研究を参照する。   The creation of such various art cards relies on genetic algorithm technology that gives the user the role of the creator in the creation process. Referring now to FIG. 329, there is shown an example of a software layout of an application executed in the computer system of FIG. The software layout 7220 includes a genetic pool 7221 of image processing that can be performed, and theme processing adapted to specific images. This genetic pool is used by the genetic algorithm core for the generation of new types (genus). Introducing the standard texts of genetic algorithms, for example, is “Genetic Algorithm” by Golberge, who has added the latest processing in this field. Alternatively, the field of genetic programming can be utilized, and in this regard, reference is made to the general work by Koza entitled “Gene Programming”.

前記遺伝的アルゴリズムのコアは、また、新たで好適な画像を作成する際に、ユーザの選択7223を使用することができる。該遺伝的アルゴリズムのコアの出力は、タッチスクリーンディスプレイに表示するためにユーザインターフェースモジュール7225に転送される、適切な新しい画像を含む。   The core of the genetic algorithm can also use the user's selection 7223 in creating new and preferred images. The output of the genetic algorithm core includes the appropriate new image that is transferred to the user interface module 7225 for display on the touch screen display.

再び図328に戻ると、ユーザが好みの選択を発見すると、受け付けボタン7219を押すことができる。これにより、ユーザによる支払いが要求されるとともに受け付けられる。また、アートカード7207を受け入れる他の装置(例えば、上述したアートカム装置)でユーザが利用できるように、アートカード7207には、一連の画像処理に加えてプリンタ7205に画像を出力させる指示がコンピュータシステム7204(図327)によりなされる。   Returning again to FIG. 328, if the user finds a favorite selection, the accept button 7219 can be pressed. Thereby, payment by the user is requested and accepted. In addition to a series of image processing, the art card 7207 has an instruction to output an image to the printer 7205 so that the user can use it with another device that accepts the art card 7207 (for example, the above-described art cam device). 7204 (FIG. 327).

したがって、ユーザが別々に利用することのできる、複雑な、自分の名前を記入するようにカスタマイズされた画像を作成するシステムがさらなる改善によって提供されることは、当業者には明らかだろう。多くの画像の利用は、同様に重要な個性化に導くことのできるアートカードの重要な結合の急変動をもたらす。   Thus, it will be apparent to those skilled in the art that further improvements provide a system for creating complex, customized images to fill in their names that can be used separately by the user. The use of many images leads to a sudden change in the art card's important connections that can lead to important personalization as well.

もちろん、多くの他のタイプの中核技術が画像の構築に使用されることができる。例えば、他の非遺伝的技術が適するかも知れない。最悪の場合、各画像の選択は手動で用意される。さらに、他のユーザーインターフェース機構が提供され得る。加えて、本発明は、標準のコンピュータシステムのような、自動販売機で無い環境で実行されることもできる。   Of course, many other types of core technologies can be used for image construction. For example, other non-genetic techniques may be suitable. In the worst case, the selection of each image is prepared manually. In addition, other user interface mechanisms may be provided. In addition, the present invention can be implemented in an environment that is not a vending machine, such as a standard computer system.

更なる改良の操作は、個人の創造性の重要な表現に備える。そして、芸術家による個々の創造が個々の芸術家等のアートカード“シリーズ”を提供する際に重要な価値を呈するかもしれないと考えられる。
技術61の説明
技術62の説明
Further refinement operations provide for an important expression of personal creativity. And it is thought that individual creation by an artist may present important value in providing an art card “series” of individual artists.
Explanation of Technology 61 Explanation of Technology 62

上述したアートカム配列の基本は、概略図の形態で図330に示されている。この配列は、画像やシーンを検知するためのCCDセンサー7402を有する。加えて、検知画像を処理するための画像処理アルゴリズムであってコード化されたものについての、アートカード7408の読み取りを行うために、アートカード読み込みセンサー7403が提供される。該CCDセンサー7402と該アートカード読み込みセンサー7403の両方は、検知した画像の処理のために複雑な計算能力を与えるアートカード中央処理ユニット(ACP)7404に接続されている。加えて、メモリーユニット7405が、画像や、検知したデータや、プログラムなどを保存しておくために用意されている。ACP7404に接続されているのは、内部のプリントロールから供給されるプリントメディアに最終的な写真7404を印刷するためのプリントヘッド7406である。   The basic art cam arrangement described above is shown in FIG. 330 in schematic form. This array has a CCD sensor 7402 for detecting images and scenes. In addition, an art card reading sensor 7403 is provided to read the art card 7408 for an encoded image processing algorithm for processing the sensed image. Both the CCD sensor 7402 and the art card reading sensor 7403 are connected to an art card central processing unit (ACP) 7404 that provides complex computational power for processing the detected image. In addition, a memory unit 7405 is provided for storing images, detected data, programs, and the like. Connected to the ACP 7404 is a print head 7406 for printing a final photograph 7404 on a print medium supplied from an internal print roll.

さらなる改善では、独特な一連のアートカード7408がアートカード・リーダー7403に挿入されることにより、アートカム中央プロセッサー7404の独特のコントロールがなされる。第1の例は、図X2や図332に示されるものであって、重ね合わせた、或いは増大する画像の効果を与えるためのマルティプル・アートカードの使用を提供する。適切な複製アートカードは、図332に7410で示されたものであって、効果を生じさせるためにどのようにカメラ装置を操作するかに関しての指示が一側面に設けられている。他側の面には、その効果を生じさせるためのアートカム装置の操作の指示が設けられている。図331を参照すると、組み合わせた効果を生じさせるためのリピティションカードの操作の例が示されている。アートカムシステムは、あるシーンの検知画像又は保存画像を有している。第1のステップは、リピティション・モードにするため、アートカムシステムの操作を変更するコードを有するリピティションカード7413を挿入することである。続いて、第1のアートカード7414がアートカード読み込みセンサー7403に挿入され、そのカード7414の指示に従って画像に第1の効果が与えられる(符号7415参照)。続いて、リピティションカードが再び挿入され(符号7416)、次に、第2のアートカード7417が挿入され、例えば、画像にテキストメッセージを配置するという第2の効果が与えられる(符号7418)。次に、再びリピティションカード7419が挿入され、その後、第3のアートカード7420が挿入されて、さらなる効果が画像7421に与えられる。図331のプロセスは、所望の出力画像の形成のため、要求に従って繰り返し行われる。この方法によれば、1つの効果だけを有するアートカードから組み合わせの効果を作成するため、柔軟性を持って上述した装置が使用される。さらに、提供されるユーザ・インターフェースは、組み合わせの効果を作成する上において、シンプルで効果的である。もちろん、多くの変更を行うことができる。例えば、別の実施例においては、リピティションカードは1回だけ挿入され、一連のアートカードがそのリピティションカードに続いて挿入される。   In a further improvement, a unique series of art cards 7408 are inserted into the art card reader 7403 to provide unique control of the art cam central processor 7404. A first example, shown in FIG. X2 or FIG. 332, provides the use of multiple art cards to provide a superimposed or augmented image effect. A suitable duplicate art card is shown at 7410 in FIG. 332, with instructions on one side regarding how to operate the camera device to produce an effect. An instruction for operating the art cam device is provided on the other surface to produce the effect. Referring to FIG. 331, an example of a repetition card operation for producing a combined effect is shown. The art cam system has a detected image or a stored image of a certain scene. The first step is to insert a repetition card 7413 with a code that changes the operation of the art cam system to enter the repetition mode. Subsequently, the first art card 7414 is inserted into the art card reading sensor 7403, and the first effect is given to the image according to the instruction of the card 7414 (see reference numeral 7415). Subsequently, the repetition card is inserted again (reference numeral 7416), and then the second art card 7417 is inserted, giving a second effect of placing a text message on the image, for example (reference numeral 7418). Next, the repetition card 7419 is inserted again, and then a third art card 7420 is inserted to give further effects to the image 7421. The process of FIG. 331 is repeated as required to form the desired output image. According to this method, the above-described apparatus is used with flexibility in order to create a combined effect from an art card having only one effect. Furthermore, the provided user interface is simple and effective in creating a combination effect. Of course, many changes can be made. For example, in another embodiment, a repetition card is inserted only once, and a series of art cards is inserted following the repetition card.

図333を参照すると、アートカムシステムの内部テストのための、別のアートカード7430が示されている。一つ一つのアートカムシステムには多くの内部テストルーチンが内部ROMに用意されている。そのテストは、アートカム中央プロセッサーに用意された翻訳言語での、特別な関数呼出しによりアクセスされる。そのルーチンは、アートカム装置の仕様であり、例えば、
プリントヘッドの動作状態を判断するためのテストパターンのプリントアウトと;
ノズルのクリーニングのため、及びプリントヘッドの操作が改良されるようなノズル配列のため、プリントヘッドの操作処理を行うテストパターンのプリントアウト(例えば、全てが黒のプリント)と;
プリントヘッドの操作の有効性を示すため、後の分析のためにテストパターンがプリントされること;
が含まれる。
Referring to FIG. 333, another art card 7430 is shown for internal testing of the art cam system. Each ArtCam system has many internal test routines in its internal ROM. The test is accessed by a special function call in the translation language provided in the Artcam central processor. The routine is the specification of the art cam device, for example,
Printing a test pattern to determine the operating state of the printhead;
Printouts of test patterns (eg, all-black prints) that perform printhead manipulation processes for nozzle cleaning and for nozzle arrays that improve printhead operation;
A test pattern is printed for later analysis to show the effectiveness of the printhead operation;
Is included.

図334を参照すると、テストパターン7437のプリントアウトに加え、参考になる様々な内部データを有するテスト・アウトプット7435の見本が示されている。そのテストパターン7437は、そのカメラシステムに存在しているかも知れない何らかの問題を割り出す自動的又は主導的な方法によって後で調査することができる。さらなる改善は、アートカム装置にプログラムされ、ROMメモリーに格納されているソフトウェア・ルーチンの使用を通じて実行される。   Referring to FIG. 334, there is shown a sample test output 7435 having various internal data to be referenced in addition to the printout of the test pattern 7437. The test pattern 7437 can later be investigated by an automatic or lead method that identifies any problems that may exist in the camera system. Further improvements are performed through the use of software routines programmed into the ArtCam device and stored in ROM memory.

もちろん、前記ルーチンがアップデートされたり、変更されたりすることで、多くの改善が予想され得る。多くのテストは実際には制限されない。この方法によれば、カメラ装置の操作は、挿入されるカードに従って変更され得る。
技術63の説明
技術64の説明
Of course, many improvements can be expected as the routine is updated or changed. Many tests are not really limited. According to this method, the operation of the camera device can be changed according to the inserted card.
Explanation of Technology 63 Explanation of Technology 64

さらなる改善では、出力写真の裏面に音声メッセージを記録するために磁気感受性プリントメディア材料が使用される。アートカム装置は、写真の全面を覆う磁気レコーダの配列や、或いは、例えば、磁気的感受性のある写真中央部のような、磁気帯からなる磁気記録装置を含むように改変される。該アートカム装置にはさらに後で再生するための音声メッセージを録音できる能力が与えられる。   In a further improvement, magnetically sensitive print media material is used to record a voice message on the back side of the output photo. The art cam device is modified to include a magnetic recording device comprising a magnetic strip, such as an array of magnetic recorders covering the entire surface of the photograph or, for example, a magnetically sensitive center of the photograph. The art cam device is further provided with the ability to record voice messages for later playback.

さらなる改善では、アートカム装置は、マイクロフォン装置や関連の録音技術を装備するように適当に変更される。写真を撮影するとき、周囲の音環境か、その画像に関係するメッセージのいずれかを録音する機会が与えられる。そのプリントメディア又はフィルムは、テープメディアと同じように、磁気感受性を有するように前処理されている。出力写真の裏面全体、或いは磁気感受性帯に録音がなされる。録音された音声は、コード化された形式で出力写真の裏面に保持される。そのコード化は、好ましくは、高度なデジタル再現性のある形式である。その録音された音声は写真に関係する、永久的な音声録音を提供する。次に、再生装置は、コード化された音声をスキャンし、この情報を復号化するために提供される。   In a further improvement, the art cam device is suitably modified to be equipped with a microphone device and associated recording technology. When taking a photo, you are given the opportunity to record either the surrounding sound environment or a message related to the image. The print media or film has been pretreated to have magnetic sensitivity, similar to tape media. Recordings are made on the entire backside of the output photo or on the magnetic sensitivity band. The recorded audio is retained on the back of the output photo in coded form. The encoding is preferably in a highly digitally reproducible format. The recorded audio provides a permanent audio recording related to the photo. A playback device is then provided to scan the encoded speech and decode this information.

図335を参照すると、上述した構成、つまり、画像7602がCCDセンサー7603により検知されアートカム中央プロセッサ7604に転送されるという構成を含むさらなる改善7601が、概略形式にて示されている。該アートカム中央プロセッサ7604は、好ましくは高速RAMBUS(登録商標)インターフェースのメモリーからなるメモリー7605に画像を格納する。また、アートカム中央プロセッサ7604は、写真の裏に記録をするための磁気記録ヘッド7616に加え、プリントヘッド7606(要求に応じてインスタント画像を提供するため、フルカラー写真7607を印刷するためのもの)の操作をコントロールするようになっている。   Referring to FIG. 335, a further improvement 7601 is shown in schematic form, including the arrangement described above, that is, an arrangement in which an image 7602 is detected by a CCD sensor 7603 and transferred to an art cam central processor 7604. The art cam central processor 7604 stores the image in a memory 7605 which preferably comprises a high speed RAMBUS® interface memory. The Artcam central processor 7604 also includes a printhead 7606 (for printing full-color photos 7607 to provide instant images upon request) in addition to a magnetic recording head 7616 for recording on the back of a photo. The operation is controlled.

さらなる改善では、カメラ編成7601は、ACPプロセッサ7604の制御下でRAMBUSバス7611経由でメモリー7605にインターフェース接続されているサウンドチップ7610を備えている。該サウンドチップ7610は、標準的形式とすることも、或いは専用形式とすることもでき、例えば、サウンドマイクロフォン7613からのアナログ入力7612を取得するDSPプロセッサを備えることができる。もう一つの方法として、チップの複雑さに伴って(ムーアの法則)、サウンドチップ7610の機能を、好ましくは最先端のCMOS型集積回路チップを備えるACPチップ7604に組み込むことができる。本発明の範囲内に該当する他の多くの種類の編成を提供できることは容易に明白であろう。   In a further improvement, the camera organization 7601 comprises a sound chip 7610 that is interfaced to the memory 7605 via the RAMBUS bus 7611 under the control of the ACP processor 7604. The sound chip 7610 can be in a standard format or a dedicated format, and can include, for example, a DSP processor that obtains an analog input 7612 from a sound microphone 7613. Alternatively, with the complexity of the chip (Moore's Law), the functionality of the sound chip 7610 can be incorporated into an ACP chip 7604, which preferably comprises a state-of-the-art CMOS integrated circuit chip. It will be readily apparent that many other types of organization falling within the scope of the present invention can be provided.

サウンドチップ7610は、アナログ入力7612を対応するデジタル形式へ変換し、それをメモリー7605に格納するために転送する。そのような記録プロセスは、カメラ装置上のボタン(図示せず)を押すことによって作動させることができる。該ボタンはACPプロセッサ7604の制御下にあるか、そうでなければ、写真を撮るときに実質的に自動化されることができる。記録されたデータは、メモリー7605に格納される。   The sound chip 7610 converts the analog input 7612 to the corresponding digital format and forwards it for storage in the memory 7605. Such a recording process can be activated by pressing a button (not shown) on the camera device. The button is under the control of the ACP processor 7604 or otherwise can be substantially automated when taking a picture. The recorded data is stored in the memory 7605.

図336を参照すると、カメラ編成は、好ましくは、プリンター装置7606(プリントメディア7617に画像を印刷するのに使用されるプリントヘッドを有する)と磁気記録プリントヘッド7616(プリントメディア7617の裏面に情報を印刷するのに使用される)とを備えている。図337を参照すると、フォトメディア7617の裏面に形成された磁気帯7618の出力例が示されている。その磁気帯は図336の記録ヘッド7616によって記録される。記録された情報は、場所や日付や時間のデータを含み、場所のデータはキーボード入力により、或いは、GPSや同様のもののような、付属の位置決めシステムの利用によって与えられる。重要なことには、画像7617の裏面に、コード化された音声情報が記録される。コード化の方法には多くの様々なものとすることができるが、好ましくは、エラーを許容するように、高度なフォールトトレラント方法でコード化される。その高度化の形式は、高度なフォールトトレラントを提供するため、データのリード・ソロモン符号化を利用するようにしても良い。   Referring to FIG. 336, the camera organization preferably includes a printer device 7606 (with a print head used to print an image on print media 7617) and a magnetic recording print head 7616 (information on the back of the print media 7617). Used for printing). Referring to FIG. 337, an output example of a magnetic strip 7618 formed on the back surface of the photo media 7617 is shown. The magnetic band is recorded by the recording head 7616 in FIG. The recorded information includes location, date, and time data, which is provided by keyboard input or by using an attached positioning system such as GPS or the like. Importantly, coded audio information is recorded on the back side of the image 7617. The method of encoding can be many different, but is preferably encoded in a highly fault tolerant manner to allow for errors. The form of sophistication may utilize Reed-Solomon encoding of data to provide a high degree of fault tolerance.

図338を参照すると、録音された音声を“再生”したいときは読み取り装置7626を用い、ピンチローラーにて写真7617を挟み込みながら磁気センサー装置7627を通過させる。   Referring to FIG. 338, when the recorded sound is to be “reproduced”, the reading device 7626 is used, and the magnetic sensor device 7627 is passed while the photograph 7617 is sandwiched between the pinch rollers.

図339を参照すると、図338の音声読み取り装置7626の操作が概略形式で示されている。前記磁気センサー7627は第2のアートカム中央プロセッサ7628に接続されていて、写真の裏面に格納されているデータを読み取って復号化するようになっている。その復号化された音声情報はメモリー7632に格納され、サウンド処理チップ7633を介してスピーカー7629で再生される。そのサウンド処理チップ7633はACPデコーダー7628の制御下で操作され、ボリュームコントロールや巻き戻しや再生や早送り等の、ユーザの様々な入力制御7633に基づき順に操作される。   Referring to FIG. 339, the operation of the voice reader 7626 of FIG. 338 is shown in schematic form. The magnetic sensor 7627 is connected to the second art cam central processor 7628 so as to read and decode data stored on the back side of the photograph. The decoded audio information is stored in the memory 7632 and reproduced by the speaker 7629 via the sound processing chip 7633. The sound processing chip 7633 is operated under the control of the ACP decoder 7628, and sequentially operated based on various user input controls 7633 such as volume control, rewinding, reproduction, and fast-forwarding.

さらなる改善についての上記説明から理解できるように、出力画像に関係する音声の自動録音のためのシステムが提供され、写真に関係する音声録音が行われる。また、写真の裏面に記録された画像を読み取るための音声読み取りシステムも開示される。数多くの変更及び/又は修正が、大まかに説明された本発明の精神または範囲から逸脱することなく、特定の実施の形態に示されるような本発明へなされてもよいことは、当業者によって理解されよう。例えば、ステレオおよびBフォーマット技術等のような、より複雑な音声録音再生技術への利用である。
技術65の説明
As can be appreciated from the above description of further improvements, a system for automatic recording of audio related to the output image is provided, and audio recording related to the photo is made. An audio reading system for reading an image recorded on the back side of a photograph is also disclosed. It will be understood by those skilled in the art that numerous changes and / or modifications may be made to the invention as illustrated in the specific embodiments without departing from the spirit or scope of the invention as broadly described. Let's do it. For example, it is used for more complicated audio recording and reproducing technologies such as stereo and B format technologies.
Explanation of Technology 65

さらなる改善では、プリントヘッドを使用して“ネガ”を印刷するよう、上述したアートカム装置が適正にプログラムされる。該ネガは、アートカード・センサー装置に挿入されて利用できるよう、標準的なアートカード形式に適合している。アートカード・センサー装置は“ネガ”アートカードに格納された情報を検知し、写真を印刷する。   In a further improvement, the art cam apparatus described above is properly programmed to print a “negative” using the printhead. The negative conforms to a standard art card format so that it can be inserted into an art card sensor device for use. The art card sensor device detects the information stored on the “negative” art card and prints a photo.

まず、図340を参照すると、要求に応じて画像を検知するセンサー装置7702と、アートカード情報を検知するためのカード読み取りセンサー7703とを備えた標準的なアートカム装置7701が、概略形式で示されている。それらのセンサー7702,7703は、アートカム装置の操作のための重要な計算手段であるアートカム中央プロセッサ7704の制御下で操作される。そのアートカム中央プロセッサ7704は、完全にベクトル化されたVLIW(very long instruction word)中央プロセッサに加えて、オンボードCPUを含むことができる。ACP7704は、取得した画像7702の処理に加えて、アートカード読み取り装置7703にて読み取ったアートカード(情報)の処理及び復号化を行う。内部プリントロールにより供給されるプリントメディアにプリントヘッド7706により印刷する処理画像を形成し、写真7707を出力するため、ACP7704はメモリー7705との間での処理を行う(interact)。該アートカムシステム7701は、完全なポータブルカメラシステムを構築するように設計されており、プリントヘッド7706(該プリントヘッドは、ACPプロセッサ7704の制御下において要求により写真7707の印刷を行うためのものである)に接続されたプリントロール(内蔵型で使い捨てできるものであって、印刷メディア及びインクを供給するためのものである)を備えている。   Referring first to FIG. 340, a standard art cam device 7701 comprising a sensor device 7702 for detecting images upon request and a card reading sensor 7703 for detecting art card information is shown in schematic form. ing. These sensors 7702, 7703 are operated under the control of an art cam central processor 7704, which is an important calculation means for the operation of the art cam device. The art cam central processor 7704 can include an on-board CPU in addition to a fully vectorized very long instruction word (VLIW) central processor. The ACP 7704 performs processing and decryption of the art card (information) read by the art card reading device 7703 in addition to the processing of the acquired image 7702. The ACP 7704 performs processing with the memory 7705 (interact) in order to form a processed image to be printed by the print head 7706 on the print medium supplied by the internal print roll and to output a photograph 7707 (interact). The art cam system 7701 is designed to build a complete portable camera system and is intended to print a photohead 7706 on demand under the control of an ACP processor 7704. A print roll (built-in and disposable, for supplying print media and ink).

図341を参照すると、図340のアートカムシステムの操作のステップであって、さらなる改善に従ったもの7710が示されている。さらなる改善では、まず、第1のアートカム装置を使って所望の画像が撮影される(7710)。次に、高度なフォールトトレラントであって、回復される出力データ形式を提供すべく、該撮影画像が処理される。その処理は、画像、複製されたデータ、データ値の配列にデータを疑似ランダムに展開するのに加えてリード−ソロモン符号化データの圧縮を含むことができる。その出力形式は、必要なら、画像の圧縮に加え、上述したような“アートカード”装置により提供されるのと同じにできる。アートカードの出力データに加え、検知画像のサムネイル画像がその符号化されたデータに沿って印刷される。   Referring to FIG. 341, there is shown 7710 operational steps of the art cam system of FIG. 340 according to further improvements. In a further improvement, the desired image is first taken using the first art cam device (7710). The captured image is then processed to provide a highly fault tolerant output data format that is recovered. The process can include compression of Reed-Solomon encoded data in addition to pseudo-random expansion of the data into an array of images, replicated data, and data values. The output format can be the same as provided by an “art card” device as described above, in addition to image compression, if desired. In addition to the output data of the art card, a thumbnail image of the detected image is printed along with the encoded data.

そのアートカード編成は、図342に示されるように、CCDセンサー7702によって画像7720を取得すると共に、アートカムの“ネガ”のもの7721を出力するアートカム装置7701を備えている。該“ネガ”形式のものは、入力画像のサムネイル7724と、検知画像を高度に符号化したもの7722とを含む。図342には示されていないけれども、その出力されたものは、アートカム装置7701内の裁断装置によって線7725に沿って通常は切り取られる。   As shown in FIG. 342, the art card organization includes an art cam device 7701 that acquires an image 7720 by a CCD sensor 7702 and outputs an art cam “negative” 7721. The “negative” format includes a thumbnail 7724 of the input image and a highly encoded 7722 of the detected image. Although not shown in FIG. 342, the output is usually cut along line 7725 by a cutting device in art cam device 7701.

データエリア7722は、該エリア7722の側縁に沿った一連の印(例えば、7727,7728)と共に印刷される。それらの印7727,7728は、スキャンされるときにデータエリア7722の正確な位置を与える。“ネガ”7721を印刷することにより、画像の半永久的な記録が得られる。この“ネガ”7721は、写真のネガを保存するのと同様の方法により保存される。取得した画像の、さらなる、高品質なコピーを必要とする場合には、前記アートカード“ネガ”が、図342のアートカム装置のアートカード読み取り装置7703の中へ挿入され(図341の7713)、アートカードデータは通常の方法で復号化され、オリジナル画像が得られる。符号化されているデータは、オリジナルな画像と、該画像をアートカム装置により印刷するために必要な指示を含むことができる。検知されたカードは復号化され(図341の7714)、要求に応じて何度も印刷され(7715)、オリジナル画像が得られる。つまり、検知された画像が出力される。よって、検知された画像を高解像度と高い回復力でコピーするシステムが得られる。   Data area 7722 is printed with a series of indicia (eg, 7727, 7728) along the side edges of area 7722. Those indicia 7727, 7728 give the exact location of the data area 7722 when scanned. By printing “negative” 7721, a semi-permanent record of the image is obtained. This “negative” 7721 is stored in the same manner as a photographic negative is stored. If a further high quality copy of the acquired image is required, the art card “negative” is inserted into the art card reader 7703 of the art cam device of FIG. 342 (7713 of FIG. 341), The art card data is decrypted by a normal method to obtain an original image. The encoded data can include the original image and instructions necessary to print the image with the art cam device. The detected card is decrypted (7714 in FIG. 341) and printed many times as required (7715) to obtain the original image. That is, the detected image is output. Therefore, a system for copying the detected image with high resolution and high resilience can be obtained.

他の実施例も構成することができる。例えば、前記“ネガ”データを、写真面の裏面に自動印刷する編成を利用しても良い。そのような編成は図343に示される。該図に示されるものは、写真7730の裏面であり、サムネイル部分7732に加えて、データ符号化エリア7731が印刷されている。したがって、該データエリア7731は、該カード7730の表面において、画像に関しての、半永久的で、高い精度の記録を提供することができる。
技術66の説明
Other embodiments can also be configured. For example, an organization that automatically prints the “negative” data on the back side of the photographic surface may be used. Such an organization is shown in FIG. What is shown in the figure is the back surface of the photograph 7730, and in addition to the thumbnail portion 7732, a data encoding area 7731 is printed. Accordingly, the data area 7731 can provide a semi-permanent and highly accurate recording of images on the surface of the card 7730.
Explanation of Technology 66

さらなる改善では、ランダムな出力の要求に応じて多数のアートカードを出力できるアートカード・プリンターが提供される。その製品のプリンターは、ネットワークを介して他の製品のプリンターと接続され、総合コンピュータシステムが、所定の要求に従ってアートカードを分配するためにネットワークを制御する。このような方法で、高い柔軟性を与えるため、アートカードの製造がコントロールされる。   In a further improvement, an art card printer is provided that can output multiple art cards in response to random output requirements. The printer of the product is connected to the printers of other products via a network, and the integrated computer system controls the network to distribute the art card according to a predetermined request. In this way, the production of art cards is controlled to give high flexibility.

図344を参照すると、たった一つのアートカードプリンター7801が概略図の形式で示されている。該プリンターは、アートカードの上面に画像を印刷するためのプリントヘッド7802、及びアートカードの下面に画像取扱説明書(符号化されたもの)を印刷するためのプリントヘッド7803の2つのプリントヘッド7802,7803を備えている。該プリントヘッド7802はインク供給部7806を有する3色のプリントヘッドにすることができる。下面プリンター7803は1つのインク供給部7807を有する単色プリントヘッドにすることができる。プリンター7801は、要求に応じてアートカードをプリントアウトすべくコンピュータシステムの制御にて操作される。印刷した後、ベースプレート7810(流通目的のために多数のアートカードが配置されたもの)からアートカードを打ち出すためにパンチ装置7809が配置されている。所定の区域の要求に従った分配。   Referring to FIG. 344, only one art card printer 7801 is shown in schematic form. The printer has two print heads 7802, a print head 7802 for printing an image on the upper surface of the art card and a print head 7803 for printing an image instruction manual (encoded) on the lower surface of the art card. , 7803. The print head 7802 can be a three-color print head having an ink supply unit 7806. The bottom printer 7803 can be a single color print head having one ink supply 7807. The printer 7801 is operated under the control of a computer system to print out an art card in response to a request. After printing, a punching device 7809 is arranged to punch out the art card from the base plate 7810 (a number of art cards arranged for distribution purposes). Distribution according to the requirements of a given area.

図345を参照すると、アートカード交付システムの制御ネットワーク7820の一般的な配列が示されている。一連のプリンターコンピュータ装置(例えば、7821)が配置され、要求に応じて様々な形態を取ることのできるネットワーク7822に一緒に接続されている。中央統合コンピュータ7823がネットワーク7822及びプリンターコンピュータ(例えば、7821)を制御して、プリンターコンピュータ(例えば、7821)によってアートカードの組み合わせたものを印刷する指示を送るようになっている。プリンターコンピュータ(例えば、7821)は、要求に応じて地方に配置することができる。或いは、それらのプリンターコンピュータを中心(centrally)に配置しても良いが、様々な地方に送られ、或いは、様々な要求を満足するために命令されるかも知れない。それぞれのプリンターコンピュータは、アートカードの大きなキャッシュを有することができる。そのキャッシュは、メモリーや、ディスクや、各プリンターコンピュータに適宜配布されるCD−ROMに設けることができる。中央統合コンピュータは、プリンターコンピュータによって印刷されるべきアートカードのリストを配布する。加えて、新しいアートカードが該中央統合コンピュータ7832に読み込まれ、要求に応じ、関連するプリンターコンピュータ(例えば、7821)に送られる。その配布は、キャッシュされた配布配列の形式である。   Referring to FIG. 345, a general arrangement of an art card delivery system control network 7820 is shown. A series of printer computer devices (eg, 7821) are arranged and connected together to a network 7822, which can take a variety of forms upon request. Central integrated computer 7823 controls network 7822 and printer computer (eg, 7821) to send instructions to print a combination of art cards by printer computer (eg, 7821). A printer computer (e.g., 7821) can be located locally upon request. Alternatively, the printer computers may be centrally located, but may be sent to different regions or ordered to meet different requirements. Each printer computer can have a large cache of art cards. The cache can be provided in a memory, a disk, or a CD-ROM appropriately distributed to each printer computer. The central integrated computer distributes a list of art cards to be printed by the printer computer. In addition, a new art card is read into the central integrated computer 7832 and sent to the associated printer computer (eg, 7821) upon request. The distribution is in the form of a cached distribution array.

図346を参照すると、プリンターコンピュータの好適な編成7830の1つの形態が示されている。その編成7830は基幹コンピュータシステム7831を備え、該コンピュータシステム7831は、大きなメモリやディスクキャパシティを持つ、ハイエンドのPCタイプのコンピュータである。そのコンピュータシステムは7831は、図344の編成に従って配列されたアートカードプリンター7832に接続されている。該コンピュータシステム7831は、ネットワーク7834に加えて、キャッシュされるアートカード7833の大きなストアを備えている。よって、プリントアウトされるべきアートカードのリストは前記中央コンピュータから各プリンターコンピュータへ、アートカードの印刷のために転送される。   Referring to FIG. 346, one form of a preferred organization 7830 of a printer computer is shown. The organization 7830 includes a backbone computer system 7831, which is a high-end PC type computer with large memory and disk capacity. The computer system 7831 is connected to an art card printer 7832 arranged according to the organization of FIG. The computer system 7831 includes a large store of art cards 7833 to be cached in addition to the network 7834. Thus, a list of art cards to be printed out is transferred from the central computer to each printer computer for art card printing.

図345の編成では、大きな組み合わせの複雑な配布の問題が打開され、配布のシステムの改良された形態であることが分る。
インクジェット技術
The organization of FIG. 345 overcomes the large combination of complex distribution problems and reveals an improved form of the distribution system.
Inkjet technology

本発明の実施例はインクジェットプリンタ型装置を使用している。もちろん、多くの異なる装置を使用することができる。しかしながら、現在ポピュラーなインクジェットプリント技術は適していそうにも無い。     The embodiment of the present invention uses an ink jet printer type device. Of course, many different devices can be used. However, currently popular inkjet printing technology is unlikely to be suitable.

サーマルインクジェットでの最も重要な問題は電力消費である。インク滴の射出のエネルギー効率が悪いことに起因し、高速のために必要な電力は約100倍である。インクを吐出させる蒸気泡を生成するために、水の迅速な沸騰を必要とするからである。水は大変高い熱容量を有していて、サーマルインクジェットの利用において過熱される。これは、電気の入力を運動の出力に変換するため、約0.02%の効率を必要とする。     The most important problem with thermal inkjet is power consumption. Due to the poor energy efficiency of ink drop ejection, the power required for high speed is about 100 times. This is because rapid boiling of water is required to generate vapor bubbles for ejecting ink. Water has a very high heat capacity and is overheated in the use of thermal ink jets. This requires an efficiency of about 0.02% to convert the electrical input to the motion output.

ピエゾエレクトリックインクジェットでの最も重要な問題はサイズとコストである。ピエゾエレクトリッククリスタルは適当な駆動電圧にて非常に小さなデフレクション(deflection)を有していて、それ故、各ノズルのために大きなエリアが必要となる。また、各ピエゾエレクトリックのアクチュエータは、分離した基板の駆動回路に接続されなければならない。このことは、300程度のノズルの電流制限においては重要な問題ではないが、19,200のノズルを有するページ幅プリントヘッドの製造には大きな障害となる。     The most important issues with piezo electric ink jets are size and cost. Piezoelectric crystals have very little deflection at the appropriate drive voltage, and therefore require a large area for each nozzle. Also, each piezoelectric actuator must be connected to a separate substrate drive circuit. This is not an important problem in limiting the current of about 300 nozzles, but is a major obstacle to the manufacture of page width printheads with 19,200 nozzles.

理想としては、使用されたインクジェット技術は、非公開のデジタルカラープリンティングや、他のハイクォリティでハイスピードでローコストのプリント利用が要求される。デジタル写真の要求に合わせるため、新たなインクジェット技術が創出されてきた。目的の特徴は次のものである。:すなわち、
低電力(10ワット未満)
高解像度性能(1,600dpi又はそれ以上)
写真クォリティの出力
低製造コスト
小サイズ(横切り幅が最小となるようにページ幅を調整する)
ハイスピード(<1頁当たり2秒)
Ideally, the inkjet technology used requires private digital color printing and other high-quality, high-speed, low-cost print applications. New inkjet technologies have been created to meet the demands of digital photography. The objective features are: : That is,
Low power (less than 10 watts)
High resolution performance (1,600 dpi or higher)
Photo quality output Low manufacturing cost Small size (Adjust page width to minimize cross-cut width)
High speed (<2 seconds per page)

これらの特徴の全ては、後述するインクジェットシステムにより、異なるレベルの困難さで突破されることが可能である。45個の異なるインクジェット技術は、高ボリュームの製造のために幅広い選択を与えるよう、受け継ぐ者によって発展されてきた。これらの技術は、後に記載する表に示すように、本出願人に指定された分離された応用を形成する。     All of these features can be overcome with different levels of difficulty by the inkjet system described below. Forty-five different inkjet technologies have been developed by successors to give a wide choice for high volume manufacturing. These techniques form isolated applications designated by the applicant, as shown in the tables described below.

ここに示されるインクジェットの設計(デザイン)は、電池で駆動される1回使用のデジタルカメラから、卓上のネットワークプリンタや業務用のプリントシステムまで、幅の広いデジタルプリントシステムに適している。     The inkjet design shown here is suitable for a wide range of digital printing systems, from battery-powered single-use digital cameras to desktop network printers and commercial printing systems.

標準の装置を使用して簡単に製造するために、前記プリントヘッドは、MEMS後処理法によって、モノリシックの0.5ミクロンのCMOSチップに設計される。カラー写真の応用のため、前記プリントヘッドは100mmの長さで、インクジェットのタイプに応じた幅を有する。最小のプリントヘッドはIJ38であり、幅は0.35mmで、35mmのチップ面積を有する。そのプリントヘッドは19,200個のノズルとデータ及び制御回路を有している。 In order to be easily manufactured using standard equipment, the printhead is designed into a monolithic 0.5 micron CMOS chip by a MEMS post-processing method. For color photography applications, the printhead is 100 mm long and has a width that depends on the type of ink jet. The smallest printhead is IJ38, the width is 0.35 mm and has a chip area of 35 mm 2 . The print head has 19,200 nozzles and data and control circuitry.

インクは、射出成形されたプラスチック製のインク通路を経由して、プリントヘッドの背面に供給される。そのモールディングは50ミクロの特徴(features)が必要とされる。その特徴は、標準的な射出成型工具の中にリソグラフィでマイクロマシン加工されたインサートを使用して形成されることができる。インクは、ウエハの正面に形成されたノズル・チャンバーへ、ウエハを貫通するように形成された孔を通って流れる。そのプリントヘッドはTABによりカメラ回路に接続されている。

相互参照付きのアプリケーション
The ink is supplied to the back surface of the print head via an injection-molded plastic ink passage. The molding requires 50 micro features. The features can be formed using lithographically micromachined inserts in standard injection molding tools. Ink flows through a hole formed through the wafer to a nozzle chamber formed in the front of the wafer. The print head is connected to the camera circuit by TAB.

Cross-referenced application

次表は、最近出願された米国特許出願のガイドである。それらの出願は、これと共に一斉に提出され、特別なケースに言及するときに、その後の表で使用される参考を用いて検討されている。これらの出願は、また、対応する参考番号を有するオーストラリア仮特許出願(前述の表にて示されたような)のように出願されている。

Figure 0004309954
Figure 0004309954
ドロップ・オン・デマンド方式のインクジェット The following table is a guide for recently filed US patent applications. These applications are filed together with this, and are discussed using the references used in the subsequent tables when referring to special cases. These applications are also filed as Australian provisional patent applications (as shown in the preceding table) with corresponding reference numbers.
Figure 0004309954
Figure 0004309954
Drop-on-demand inkjet

個々のインクジェットノズルの基本動作に関する11個の重要な特徴が特定されてきている。これらの特徴は大体は直角(orthogonal)であり、したがって、11次元のマトリクスとして解明されることができる。このマトリクスの11軸のほとんどは、本出願人により発展された記入事項を含む。     Eleven important features relating to the basic operation of individual inkjet nozzles have been identified. These features are roughly orthogonal and can therefore be solved as an 11-dimensional matrix. Most of the eleven axes of this matrix contain entries developed by the applicant.

次の表は、インクジェットタイプの11次元の表の軸を形成する。
アクチュエータ・メカニズム(18タイプ)
基本動作モード(7タイプ)
補助のアクチュエータ(8タイプ)
アクチュエータの増幅及び改良方法(17タイプ)
アクチュエータの動き(19タイプ)
ノズル補給方法(4タイプ)
吸入口への逆流を制限する方法(10タイプ)
ノズルの掃除方法(9タイプ)
ノズルプレート構造(9タイプ)
滴の噴出方向(5タイプ)
インクタイプ(7タイプ)
The following table forms the axis of an ink jet type 11-dimensional table.
Actuator mechanism (18 types)
Basic operation mode (7 types)
Auxiliary actuator (8 types)
Actuator amplification and improvement method (17 types)
Actuator movement (19 types)
Nozzle replenishment method (4 types)
Method to limit backflow to the inlet (10 types)
Nozzle cleaning method (9 types)
Nozzle plate structure (9 types)
Drop ejection direction (5 types)
Ink type (7 types)

これらの軸により表示された完全な11次元の表は、インクジェットノズルに関し、369億の可能な形態を含む。様々なインクジェット技術においてそれらの全てが実現可能ではないけれども、数百万は実行可能である。可能な形態の全てを説明することは、明らかに非現実的である。その代わり、いくつかのインクジェットタイプが詳細に吟味されてきた。それらが、上述の、指名されたIJ01からIJ45である。     The complete 11-dimensional table displayed by these axes contains 36.9 billion possible forms for inkjet nozzles. Millions are viable, although not all of them are feasible in the various inkjet technologies. It is clearly impractical to describe all possible forms. Instead, several ink jet types have been examined in detail. These are the nominated IJ01 to IJ45 described above.

他のインクジェットの形態は、11軸の1又はそれ以上に沿って代替となる形態に置き換えることにより、これらの45の例から直ちに導き出すことができる。IJ01からIJ45のほとんどは、何らかの現在利用できるインクジェット技術より上位である特徴を、インクジェットプリントヘッドに作り込むことができる。     Other ink jet forms can be readily derived from these 45 examples by replacing them with alternative forms along one or more of the 11 axes. Most of IJ01 through IJ45 can incorporate features that are superior to any currently available inkjet technology into inkjet printheads.

発明者に知られている先行技術例がある場合には、これらの1又はそれ以上が、下記の表の例の欄に示される。該IJ01からIJ45のシリーズはまた、例の欄にも示されている。幾つかのケースでは、プリンタが、1つ以上の特徴を共有する場合には、1つの表に1回以上示されるかも知れない。     Where there are prior art examples known to the inventor, one or more of these are shown in the example column of the table below. The series IJ01 to IJ45 is also shown in the example column. In some cases, if a printer shares more than one feature, it may appear more than once in a table.

好適な応用は以下のものを含む。すなわち、家庭用プリンタ、オフィス用ネットワークプリンタ、短期用デジタルプリンタ、業務用プリントシステム、布用プリンタ、ポケットプリンタ、インターネットwwwプリンタ、ビデオプリンタ、医療用画像、大判プリンタ、ノート型パソコン用プリンタ、ファックス機、工業用プリントシステム、写真コピー機、写真現像店等。     Suitable applications include: That is, home printers, office network printers, short-term digital printers, business printing systems, fabric printers, pocket printers, Internet www printers, video printers, medical images, large format printers, notebook computer printers, fax machines , Industrial printing systems, photocopiers, photo development stores, etc.

前述した11次元のマトリクスで関連付けられた情報が以下の表に示される。     Information associated with the 11-dimensional matrix described above is shown in the following table.

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
Figure 0004309954

Figure 0004309954
インクジェットプリンティング
Figure 0004309954
Inkjet printing

相当数の新型のインクジェットプリンタが、好適な実施形態として、インクジェット技術に取って代わるために発展してきている。インクジェットデバイスの様々な組み合わせが、本発明の一部として開示されているプリンタデバイスの中に含めることができる。相互参照表により特別に示される、これらのインクジェットに関連するオーストラリアの仮特許の明細書がある。すなわち、

Figure 0004309954
Figure 0004309954
インクジェットの生産 A considerable number of new ink jet printers have evolved to replace ink jet technology as the preferred embodiment. Various combinations of inkjet devices can be included in the printer device disclosed as part of the present invention. There is a specification of Australian provisional patents related to these ink jets, specifically indicated by a cross-reference table. That is,
Figure 0004309954
Figure 0004309954
Inkjet production

さらに、本出願は、多数のインクジェットプリンタの構築に、高度な半導体製造技術が使用されるかも知れない。好適な製造技術は、次の相互参照表に示されているオーストラリア仮特許の明細書中に開示されている。

Figure 0004309954
Figure 0004309954
Figure 0004309954
流体の供給 In addition, the present application may use advanced semiconductor manufacturing techniques in the construction of multiple inkjet printers. Suitable manufacturing techniques are disclosed in the Australian provisional patent specification shown in the following cross-reference table.
Figure 0004309954
Figure 0004309954
Figure 0004309954
Fluid supply

さらに、本実施例は、インクジェットヘッドへのインク配送システムを利用しても良い。一連のインクジェットノズルにインクを供給するための配送システムは、次の相互参照表に示されているオーストラリア仮特許の明細書中に開示されている。

Figure 0004309954
MEMS技術 Furthermore, this embodiment may use an ink delivery system to the inkjet head. A delivery system for supplying ink to a series of inkjet nozzles is disclosed in the Australian provisional patent specification shown in the following cross-reference table.
Figure 0004309954
MEMS technology

さらに、本願は、インクジェットプリンタの配列を行う際に高度な半導体マイクロエレクトロメカニカル技術(MEMS技術)を利用しても良い。好適なマイクロエレクトロメカニカル技術は、次の相互参照表に示されているオーストラリア仮特許の明細書中に開示されている。

Figure 0004309954
Figure 0004309954
IR技術 Furthermore, the present application may use advanced semiconductor microelectromechanical technology (MEMS technology) when arranging an inkjet printer. Suitable microelectromechanical techniques are disclosed in the Australian provisional patent specification shown in the following cross-reference table.
Figure 0004309954
Figure 0004309954
IR technology

さらに、本願は、次の相互参照表に示されているオーストラリア仮特許の明細書中に開示されているような使い捨てカメラシステムを利用するようにしても良い。

Figure 0004309954
ドットカード技術 In addition, the present application may utilize a disposable camera system as disclosed in the Australian provisional patent specification shown in the following cross-reference table.
Figure 0004309954
Dot card technology

さらに、本願は、次の相互参照表に示されているオーストラリア仮特許の明細書中に開示されているようなデータ配信システムを使用するようにしても良い。

Figure 0004309954
アートカム技術 Further, the present application may use a data distribution system as disclosed in the Australian provisional patent specification shown in the following cross-reference table.
Figure 0004309954
Art cam technology

さらに、本願は、次の相互参照表に示されているオーストラリア仮特許の明細書中に開示されているアートカム型装置のようなカメラとデータ処理技術を使用するようにしても良い。

Figure 0004309954
Figure 0004309954
Figure 0004309954
In addition, the present application may use a camera and data processing technology such as the art cam type device disclosed in the Australian provisional patent specification shown in the following cross-reference table.
Figure 0004309954
Figure 0004309954
Figure 0004309954

当業者にとって、特定の実施例に示された本発明に対して、広範に述べられた発明の範囲及び精神から離脱することなく多様な変形や変更を加えることが可能である。本実施例は、従って例外的なものであり、制限的なものではないものとあらゆる面で考慮すべきである。   It will be apparent to those skilled in the art that various modifications and variations can be made to the invention shown in the specific embodiments without departing from the scope and spirit of the invention as broadly described. This embodiment is therefore exceptional and should be considered in all respects as non-limiting.

好適な実施例によって構成されたアートカム装置の説明図である。It is explanatory drawing of the art cam apparatus comprised by the preferable Example. 主要なアートカム電子コンポーネントの概略ブロック図である。FIG. 2 is a schematic block diagram of the main artcam electronic components. アートカム中央プロセッサの概略ブロック図である。It is a schematic block diagram of an art cam central processor. VLIWベクトルプロセッサの詳細図である。It is a detailed view of a VLIW vector processor. 処理ユニットの詳細図である。It is detail drawing of a processing unit. ALU188の詳細図である。It is a detailed view of ALU188. 入力ブロックの詳細図である。It is a detailed view of an input block. 出力ブロックの詳細図である。It is a detailed view of an output block. レジスタブロックの詳細図である。It is detail drawing of a register block. クロスバー1の詳細図である。2 is a detailed view of a crossbar 1. FIG. クロスバー2の詳細図である。3 is a detailed view of a crossbar 2. FIG. 読み出しプロセスブロックの詳細図である。It is a detailed view of a read process block. 読み出しプロセスブロックの詳細図である。It is a detailed view of a read process block. バレルシフタブロックの詳細図である。It is detail drawing of a barrel shifter block. アダー/ロジックブロックの詳細図である。It is a detailed view of an adder / logic block. 乗算ブロックの詳細図である。It is a detailed view of a multiplication block. I/Oアドレス生成器の詳細図である。It is a detailed view of an I / O address generator. 画素蓄積フォーマットの説明図である。It is explanatory drawing of a pixel accumulation | storage format. 順次読み出しイタレータプロセスの説明図である。It is explanatory drawing of a sequential read iterator process. ボックス読み出しイタレータプロセスの説明図である。It is explanatory drawing of a box read iterator process. ボックス書き込みイタレータプロセスの説明図である。It is explanatory drawing of a box write iterator process. 垂直ストリップ読み出し/書き込みイタレータプロセスの説明図である。FIG. 10 is an illustration of a vertical strip read / write iterator process. 垂直ストリップ読み出し/書き込みイタレータプロセスの説明図である。FIG. 10 is an illustration of a vertical strip read / write iterator process. シーケンシャル生成プロセスの説明図である。It is explanatory drawing of a sequential production | generation process. シーケンシャル生成プロセスの説明図である。It is explanatory drawing of a sequential production | generation process. 垂直ストリップ生成プロセスの説明図である。It is explanatory drawing of a vertical strip production | generation process. 垂直ストリップ生成プロセスの説明図である。It is explanatory drawing of a vertical strip production | generation process. 画素データ構造の説明図である。It is explanatory drawing of a pixel data structure. 画素処理プロセスの説明図である。It is explanatory drawing of a pixel processing process. 表示コントローラの概略ブロック図である。It is a schematic block diagram of a display controller. CCD像編成の説明図である。It is explanatory drawing of CCD image organization. 論理的画像用の蓄積フォーマットの説明図である。It is explanatory drawing of the accumulation | storage format for logical images. 内部画像メモリー蓄積フォーマットの説明図である。It is explanatory drawing of an internal image memory storage format. 画像ピラミッド蓄積フォーマットの説明図である。It is explanatory drawing of an image pyramid accumulation | storage format. アートカードをサンプリングするプロセスの時系列の説明図である。It is explanatory drawing of the time series of the process which samples an art card. スーパーサンプリングプロセスの説明図である。It is explanatory drawing of a supersampling process. 回転したアートカードを読み取るプロセスの説明図である。It is explanatory drawing of the process which reads the rotated art card. アートカードを復号化するために必要なステップのフローチャートである。Fig. 4 is a flowchart of the steps necessary to decrypt an art card. 単一のアートカードの左隅の拡大図である。It is an enlarged view of the left corner of a single art card. 検出用の単一ターゲットである。A single target for detection. ターゲットを検出するため使用される方法の説明図である。FIG. 6 is an illustration of a method used to detect a target. 二つのターゲット間の距離を計算する方法の説明図である。It is explanatory drawing of the method of calculating the distance between two targets. 重心ドリフトのプロセスの説明図である。It is explanatory drawing of the process of a gravity center drift. 重心ルックアップテーブルの一形態を示す図である。It is a figure which shows one form of a gravity center look-up table. 重心更新プロセスの説明図である。It is explanatory drawing of a gravity center update process. 好適な実施例において利用されるデルタ処理用ルックアップテーブルの説明図である。It is explanatory drawing of the look-up table for delta processes utilized in a preferable Example. アートカードのスクランブルを解除するプロセスの説明図である。It is explanatory drawing of the process which cancels | scrambles an art card. ドットの系列の拡大図である。It is an enlarged view of a series of dots. ドットカードのデータ面の説明図である。It is explanatory drawing of the data surface of a dot card. 単一データブロックの概略説明図である。It is a schematic explanatory drawing of a single data block. 単一データブロックの説明図である。It is explanatory drawing of a single data block. 図50のデータブロックの部分拡大図である。It is the elements on larger scale of the data block of FIG. 図50のデータブロックの部分拡大図である。It is the elements on larger scale of the data block of FIG. 単一ターゲット構造の説明図である。It is explanatory drawing of a single target structure. データブロックのターゲット構造の説明図である。It is explanatory drawing of the target structure of a data block. データ領域のボーダークロック用領域に対するターゲットの位置関係の説明図である。It is explanatory drawing of the positional relationship of the target with respect to the area | region for border clocks of a data area. データブロックのオリエンテーションカラムの説明図である。It is explanatory drawing of the orientation column of a data block. データブロックのドットのアレイの説明図である。It is explanatory drawing of the array of the dot of a data block. リード・ソロモン符号化のデータの構造の概略説明図である。It is a schematic explanatory drawing of the structure of the data of Reed-Solomon encoding. 例示的なリード・ソロモン符号化プロセスの説明図である。FIG. 6 is an illustration of an exemplary Reed-Solomon encoding process. リード・ソロモン符号化プロセスの説明図である。It is explanatory drawing of a Reed-Solomon encoding process. データブロック内の符号化されたデータのレイアウトの説明図である。It is explanatory drawing of the layout of the encoded data in a data block. 代替的なアートカードをサンプリングする際のサンプリングプロセスの説明図である。It is explanatory drawing of the sampling process at the time of sampling an alternative art card | curd. 回転した代替的なアートカードをサンプリングする一例の拡大図である。FIG. 6 is an enlarged view of an example of sampling a rotated alternative art card. スキャニングプロセスの説明図である。It is explanatory drawing of a scanning process. スキャニングプロセスの起こり得るスキャニング分布の説明図である。It is explanatory drawing of the scanning distribution which can occur a scanning process. シンボル誤りとリード・ソロモンブロック誤りの確率の間の関係を示す図である。FIG. 6 is a diagram illustrating the relationship between the probability of symbol error and Reed-Solomon block error. 復号化プロセスのフローチャートである。3 is a flowchart of a decryption process. 復号化プロセスのプロセス稼働図である。It is a process operation | movement figure of a decoding process. 復号化におけるデータフローステップの説明図である。It is explanatory drawing of the data flow step in decoding. 読み出しプロセスの詳細図である。It is a detailed view of the read process. 代替的なアートカードの開始を検出するプロセスの詳細図である。FIG. 5 is a detailed view of a process for detecting the start of an alternative art card. ビットデータ抽出プロセスの詳細図である。It is a detailed view of a bit data extraction process. 復号化プロセスで利用されるセグメンテーションプロセスの説明図である。It is explanatory drawing of the segmentation process utilized by a decoding process. ターゲットを見つける復号化プロセスの詳細図である。FIG. 4 is a detailed view of a decoding process for finding a target. ターゲットを見つける際に利用されるデータ構造の説明図である。It is explanatory drawing of the data structure utilized when finding a target. Lancos3関数構造の説明図である。It is explanatory drawing of Lancos3 function structure. クロックマーク及びボーダー領域を示すデータブロックの部分拡大図である。It is the elements on larger scale of the data block which shows a clock mark and a border area | region. ビットイメージを復号化する際の処理ステップの説明図である。It is explanatory drawing of the processing step at the time of decoding a bit image. ビットイメージを復号化する際のデータフローステップの説明図である。It is explanatory drawing of the data flow step at the time of decoding a bit image. 好適な実施例のスクランブル解除プロセスの説明図である。FIG. 6 is an illustration of the descrambling process of the preferred embodiment. コンボルバの一実施形態の説明図である。It is explanatory drawing of one Embodiment of a convolver. コンボルブプロセスの説明図である。It is explanatory drawing of a convolution process. コンポジットプロセスの説明図である。It is explanatory drawing of a composite process. 通常のコンポジットプロセスの詳細図である。It is a detailed view of a normal composite process. ワープマップを使用するワーププロセスの説明図である。It is explanatory drawing of the warp process which uses a warp map. ワープバイリニア補間プロセスの説明図である。It is explanatory drawing of a warp bilinear interpolation process. スパン計算のプロセスの説明図である。It is explanatory drawing of the process of span calculation. 基本スパン計算プロセスの説明図である。It is explanatory drawing of a basic span calculation process. スパン計算プロセスの詳細な一実施形態の説明図である。It is explanatory drawing of one detailed embodiment of a span calculation process. 画像ピラミッドレベルを読み取るプロセスの説明図である。It is explanatory drawing of the process which reads an image pyramid level. バイリニア補間のためピラミッドテーブルを使用する方法の説明図である。It is explanatory drawing of the method of using a pyramid table for bilinear interpolation. ヒストグラム収集プロセスの説明図である。It is explanatory drawing of a histogram collection process. 色変換プロセスの説明図である。It is explanatory drawing of a color conversion process. 色変換プロセスの説明図である。It is explanatory drawing of a color conversion process. 色空間変換プロセスの詳細図である。FIG. 4 is a detailed view of a color space conversion process. 入力座標を計算するプロセスの説明図である。It is explanatory drawing of the process which calculates an input coordinate. フィードバック付きコンポジット処理するプロセスの説明図である。It is explanatory drawing of the process of performing a composite process with a feedback. 汎用スケーリングプロセスの説明図である。It is explanatory drawing of a general-purpose scaling process. Xスケーリングプロセスにおけるスケールの説明図である。It is explanatory drawing of the scale in X scaling process. Yスケーリングプロセスにおけるスケールの説明図である。It is explanatory drawing of the scale in a Y scaling process. モザイクプロセスの説明図である。It is explanatory drawing of a mosaic process. サブピクセル移動プロセスの説明図である。It is explanatory drawing of a subpixel movement process. コンポジットプロセスの説明図である。It is explanatory drawing of a composite process. フィードバック付きでコンポジットするプロセスの説明図である。It is explanatory drawing of the process of compositing with a feedback. 入力画像からの色でタイル貼りするプロセスの説明図である。It is explanatory drawing of the process of tiling with the color from an input image. フィードバック付きでタイル貼りするプロセスの説明図である。It is explanatory drawing of the process of tiling with a feedback. テクスチャ置換でタイル貼りするプロセスの説明図である。It is explanatory drawing of the process of tiled by texture replacement. 入力画像からの色でタイル貼りするプロセスの説明図である。It is explanatory drawing of the process of tiling with the color from an input image. 入力画像からの色でタイル貼りするプロセスの説明図である。It is explanatory drawing of the process of tiling with the color from an input image. フィードバック無しでテクスチャを与えるプロセスの説明図である。It is explanatory drawing of the process which provides a texture without feedback. フィードバック付きでテクスチャを与えるプロセスの説明図である。It is explanatory drawing of the process which provides a texture with a feedback. CCD画素の回転のプロセスの説明図である。It is explanatory drawing of the process of rotation of a CCD pixel. 緑色サブピクセルの補間のプロセスの説明図である。It is explanatory drawing of the process of interpolation of a green subpixel. 青色サブピクセルの補間のプロセスの説明図である。It is explanatory drawing of the process of the blue subpixel interpolation. 赤色サブピクセルの補間のプロセスの説明図である。It is explanatory drawing of the process of interpolation of a red subpixel. 奇数画素行に対し0度回転のCCD画素補間のプロセスの説明図である。It is explanatory drawing of the process of CCD pixel interpolation of 0 degree rotation with respect to an odd pixel row. 偶数画素行に対し0度回転のCCD画素補間のプロセスの説明図である。It is explanatory drawing of the process of CCD pixel interpolation of 0 degree rotation with respect to an even-numbered pixel row. Lab色空間への色変換のプロセスの説明図である。It is explanatory drawing of the process of the color conversion to Lab color space. 1/√Xの計算のプロセスの説明図である。It is explanatory drawing of the process of calculation of 1 / √X. 1/√Xの計算の実施例の詳細説明図である。It is detailed explanatory drawing of the Example of calculation of 1 / √X. バンプマップによる法線計算のプロセスの説明図である。It is explanatory drawing of the process of normal calculation by a bump map. バンプマップによる照度計算のプロセスの説明図である。It is explanatory drawing of the process of the illumination intensity calculation by a bump map. バンプマップによる照度計算のプロセスの詳細説明図である。It is detailed explanatory drawing of the process of the illumination intensity calculation by a bump map. 指向性ライトを使用するLの計算のプロセスの説明図である。It is explanatory drawing of the process of the calculation of L which uses a directional light. オムニライト及びスポットライトを使用するLの計算のプロセスの説明図である。It is explanatory drawing of the process of calculation of L using an omni light and a spotlight. オムニライト及びスポットライトを使用するLの計算の一実施形態の説明図である。FIG. 6 is an illustration of an embodiment of calculating L using omni lights and spotlights. N.L内積を計算するプロセスの説明図である。N. It is explanatory drawing of the process which calculates L inner product. N.L内積を計算するプロセスの詳細説明図である。N. It is detailed explanatory drawing of the process which calculates L inner product. R.V内積を計算するプロセスの説明図である。R. It is explanatory drawing of the process which calculates V inner product. R.V内積を計算するプロセスの詳細説明図である。R. It is detailed explanatory drawing of the process which calculates V inner product. 減衰計算の入力及び出力の説明図である。It is explanatory drawing of the input and output of attenuation | damping calculation. 減衰計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of attenuation calculation. 円錐ファクタのグラフの説明図である。It is explanatory drawing of the graph of a cone factor. 半影計算のプロセスの説明図である。It is explanatory drawing of the process of penumbra calculation. 半影計算に利用される角の説明図である。It is explanatory drawing of the corner utilized for penumbra calculation. 半影計算への入力及び出力の説明図である。It is explanatory drawing of the input and output to penumbra calculation. 半影計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of penumbra calculation. 周辺光計算への入力及び出力の説明図である。It is explanatory drawing of the input and output to ambient light calculation. 周辺光計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of ambient light calculation. 散光計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of scattered light calculation. 散光計算への入力及び出力の説明図である。It is explanatory drawing of the input and output to scattered light calculation. 散光計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of scattered light calculation. 反射計算への入力及び出力の説明図である。It is explanatory drawing of the input and output to reflection calculation. 反射計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of reflection calculation. 反射計算への入力及び出力の説明図である。It is explanatory drawing of the input and output to reflection calculation. 反射計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of reflection calculation. 周辺光だけの独計算の実際の実施形態の説明図である。It is explanatory drawing of actual embodiment of the German calculation only of ambient light. 光計算のプロセス概要の説明図である。It is explanatory drawing of the process outline | summary of optical calculation. 単一無限光源用の照明計算の一例の説明図である。It is explanatory drawing of an example of the illumination calculation for single infinite light sources. バンプマップを用いないオムニ光源用の照明計算の一例の説明図である。It is explanatory drawing of an example of the illumination calculation for omni light sources which does not use a bump map. バンプマップを用いるオムニ光源用の照明計算の一例の説明図である。It is explanatory drawing of an example of the illumination calculation for omni light sources using a bump map. バンプマップを用いないスポットライト光源用の照明計算の一例の説明図である。It is explanatory drawing of an example of the illumination calculation for spotlight light sources which do not use a bump map. 関連したバンプマップを用いて画像に単一スポットライトを当てるプロセスの説明図である。FIG. 6 is an explanatory diagram of a process of applying a single spotlight to an image using an associated bump map. 単一プリントヘッドの論理的レイアウトの説明図である。It is an explanatory diagram of a logical layout of a single print head. プリントヘッドインタフェースの構造の説明図である。It is explanatory drawing of the structure of a print head interface. Lab画像の回転のプロセスの説明図である。It is explanatory drawing of the process of rotation of a Lab image. 印刷画像の画素のフォーマットの説明図である。It is explanatory drawing of the format of the pixel of a printing image. ディザリングプロセスの説明図である。It is explanatory drawing of a dithering process. 8ビットドット出力を生成するプロセスの説明図である。It is explanatory drawing of the process which produces | generates 8-bit dot output. カードリーダーの斜視図である。It is a perspective view of a card reader. カードリーダーの展開斜視図である。It is a development perspective view of a card reader. アートカードリーダーのクローズアップ図である。It is a close-up figure of an art card reader. プリントロール及びプリントヘッドの斜視図である。It is a perspective view of a print roll and a print head. プリントロールの第1の展開斜視図である。It is a 1st expansion | deployment perspective view of a print roll. プリントロールの第2の展開斜視図である。It is a 2nd expansion perspective view of a print roll. プリントロール認証チップの説明図である。It is explanatory drawing of a print roll authentication chip. プリントロール認証チップの拡大図である。It is an enlarged view of a print roll authentication chip. 一段階認証チップデータプロトコルの説明図である。It is explanatory drawing of a one-step authentication chip | tip data protocol. 二段階認証チップデータプロトコルの説明図である。It is explanatory drawing of a two-step authentication chip | tip data protocol. 第1のプレゼンスオンリープロトコルの説明図である。It is explanatory drawing of a 1st presence only protocol. 第2のプレゼンスオンリープロトコルの説明図である。It is explanatory drawing of a 2nd presence only protocol. 第3のデータプロトコルの説明図である。It is explanatory drawing of a 3rd data protocol. 第4のデータプロトコルの説明図である。It is explanatory drawing of a 4th data protocol. 最長期間LFSRの概略ブロック図である。It is a schematic block diagram of the longest period LFSR. クロック制限フィルターの概略ブロック図である。It is a schematic block diagram of a clock limiting filter. タンパー検出ラインの概略ブロック図である。It is a schematic block diagram of a tamper detection line. 特大のnMOSトランジスタの概略ブロック図である。It is a schematic block diagram of an oversized nMOS transistor. タンパー検出ラインからの多数のXORの取り出しを説明する図である。It is a figure explaining taking-out of many XOR from a tamper detection line. タンパーラインがノイズ発生回路を覆う状態の説明図である。It is explanatory drawing of the state which a tamper line covers a noise generation circuit. 通常のFETの実施形態の説明図である。It is explanatory drawing of embodiment of normal FET. 好適な実施例の修正されたFETの実施形態の説明図である。FIG. 4 is an illustration of a modified FET embodiment of the preferred example. 認証チップの略ブロックである。It is an abbreviated block of an authentication chip. メモリマップの一例の説明図である。It is explanatory drawing of an example of a memory map. 定数メモリマップの一例の説明図である。It is explanatory drawing of an example of a constant memory map. RAMメモリマップの一例の説明図である。It is explanatory drawing of an example of RAM memory map. フラッシュメモリ変数メモリマップの一例の説明図である。It is explanatory drawing of an example of a flash memory variable memory map. フラッシュメモリプログラムメモリマップの一例の説明図である。It is explanatory drawing of an example of a flash memory program memory map. 状態機械のコンポーネント間のデータフロー及び関係を示す図である。FIG. 4 is a diagram illustrating data flow and relationships between components of a state machine. I/Oユニットのコンポーネント間のデータフロー及び関係を示す図である。It is a figure which shows the data flow and relationship between the components of an I / O unit. 算術論理ユニット(ALU)の概略ブロック図である。It is a schematic block diagram of an arithmetic logic unit (ALU). RPLユニットの概略ブロック図である。It is a schematic block diagram of an RPL unit. ALUのRORブロックの概略ブロック図である。It is a schematic block diagram of the ROR block of ALU. プログラムカウンタユニットのブロック図である。It is a block diagram of a program counter unit. メモリーユニットの概略ブロック図である。It is a schematic block diagram of a memory unit. アドレス生成ユニットの概略ブロック図である。It is a schematic block diagram of an address generation unit. JSIGENユニットの概略ブロック図である。It is a schematic block diagram of a JSIGEN unit. JSRGENユニットの概略ブロック図である。It is a schematic block diagram of a JSRGEN unit. DBRGENユニットの概略ブロック図である。It is a schematic block diagram of a DBRGEN unit. LDKGENユニットの概略ブロック図である。It is a schematic block diagram of a LDKGEN unit. RPLGENユニットの概略ブロック図である。It is a schematic block diagram of a RPLGEN unit. VARGENユニットの概略ブロック図である。It is a schematic block diagram of a VARGEN unit. CLRGENユニットの概略ブロック図である。It is a schematic block diagram of a CLRGEN unit. BITGENユニットの概略ブロック図である。It is a schematic block diagram of a BITGEN unit. プリントロール認証チップに記憶された情報を示す図である。It is a figure which shows the information memorize | stored in the print roll authentication chip. アートカム認証チップ内に記憶されたデータの説明図である。It is explanatory drawing of the data memorize | stored in the art cam authentication chip | tip. プリントヘッドパルス特徴付けプロセスの説明図である。FIG. 6 is an illustration of a printhead pulse characterization process. プリントヘッドインク供給機構の拡大断面斜視図である。FIG. 4 is an enlarged cross-sectional perspective view of a print head ink supply mechanism. インクヘッド供給ユニットの底面斜視図である。It is a bottom perspective view of the ink head supply unit. インクヘッド供給ユニットの底面側の断面図である。It is sectional drawing by the side of the bottom face of an ink head supply unit. インクヘッド供給ユニットの上面斜視図である。It is a top perspective view of an ink head supply unit. インクヘッド供給ユニットの上面側の断面図である。It is sectional drawing of the upper surface side of an ink head supply unit. プリントヘッドの一部分の斜視図である。2 is a perspective view of a portion of a print head. FIG. プリントヘッドユニットの拡大斜視図である。FIG. 3 is an enlarged perspective view of a print head unit. アートカムカメラの内部の上面側の斜視図であり、平らにされた部品が示されている。FIG. 3 is a perspective view of the top side of the interior of the art cam camera, showing the flattened parts. アートカムカメラの内部の底面側の斜視図であり、平らにされた部品が示されている。It is a perspective view of the bottom side inside the art cam camera, showing the flattened parts. アートカムカメラの内部の第1の上面側の斜視図であり、アートカムに収容された部品が示されている。FIG. 2 is a perspective view of a first upper surface side inside the art cam camera, and shows components housed in the art cam. アートカムカメラの内部の第2の上面側の斜視図であり、アートカムに収容された部品が示されている。FIG. 6 is a perspective view of a second upper surface side inside the art cam camera, and shows components housed in the art cam. アートカムカメラの内部の第2の上面側の斜視図であり、アートカムに収容された部品が示されている。FIG. 6 is a perspective view of a second upper surface side inside the art cam camera, and shows components housed in the art cam. 葉書プリントロールの裏書き部分の説明図である。It is explanatory drawing of the endorsement part of a postcard print roll. 画像印刷後の葉書プリントロールの対応した表画像の説明図である。It is explanatory drawing of the front image corresponding to the postcard print roll after image printing. 顧客が購入できる状態のプリントロールの形態の説明図である。It is explanatory drawing of the form of the print roll of the state which a customer can purchase. アートカムアプリケーション全体のソフトウェア/ハードウェアモジュールのレイアウトの説明図である。It is explanatory drawing of the layout of the software / hardware module of the whole art cam application. カメラマネージャのソフトウェア/ハードウェアモジュールのレイアウトの説明図である。It is explanatory drawing of the layout of the software / hardware module of a camera manager. 画像処理マネージャのソフトウェア/ハードウェアモジュールのレイアウトの説明図である。It is explanatory drawing of the layout of the software / hardware module of an image processing manager. プリンタマネージャのソフトウェア/ハードウェアモジュールのレイアウトの説明図である。FIG. 6 is an explanatory diagram of a layout of a software / hardware module of a printer manager. 画像処理マネージャのソフトウェア/ハードウェアモジュールのレイアウトの説明図である。It is explanatory drawing of the layout of the software / hardware module of an image processing manager. ファイルマネージャのソフトウェア/ハードウェアモジュールのレイアウトの説明図である。It is explanatory drawing of the layout of the software / hardware module of a file manager. 代替的な形態のプリントロールの部分断面斜視図である。FIG. 6 is a partial cross-sectional perspective view of an alternative form of print roll. 図227のプリントロールの左側の拡大斜視図である。227 is an enlarged perspective view of the left side of the print roll of FIG. 単一プリントロールの右側の拡大斜視図である。It is an enlarged perspective view of the right side of a single print roll. プリントロールのコア部分の部分断面拡大斜視図である。It is a partial section expansion perspective view of the core part of a print roll. プリントロールのコア部分の第2の拡大斜視図である。It is a 2nd expansion perspective view of the core part of a print roll. ‘Bizcard’の正面図である。It is a front view of 'Bizcard'. さらなる改良に従って構成されたカメラシステムを概略的に示す。1 schematically shows a camera system configured according to a further improvement. 出力メディアの表面と裏面に印刷をするためのプリンター装置を概略的に示す。1 schematically shows a printer device for printing on the front and back surfaces of an output medium. 写真の裏面における出力データの形式を示す。The format of the output data on the back of the photograph is shown. 出力メディアの拡大された部分を示す。Indicates an enlarged portion of the output media. 写真の裏面からデータを読み込むために使用される読み取り装置を示す。Fig. 2 shows a reader used to read data from the back of a photograph. さらなる改良の装置の利用を示す。The use of a further improved device is shown. 画像の向きの具体的な処理の概略的な例を示す。A schematic example of specific processing of image orientation is shown. さらなる改良に従って構成されたカメラを使用した場合の画像の特有の効果を作る方法を示す。Fig. 4 shows how to create a unique effect of an image when using a camera configured according to further improvements. さらなる改良に従ったプリントロールを示す。Fig. 4 shows a print roll according to a further improvement. さらに改良された実施例の方法を示す。A further improved example method is shown. さらなる改良の操作方法を示す。The operation method of the further improvement is shown. さらなる改良に従った画像処理の一形態を示す。Fig. 4 shows a form of image processing according to a further improvement. さらなる改良の操作方法を示す。The operation method of the further improvement is shown. 画像のキャプチャー及び出力のプロセスを示す。Fig. 4 shows the process of image capture and output. 赤目除去のプロセスを示す。The red-eye removal process is shown. 標準的なアートカム装置に従って構成された写真印刷編成を示す。Figure 2 shows a photo print organization configured according to a standard art cam device. さらなる改良に従って構成されたデュアルプリントヘッド編成を示す。Fig. 4 shows a dual printhead knitting constructed according to a further improvement. さらなる改良のカール除去装置を示す。Figure 2 shows a further improved decurler. 立体写真画像を見るプロセスを示す。Fig. 3 shows a process of viewing a stereoscopic image. 立体写真効果を作成するために設計された、さらなる改善のレンズシステムを示す。Fig. 4 shows a further improved lens system designed to create a stereographic effect. 立体写真画像の創造を示す部分斜視図である。It is a fragmentary perspective view which shows creation of a three-dimensional photographic image. さらなる改良に従って立体写真画像を作るための装置を示す。Fig. 2 shows an apparatus for producing a stereographic image according to a further improvement. 図254の位置決めユニットをさらに詳細に示す。FIG. 254 shows the positioning unit of FIG. 254 in more detail. 立体写真画像の作成に好適なカメラ装置を示す。1 shows a camera device suitable for creating a stereoscopic photo image. 立体写真効果を改良すべく、不透明な裏当てを使用するプロセスを示す。Fig. 4 illustrates a process using an opaque backing to improve the stereoscopic effect. プリントメディアに画像を生成する方法を概略的に示す。1 schematically illustrates a method for generating an image on a print medium. 本発明に従って構成されたプリントメディアの構造を示す。1 illustrates the structure of a print media constructed in accordance with the present invention. さらなる改良に従って構成されたプリントメディアの利用を示す。Fig. 4 illustrates the use of a print media configured according to further improvements. さらなる改良に従ったプリントメディアの構造の第1形態を示す。1 shows a first form of a print media structure according to a further improvement; 本発明に従ったプリントメディアの構造のさらなる形態を示す。Fig. 4 shows a further form of the structure of the print media according to the present invention. 本発明に従ったプリントメディアの構造のさらなる形態の概略的な断面図を示す。Fig. 4 shows a schematic cross-sectional view of a further form of structure of the print media according to the present invention. 本発明に従ったプリントメディアの構造のさらなる形態の概略的な断面図を示す。Fig. 4 shows a schematic cross-sectional view of a further form of structure of the print media according to the present invention. 図263及び7に従ったプリントメディア構成の製造の一形態を示す。FIG. 26 shows one form of manufacturing a print media configuration according to FIGS. 図265の編成を利用するために繊維材料を押し出すことによる製造の別の形態を示す。264 shows another form of manufacturing by extruding fiber material to utilize the knitting of FIG. さらなる改良の主要ステップを示す。The main steps for further improvement are shown. さらなる改良にて使用されるSobelフィルターの効果を示す。The effect of the Sobel filter used in further refinement is shown. さらなる改良にて使用される曲線のオフセット方法を示す。Fig. 4 shows a curve offset method used in further refinement. さらなる改良にて使用される曲線のオフセット方法を示す。Fig. 4 shows a curve offset method used in further refinement. 認識された顔を含む標準的な画像を示す。A standard image including a recognized face is shown. 興味の領域を決定するための第1のフローチャートを示す。1 shows a first flow chart for determining a region of interest. 興味の領域を決定するための第2のフローチャートを示す。2 shows a second flowchart for determining a region of interest. 画像をタイリングする最初の工程を示す。The first step of tiling the image is shown. 画像のタイリングのための別のタイルパターンを示す。Fig. 5 shows another tile pattern for image tiling. タイルの不透明なマスクを示す。Shows the opaque mask of the tile. 図276のタイルのための、対応する表面テクスチャ高さを示す。276 shows the corresponding surface texture height for the tile of FIG. 図276のタイルのための、対応する表面テクスチャ高さを示す。276 shows the corresponding surface texture height for the tile of FIG. 画像を修正するためにglobalopacigtyを使用する工程を示す。Fig. 4 illustrates the process of using globalopacigty to modify an image. 実際のペイントを混合させる効果を真似るための、ストローキング効果を修正する方法を示す。Shows how to modify the stroking effect to mimic the effect of mixing actual paint. ブラッシュストロークのテーブルを作成する工程を示す。A process of creating a brush stroke table will be described. ストロークカラーパレットを作成する工程を示す。The process of creating a stroke color palette is shown. 結果として起こるペインティング工程を示す。The resulting painting process is shown. ブラッシュストロークを合成するさらなる実施例におけるステップのフローチャートを示す。Fig. 5 shows a flow chart of the steps in a further embodiment for composing a brush stroke. ベジエ曲線の区分的線分への変換方法を示す。A method for converting a Bezier curve to a piecewise line segment is shown. ブラッシュストロークプロセスを示す。The brush stroke process is shown. さらなる実施例で使用される、好適なブラッシュスタンプを示す。Figure 3 shows a suitable brush stamp for use in further examples. さらなる改良の第1の編成を示す。1 shows a first organization of further improvements. さらなる改良の操作のフローチャートを示す。The flowchart of the operation | movement of the further improvement is shown. 高解像度で印刷された画像の構成を示す。The structure of the image printed by the high resolution is shown. コピーを作成するための、図290の画像を処理するための装置を示す。Fig. 2 shows an apparatus for processing the image of Fig. 290 for making a copy. centroidの処理ステップを示す。The processing steps of centroid are shown. 一連の検知したパターンを示す。A series of detected patterns is shown. さらなる改良の実施の図を示す。A diagram of the implementation of further improvements is shown. さらなる改良を示す。Further improvements are shown. さらなる実施例のカード読み取り装置を示す。Fig. 4 shows a card reader of a further embodiment. ブラシ・バンプマップを示す。Shows the brush / bump map. ブラシ・バンプマップを示す。Shows the brush / bump map. 背景キャンバスのバンプマップを示す。Shows the background canvas bump map. 背景キャンバスのバンプマップを示す。Shows the background canvas bump map. バンプマップを結合するプロセスを示す。Fig. 4 illustrates the process of combining bump maps. バンプマップを結合するプロセスを示す。Fig. 4 illustrates the process of combining bump maps. マップの背景を示す。Indicates the map background. さらなる改良に従ってバンプマップを結合するプロセスを示す。Fig. 4 illustrates a process for combining bump maps according to further improvements. さらなる改良に従ってバンプマップを結合するプロセスを示す。Fig. 4 illustrates a process for combining bump maps according to further improvements. 芸術的な画像の生成のさらなる改良の方法におけるステップを示す。Fig. 4 shows steps in a further refinement method of artistic image generation. 一つのガモットを第2のガモットにマッピングするプロセスを示す。Fig. 4 illustrates the process of mapping one gamut to a second gamut. さらなる改良の一実施形態を示す。1 shows an embodiment of a further improvement. ガモットリマッピングの好ましい形態を示す。A preferred form of gamut remapping is shown. さらなる改善にて使用されるガモット・モーフィングを示す。Shows gamut morphing used in further improvements. アートカム装置の基本操作を示す。The basic operation of the art cam device is shown. さらなる改良で使用される一連のアートカードを示す。Shows a series of art cards used in further refinement. さらなる改良で使用されるアルゴリズムのフローチャート図である。FIG. 6 is a flow chart diagram of an algorithm used in further refinement. 本発明に従って作成される、印刷された布の出力の概略図である。FIG. 2 is a schematic diagram of printed fabric output made in accordance with the present invention. さらなる改良の接続方式を示す。A further improved connection method is shown. 部分的に断面が描かれた、さらなる改良の斜視図を示す。Figure 3 shows a perspective view of a further improvement, partly in section. 書き込みデータエリア配列を有するカードを示す。Fig. 4 shows a card having a write data area array. 限定された数の書き込みデータ領域のみを有するカードを示す。A card having only a limited number of write data areas is shown. データ領域の構成を示す。The structure of the data area is shown. ターゲット構成を示す。The target configuration is shown. さらなる改良の装置を示す。A further improved device is shown. 図321を近づいて見た状態を示す。The state which looked at FIG. 321 closely is shown. 読み取り装置の中にカードを挿入するプロセスを示す。Fig. 4 shows the process of inserting a card into the reader. カードを取り出すプロセスを示す。The process of removing a card is shown. カードにデータ領域を書くプロセスを示す。Demonstrate the process of writing the data area on the card. カードリーダーの構造の概略図である。It is the schematic of the structure of a card reader. さらなる改善の概略的な配列を示す。A schematic arrangement of further improvements is shown. さらなる改善のインターフェースの例を示す。An example of an interface for further improvement is shown. さらなる改善のソフトウェアモジュールの構成の一形態を示す。Fig. 3 shows one form of the configuration of a software module for further improvement. アートカムシステムの操作の概略図である。It is the schematic of operation of an art cam system. アートカムシステムの変形された操作の第1の例が示されている。A first example of a modified operation of the art cam system is shown. アートカムの操作を変更するリピティションカードが示されている。A repetition card that changes the operation of the art cam is shown. アートカムの操作を変更するためのアートカードテストカードが示されている。An art card test card for changing the operation of the art cam is shown. アートカム装置の出力テスト結果を示す。The output test result of the art cam device is shown. さらなる改良に従って構成されたカメラシステムを概略的に示す。1 schematically shows a camera system configured according to a further improvement. さらなる改良のプリンター装置及び録音装置を概略的に示す。Fig. 2 schematically shows a further improved printer device and recording device. 写真の裏面の磁気帯の構成を示す。The structure of the magnetic strip on the back of the photo is shown. 写真の裏面に録音されたデータを読むために使用される読み取り装置を示す。Fig. 2 shows a reading device used for reading data recorded on the back side of a photograph. さらなる改良の装置の使用を示す。The use of a further improved device is shown. アートカム装置の機能部分の概略図を示す。The schematic of the functional part of an art cam apparatus is shown. さらなる改良を使用するステップを示す。The steps of using further improvements are shown. さらなる改良に従ったアートカム装置の操作を示す。Fig. 4 shows the operation of the art cam device according to a further improvement. 出力された“写真”の裏面に印刷された他の実施例を示す。Another embodiment printed on the back side of the outputted “photo” is shown. さらなる実施例に従って構成されたプリンター装置の内部を示す。Fig. 3 shows the interior of a printer device configured according to a further embodiment. さらなる実施例に従って構成されたネットワーク配布システムを示す。Fig. 3 shows a network distribution system configured according to a further embodiment. 図345のプリンターコンピュータの操作を概略的に示す。The operation of the printer computer of FIG. 345 is schematically shown.

Claims (4)

画像を検知するように適合されたエリアイメージセンサと、
該検知された画像を保存するように適合されたメモリー記憶装置と、
重力に関してカメラの向きを検知するように適合された向きセンサと、
変換された画像を形成するために前記検知された画像に向き依存性の変換を適用することにより、前記検知されたカメラの向きを利用して前記検知された画像を加工するように適合されたプロセッサと、
前記変換された画像をプリントメディアに印刷するための内蔵式プリンターと、
を備え、
前記向き依存性の変換は、
(i) 前記検知されたカメラの向きを使用して、検知された画像中に少なくとも1つの顔を検出し、前記変換された画像を形成するために、該検出された少なくとも1つの顔に関連して前記検知された画像を変更すること、
(ii) 前記検知されたカメラの向きと調和する向きで、前記変換された画像を形成するために前記検知された画像中に文字情報を出すこと
のグループから選択される、
カメラデバイス。
An area image sensor adapted to detect images;
A memory storage device adapted to store the detected image;
An orientation sensor adapted to detect the orientation of the camera with respect to gravity;
Adapted to process the detected image using the detected camera orientation by applying an orientation dependent conversion to the detected image to form a converted image A processor;
A built-in printer for printing the converted image on a print medium;
With
The orientation-dependent transformation is
(I) using the sensed camera orientation to detect at least one face in the sensed image and relate to the detected at least one face to form the transformed image; And changing the detected image,
(Ii) selected from the group of providing text information in the detected image to form the converted image in an orientation that harmonizes with the orientation of the detected camera;
Camera device.
前記向き依存性の変換は、前記変換された画像を形成するために、前記検知された画像の中に特徴を変形させることを含む、
請求項1に記載のカメラデバイス。
The orientation dependent transformation includes transforming features in the sensed image to form the transformed image.
The camera device according to claim 1.
画像を検知するように適合されたエリアイメージセンサと、
該検知された画像を保存するように適合されたメモリー記憶装置と、
重力に関してカメラの向きを検知するように適合された向きセンサと、
変換された画像を形成するために前記検知された画像を加工するように適合されたプロセッサと、
前記変換された画像を印刷するように適合された内蔵式プリンターと、
を備え、
(a)前記向きセンサーによって、重力に関してカメラの向きを検知するステップ
(b)前記プロセッサによって、前記変換された画像を形成するため、前記検知された画像へ向き依存性の変換を適用することにより前記検知されたカメラの向き利用して前記検知された画像を加工するステップ
(c)該変換された画像を前記内蔵式のプリンターによって印刷するステップ
を含み、前記向き依存性の変換は、
(i) 前記検知されたカメラの向きを使用して、検知された画像中に少なくとも1つの顔を検出し、前記変換された画像を形成するために、該検出された少なくとも1つの顔に関連して前記検知された画像を変更すること、
(ii) 前記検知されたカメラの向きと調和する向きで、前記変換された画像を形成するために前記検知された画像中に文字情報を出すこと
のグループから選択される、
デジタルカメラデバイスによってキャプチャされた画像を加工する方法。
An area image sensor adapted to detect images;
A memory storage device adapted to store the detected image;
An orientation sensor adapted to detect the orientation of the camera with respect to gravity;
A processor adapted to process the detected image to form a transformed image;
A built-in printer adapted to print the converted image;
With
(A) detecting the orientation of the camera with respect to gravity by the orientation sensor; (b) applying a direction-dependent transformation to the detected image to form the transformed image by the processor. Using the detected camera orientation to process the detected image (c) printing the converted image with the built-in printer, the orientation-dependent conversion comprising:
(I) using the sensed camera orientation to detect at least one face in the sensed image and relate to the detected at least one face to form the transformed image; And changing the detected image,
(Ii) selected from the group of providing text information in the detected image to form the converted image in an orientation that harmonizes with the orientation of the detected camera;
A method of processing images captured by a digital camera device.
さらに、前記向き依存性の変換は、
(iii)前記変換された画像を形成するために前記検知された画像中に特徴を歪曲させること、
(iv)前記変換された画像を形成するために、画像中に登場する動物や人間の顔の特徴に関連する情報を配置すること
のいずれか、又は両方を含む、請求項3に記載の方法。
Further, the orientation dependency conversion is
(Iii) distorting features in the detected image to form the converted image;
4. A method according to claim 3, comprising (iv) either or both of arranging information relating to features of animals or human faces appearing in the image to form the transformed image. .
JP2008209323A 1997-07-15 2008-07-16 Camera device and method with orientation detection Expired - Fee Related JP4309954B2 (en)

Applications Claiming Priority (71)

Application Number Priority Date Filing Date Title
AUPO8029A AUPO802997A0 (en) 1997-07-15 1997-07-15 Sensor creation method and apparatus (ART36)
AUPO8021A AUPO802197A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART40)
AUPO8022A AUPO802297A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART33)
AUPO8030A AUPO803097A0 (en) 1997-07-15 1997-07-15 Media device (ART13)
AUPO7993A AUPO799397A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART03)
AUPO7998A AUPO799897A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART11)
AUPO7934A AUPO793497A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART45)
AUPO8020A AUPO802097A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART38)
AUPO7938A AUPO793897A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART25)
AUPO8024A AUPO802497A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART27)
AUPO8005A AUPO800597A0 (en) 1997-07-15 1997-07-15 Supply method and apparatus (F2)
AUPO7985A AUPO798597A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART37)
AUPO7978A AUPO797897A0 (en) 1997-07-15 1997-07-15 Media device (ART18)
AUPO7980A AUPO798097A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART22)
AUPO8025A AUPO802597A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART08)
AUPO8028A AUPO802897A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART56)
AUPO7989A AUPO798997A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART20)
AUPO8032A AUPO803297A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART09)
AUPO8026A AUPO802697A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART53)
AUPO7986A AUPO798697A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART51)
AUPO8017A AUPO801797A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART06)
AUPO8003A AUPO800397A0 (en) 1997-07-15 1997-07-15 Supply method and apparatus (F1)
AUPO8018A AUPO801897A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART24)
AUPO7987A AUPO798797A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART32)
AUPO7983A AUPO798397A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART52)
AUPO8000A AUPO800097A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART43)
AUPO7991A AUPO799197A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART01)
AUPO7990A AUPO799097A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART46)
AUPO8027A AUPO802797A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART54)
AUPO7979A AUPO797997A0 (en) 1997-07-15 1997-07-15 Media device (ART16)
AUPO7982A AUPO798297A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART19)
AUPO7977A AUPO797797A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART44)
AUPO7988A AUPO798897A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART02)
AUPO8023A AUPO802397A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART39)
AUPO8012A AUPO801297A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART05)
AUPO7939A AUPO793997A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART29)
AUPO7997A AUPO799797A0 (en) 1997-07-15 1997-07-15 Media device (ART15)
AUPO8015A AUPO801597A0 (en) 1997-07-15 1997-07-15 Media device (ART17)
AUPO7999A AUPO799997A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART10)
AUPO8016A AUPO801697A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART26)
AUPO8031A AUPO803197A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART12)
AUPO8019A AUPO801997A0 (en) 1997-07-15 1997-07-15 Media processing method and apparatus (ART21)
AUPO7981A AUPO798197A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART50)
AUPO7940A AUPO794097A0 (en) 1997-07-15 1997-07-15 Data processing method and apparatus (ART28)
AUPO8014A AUPO801497A0 (en) 1997-07-15 1997-07-15 Media device (ART07)
AUPO7942A AUPO794297A0 (en) 1997-07-15 1997-07-15 Image processing method and apparatus (ART23)
AUPO8499A AUPO849997A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (art47)
AUPO8504A AUPO850497A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (art42)
AUPO8505A AUPO850597A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (art01a)
AUPO8498A AUPO849897A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (ART14)
AUPO8501A AUPO850197A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (art30)
AUPO8502A AUPO850297A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (art48)
AUPO8500A AUPO850097A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (art31)
AUPO8497A AUPO849797A0 (en) 1997-08-11 1997-08-11 Image processing method and apparatus (art34)
AUPO9396A AUPO939697A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART58)
AUPO9402A AUPO940297A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART64)
AUPO9404A AUPO940497A0 (en) 1997-09-23 1997-09-23 A device and method (F3)
AUPO9403A AUPO940397A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART65)
AUPO9400A AUPO940097A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART62)
AUPO9398A AUPO939897A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART60)
AUPO9399A AUPO939997A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART61)
AUPO9394A AUPO939497A0 (en) 1997-09-23 1997-09-23 Image processing method and apparatus (ART57)
AUPO9401A AUPO940197A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART63)
AUPO9405A AUPO940597A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART66)
AUPO9395A AUPO939597A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART4)
AUPO9397A AUPO939797A0 (en) 1997-09-23 1997-09-23 Data processing method and apparatus (ART59)
AUPP0959A AUPP095997A0 (en) 1997-12-16 1997-12-16 A data processing method and apparatus (art 68)
AUPP1397A AUPP139798A0 (en) 1998-01-19 1998-01-19 A media device (art 69)
AUPP2370A AUPP237098A0 (en) 1998-03-16 1998-03-16 Data processing method and apparatus (dot 01)
AUPP2371A AUPP237198A0 (en) 1998-03-16 1998-03-16 Data processing method and apparatus (dot02)
AUPP4094A AUPP409498A0 (en) 1998-06-12 1998-06-12 An authentication system (AUTH01)

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000503510A Division JP2001523900A (en) 1997-07-15 1998-07-15 Camera with internal printing system

Publications (2)

Publication Number Publication Date
JP2009022020A JP2009022020A (en) 2009-01-29
JP4309954B2 true JP4309954B2 (en) 2009-08-05

Family

ID=27587067

Family Applications (6)

Application Number Title Priority Date Filing Date
JP2000503510A Pending JP2001523900A (en) 1997-07-15 1998-07-15 Camera with internal printing system
JP2008209322A Pending JP2009081842A (en) 1997-07-15 2008-07-16 Camera system and method for recording audio message to photography
JP2008209323A Expired - Fee Related JP4309954B2 (en) 1997-07-15 2008-07-16 Camera device and method with orientation detection
JP2008209325A Expired - Fee Related JP4309955B2 (en) 1997-07-15 2008-07-16 Method for processing an image in a digital camera using eye detection
JP2008209326A Pending JP2009065654A (en) 1997-07-15 2008-07-16 User interface for image transformation device
JP2008209324A Pending JP2009010979A (en) 1997-07-15 2008-07-16 Method of using automatic focus information for image processing in digital camera

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2000503510A Pending JP2001523900A (en) 1997-07-15 1998-07-15 Camera with internal printing system
JP2008209322A Pending JP2009081842A (en) 1997-07-15 2008-07-16 Camera system and method for recording audio message to photography

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2008209325A Expired - Fee Related JP4309955B2 (en) 1997-07-15 2008-07-16 Method for processing an image in a digital camera using eye detection
JP2008209326A Pending JP2009065654A (en) 1997-07-15 2008-07-16 User interface for image transformation device
JP2008209324A Pending JP2009010979A (en) 1997-07-15 2008-07-16 Method of using automatic focus information for image processing in digital camera

Country Status (3)

Country Link
JP (6) JP2001523900A (en)
AT (1) ATE339743T1 (en)
CA (1) CA2296439C (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260585A (en) * 2006-04-13 2006-09-28 Pro Sensor Kk Apparatus, system, and method for preventing alerted area from intrusion
EP2120448A1 (en) 2008-05-14 2009-11-18 Thomson Licensing Method of processing of a compressed image into a gamut mapped image using spatial frequency analysis
KR101937272B1 (en) * 2012-09-25 2019-04-09 에스케이 텔레콤주식회사 Method and Apparatus for Detecting Event from Multiple Image
KR101348680B1 (en) * 2013-01-09 2014-01-09 국방과학연구소 Target acquisition method for video tracker, and target acquisition apparatus using the same
JP5724094B2 (en) * 2013-11-27 2015-05-27 株式会社大都技研 Amusement stand
JP5747277B2 (en) * 2014-02-17 2015-07-15 株式会社大都技研 Amusement stand
WO2016050584A1 (en) 2014-10-02 2016-04-07 Asml Netherlands B.V. Rule-based deployment of assist features
JP5915959B2 (en) * 2015-04-14 2016-05-11 株式会社大都技研 Amusement stand
JP6115883B2 (en) * 2016-03-25 2017-04-19 株式会社大都技研 Amusement stand
CN110014754B (en) * 2019-03-25 2020-08-07 深圳市银之杰科技股份有限公司 Printing and counterfeit-identification batch stamping integrated machine and processing method
JP7424000B2 (en) 2019-11-19 2024-01-30 株式会社リコー Image processing device, image processing method, image reading device, and image forming device
KR102221348B1 (en) * 2020-11-30 2021-03-02 제일항업(주) Digital map making system)

Also Published As

Publication number Publication date
CA2296439C (en) 2009-09-15
JP2009081842A (en) 2009-04-16
JP4309955B2 (en) 2009-08-05
JP2001523900A (en) 2001-11-27
JP2009010979A (en) 2009-01-15
JP2009022020A (en) 2009-01-29
JP2009065654A (en) 2009-03-26
CA2296439A1 (en) 1999-01-28
ATE339743T1 (en) 2006-10-15
JP2009044740A (en) 2009-02-26

Similar Documents

Publication Publication Date Title
JP4309954B2 (en) Camera device and method with orientation detection
KR100629216B1 (en) Printing cartridge with an integrated circuit device
KR100574290B1 (en) Image printing apparatus including a microcontroller
WO1999004368A1 (en) A camera with internal printing system
IL160172A (en) Printing cartridge with barcode identification
IL174358A (en) Printing cartridge with pressure sensor array identification
IL174357A (en) Printing device
AU2002344712A1 (en) Printing cartridge with an integrated circuit device
AU2002319008A1 (en) A printing cartridge with pressure sensor array identification
AU2002317636A1 (en) A printing cartridge with capacitive sensor identification
WO2003013862A1 (en) A printing cartridge with capacitive sensor identification
EP1425180A2 (en) Printing cartridge with two dimensional code identification
AU2002317030A1 (en) Printing cartridge with two dimensional code identification
AU2002317029A1 (en) Printing cartridge with radio frequency identification
EP1425179A1 (en) Printing cartridge with radio frequency identification
AU2002317629A1 (en) Image sensing apparatus including a microcontroller
EP1444822A1 (en) Image sensing apparatus including a microcontroller
AU2002344713A1 (en) Printing cartridge with barcode identification
JP2001523900A5 (en)
AU763277B2 (en) A camera with internal printing system

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090428

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090508

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees