📄 files.vtme
字号:
.lo.de SM \"macro to shrink left margin.br.nr $i \\n($i+\\$1i...de RM \"macro to restore original left margin.br.nr $i 0...SJ "Data Files in the Entropic Signal Processing System (ESPS)".AU "Alan Parker and Joe Buck".RB "John Shore".TM ETM-S-86-13:rap/jtb 1.5 6/18/87.*REntropic Signal Processing System, Programmers Reference Manual.*RETM-S-86-12, Parameter and Common Files in the Entropic Signal Processing System (ESPS).*RETM-S-86-14, Entropic Signal Processing System Programming Guidelines.*RETM-S-86-21, Introduction to the Entropic Signal Processing System (ESPS).*RETM-S-86-25, Guidelines for Implementing ESPS Feature File Subtypes.sh 1 Introduction.lpThis document describes the Entropic Signal Processing System(\s-1ESPS\s+1) data files and presents informationrequired to understand and write programs using the \s-1ESPS\s+1 data fileheader structures. .(f\(co Copyright 1987 Entropic Speech, Inc.; All rights reserved. .)f.lpThe reader must also read and understand the \s-1ESPS\s+1manual pages in reference [1]. These manual pages are in thestandard \s-1UNIX\s+1 format; Section 1 describes user commands, Section 3describes library routines, and Section 5 describes the format of \s-1ESPS\s+1files.This document together with reference [1] is the complete descriptionof the \s-1ESPS\s+1 file structures..lpFor additional information on \s-1ESPS\s+1 programming guidelines and asample program see reference [3]. For a general introduction to ESPS see [4]. .sh 1 "Design Goals".lpThe design goals for ESPS files are:.ip \(buStore all relevant information about the file, including analysisconditions, source files, history, and the type of data that is in thefile..ip \(buFlexibility. We will have sampled data files, files of fixed lengthrecords, and record files in which a tag marking a position isassociated with each record. We may want to store 8, 16, or 32-bitintegers, or 32 or 64-bit floating point values..ip \(buThe design should allow programs that only understand a few of theheader items to run correctly. For example, one could imagine ageneral plotting program that uses certain header items to determinewhere the data starts, whether the data type is integer or floating,and to put appropriate labels on the plot. A program should not needspecial knowledge about how a certain type of data is stored; itshould all be in the header..ip \(buThe header should provide enough information to repeat an experimentor to check files for compatibility before processing. .ip \(buThe design should allow new file types to be designed and added without affecting existing data files of another type..ip \(buThe design should allow users to add additional ("generic") header items to existing ESPS file types without affecting existing data filesof that type or existing programs that deal with files of that type. .ip \(buThe header in a specific data file type should only contain items that areused by that specific file type. .ip \(buIt should be possible to create user-defined ESPS file types. .ip \(buAll fields in a data record should not have to be the same type;\fIe.g.\fR some fields are integer while others are floating..sh 1 "ESPS File Types".lpAll ESPS files conform to a common structure, consisting of a standardheader followed by data records. The header is the primary means bywhich record-keeping is performed within ESPS. An ESPS header include thevalues of all important parameters to the program that created the ESPSfile, and the header is a recursive structure that permits the inclusionof the headers of all source files that were inputs to the program. Itfollows that most ESPS files contain a complete history of the origin ofthe data in the file and all intermediate processing steps. ESPS file headers and data records can be viewed by means of the program .i psps(1-ESPS). .lpCurrent ESPS file types in the general release include the following:.SM .5i.ip "SD" 8sampled data.ip "SPEC" 8spectra.ip "FILT" 8digital filters.ip "SCBK" 8scalar quantization codebooks.ip "FEA" 8feature file.RM.lp.lpFor a complete description of the \s-1ESPS\s+1 data files refer to\fIESPS\fR(5\-\s-1ESPS\s+1), \fISD\fR(5\-\s-1ESPS\s+1),\fIFILT\fR(5\-\s-1ESPS\s+1), \fISCBK\fR(5\-\s-1ESPS\s+1), and\fIFEA\fR(5\-\s-1ESPS\s+1) in reference [1]..lpThe FEA type, which is the most recent, deserves special mention. It isa general purpose file type that can be used to store arbitraryinformation in fixed-length records; optionally, the records can pointto positions in various source files. The FEA file type will be thebasis for a set of ESPS pattern recognition and display programs. It isespecially noteworthy, however, because \- unlike the case for the otherESPS file types \- the names, sizes, and data types of the fields in FEArecords are not pre-defined. This means that FEA files can be used tocreate user-defined ESPS files that have all of the advantages of thebuilt-in file types. For details, see [5]..sh 1 "ESPS File Headers".lp\s-1ESPS\s+1 data file headers consist of two primary parts; the commonsection and the type specific section. All \s-1ESPS\s+1 data fileheaders have the same common section. This section contains informationrelating to the type of the data in the file, creation date and versioninformation, housekeeping information required by the header accessroutines, and comments. The type-specific section of the headercontains data relevant to the specific file type. Data fields in theheader are called \fIheader items\fR. .lpInternally, a file header is stored as a C structure. In the fileitself, there are two types of header items. Most header items areassigned a fixed location and are always present. The remaining headeritems may or may not be present and may be variable in size. These arestored in the file after the fixed location items, but programmers neednot be concerned about the actual data format in the file..lpAnalysis conditions stored in file headers reflect the history of afile, not commands to programs that operate on the file. In\s-1ESPS\s+1, the parameter file, the common file, and in some cases thecommand line specify analysis conditions and options that affect theoperation of many \s-1ESPS\s+1 programs. \s-1ESPS\s+1 programs consultthe parameter file, the common file, and the command line for analysisconditions, and for most analysis conditions store these in the headerof the output data file. For information about the parameter and commonfiles, see [2]. .lpThere will be cases where there are not header items to save particularanalysis conditions or options. This is particularly likely duringexperimentation or testing of changes to programs. If it is determinedthat a new analysis condition or option is significant it will likely beadded to the file header in a future release. In the meantime,experimental versions are free to use the spare locations in fileheaders (documented in [2, Section 5] for each file type), with theunderstanding that official ESPS releases may invalidate such use. Tofurther support record keeping, all \s-1ESPS\s+1 programs will recordthe command line that invoked them in the comment field of any generatedoutput file headers, and in the case of conditions or options withoutcorresponding header entries recording the command line will be therecord of their use. This convention facilitates record keeping when files are produced by unoffical version of programs with special analysis options. The ESPS library routines.i get_cmd_line and.i add_comment(3\-\s-1ESPS\s+1) support this convention. Note that .i add_commentshould not be invoked until after any source files have been included in the header using .i add_source_file(3\-\s-1ESPS\s+1) \- see the further discussion later in thisdocument. .lpTo allow a single file to contain its entire history, headers are recursivestructures. This means that an entire file header may be included as anoptional header item. The C structure representing the header in memoryhas fields that can contain pointers to other header structures..sh 1 "Programming with the \s-1ESPS\s+1 Header Structures".lpThis section presents information needed to write programs using the \s-1ESPS\s+1header structures..sh 2 "Header Structure".lpRefer to the listing of \fIheader.h\fR in reference [1] to helpunderstand this section. Also, see \fIESPS\fR(5\-\s-1ESPS\s+1). In thefollowing, we assume that the variable "head" is a pointer to an ESPSfile header structure. As mentioned above, the header structurecontains two portions \- the common portion and the type-specificportion. The common portion of the header itself contains twostructures, .i commonand.i variable.lpThe structure \fIcommon\fR contains items present in every \s-1ESPS\s+1data file, regardless of type. This section contains the type code ofthe header, a check value, identification of the program and its versionthat created the header, the name of the person who ran that program,the number of data records in the file, whether the data is tagged(meaning each record has a tag that refers to a point in a source file),and the type of the records in the data file. An example (file creationdate) is .nf head\->common.date. .fi.lpThe structure \fIvariable\fR contains pointers to source file names,embedded source file headers, two text fields (one is the comment fieldmentioned earlier), the name of a reference file, and two variables thattell the number of source file names and embedded headers. An example(reference file name) is .nf head\->variable.refer. .lpThe variable portion also contains so-called "generic" header items,which are used by programs to store arbitrary information not includedin the standard header. This facility means that the basic design of anESPS file type does not have to anticipate every application. Forexample, the SD file type does not make provision for storing in thefile header the average rate of zero crossings, but a program that needsto can do so by means of a generic header item. If such an item was created and called "zero_crossing", a pointer to the stored value is given by .nf get_genhd("zero_crossing", ih).lp.lpThe type-specific portion of the header is provided by a union \fIhd\fRthat contains pointers to each possible type-specific structure. Theyare declared in a union so that additional pointers can be added in thefuture without affecting existing data files (since the size of thepointers themselves are the same). Programmers can tell which of thesepointers to use by checking the item head\->common.type. The pointer names are given in the following table:.nf.TSbox,center;c cl l.Value of \fIcommon.type\fR Pointer in \fIhd\fR to use_\s-1FT_SD\s+1 \fIhd.sd\fR\s-1FT_SPEC\s+1 \fIhd.spec\fR\s-1FT_FILT\s+1 \fIhd.filt\fR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -