Skip to content

Commit 81f7df3

Browse files
committed
Imported ITU-T G.191 (03/10) aka STL2009.
https://www.itu.int/rec/T-REC-G.191/en
0 parents  commit 81f7df3

File tree

741 files changed

+140706
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

741 files changed

+140706
-0
lines changed

gen-lic.txt

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
2+
3+
ITU-T SOFTWARE TOOLS' GENERAL PUBLIC LICENSE
4+
5+
6+
7+
This "General Public License" is published in the Annex 1 of the
8+
ITU-T Recommendation on "SOFTWARE TOOLS FOR HOMOGENITY OF RESULTS
9+
IN THE STANDARDIZATION PROCESS OF SPEECH AND AUDIO CODERS",
10+
approved in Geneva, 2000.
11+
12+
13+
TERMS AND CONDITIONS
14+
15+
1. This License Agreement applies to any module or other work
16+
related to the ITU-T Software Tool Library, and developed by the
17+
User's Group on Software Tools. The "Module", below, refers to any
18+
such module or work, and a "work based on the Module" means either
19+
the Module or any work containing the Module or a portion of it,
20+
either verbatim or with modifications. Each licensee is addressed
21+
as "you".
22+
23+
2. You may copy and distribute verbatim copies of the Module's
24+
source code as you receive it, in any medium, provided that you:
25+
- conspicuously and appropriately publish on each copy an appropriate
26+
copyright notice and disclaimer of warranty;
27+
- keep intact all the notices that refer to this General Public
28+
License and to the absence of any warranty; and
29+
- give any other recipients of the Module a copy of this General
30+
Public License along with the Module.
31+
You may charge a fee for the physical act of transferring a copy.
32+
33+
3. You may modify your copy or copies of the Module or any portion
34+
of it, and copy and distribute such modifications under the terms
35+
of Paragraph 1 above, provided that you also do the following:
36+
37+
o cause the modified files to carry prominent notices stating
38+
that you changed the files and the date of any change; and
39+
40+
o cause the whole of any work that you distribute or publish,
41+
that in whole or in part contains the Module or any part
42+
thereof, either with or without modifications, to be licensed
43+
at no charge to all third parties under the terms of this
44+
General Public License (except that you may choose to grant
45+
warranty protection to some or all third parties, at your
46+
option).
47+
48+
o If the modified module normally reads commands interactively
49+
when run, you must cause it, when started running for such
50+
interactive use in the simplest and most usual way, to print or
51+
display an announcement including an appropriate copyright
52+
notice and a notice that there is no warranty (or else, saying
53+
that you provide a warranty) and that users may redistribute
54+
the module under these conditions, and telling the user how to
55+
view a copy of this General Public License.
56+
57+
You may charge a fee for the physical act of transferring a copy,
58+
and you may at your option offer warranty protection in exchange
59+
for a fee.
60+
61+
Mere aggregation of another independent work with the Module (or
62+
its derivative) on a volume of a storage or distribution medium
63+
does not bring the other work under the scope of these terms.
64+
65+
4. You may copy and distribute the Module (or a portion or
66+
derivative of it, under Paragraph 2) in object code or executable
67+
form under the terms of Paragraphs 1 and 2 above provided that you
68+
also do one of the following:
69+
70+
o accompany it with the complete corresponding machine-
71+
readable source code, which must be distributed under the terms
72+
of Paragraphs 1 and 2 above; or,
73+
74+
o accompany it with a written offer, valid for at least three
75+
years, to give any third party free (except for a nominal
76+
charge for the cost of distribution) a complete machine-
77+
readable copy of the corresponding source code, to be
78+
distributed under the terms of Paragraphs 1 and 2 above; or,
79+
80+
o accompany it with the information you received as to where
81+
the corresponding source code may be obtained. (This
82+
alternative is allowed only for noncommercial distribution and
83+
only if you received the module in object code or executable
84+
form alone.)
85+
86+
Source code for a work means the preferred form of the work for
87+
making modifications to it. For an executable file, complete
88+
source code means all the source code for all modules it contains;
89+
but, as a special exception, it need not include source code for
90+
modules which are standard libraries that accompany the operating
91+
system on which the executable file runs, or for standard header
92+
files or definitions files that accompany that operating system.
93+
94+
5. You may not copy, modify, sublicense, distribute or transfer
95+
the Module except as expressly provided under this General Public
96+
License. Any attempt otherwise to copy, modify, sublicense,
97+
distribute or transfer the Module is void, and will automatically
98+
terminate your rights to use the Module under this License.
99+
However, parties who have received copies, or rights to use copies,
100+
from you under this General Public License will not have their
101+
licenses terminated so long as such parties remain in full
102+
compliance.
103+
104+
6. By copying, distributing or modifying the Module (or any work
105+
based on the Module) you indicate your acceptance of this license
106+
to do so, and all its terms and conditions.
107+
108+
7. Each time you redistribute the Module (or any work based on the
109+
Module), the recipient automatically receives a license from the
110+
original licensor to copy, distribute or modify the Module subject
111+
to these terms and conditions. You may not impose any further
112+
restrictions on the recipients' exercise of the rights granted
113+
herein.
114+
115+
8. The ITU-T may publish revised and/or new versions of this
116+
General Public License from time to time. Such new versions will
117+
be similar in spirit to the present version, but may differ in
118+
detail to address new problems or concerns.
119+
120+
Each version is given a distinguishing version number. If the
121+
Module specifies a version number of the license which applies to
122+
it and "any later version", you have the option of following the
123+
terms and conditions either of that version or of any later version
124+
published by the ITU-T. If the Module does not specify a version
125+
number of the license, you may choose any version ever published by
126+
the ITU-T.
127+
128+
9. If you wish to incorporate parts of the Module into other free
129+
modules whose distribution conditions are different, write to the
130+
author to ask for permission. For software which is copyrighted by
131+
the ITU-T, write to the ITU-T Secretariat; exceptions may be made
132+
for this. This decision will be guided by the two goals of
133+
preserving the free status of all derivatives of this free software
134+
and of promoting the sharing and reuse of software generally.
135+
136+
137+
NO WARRANTY
138+
139+
10. BECAUSE THE MODULE IS LICENSED FREE OF CHARGE, THERE IS NO
140+
WARRANTY FOR THE MODULE, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
141+
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
142+
AND/OR OTHER PARTIES PROVIDE THE MODULE "AS IS" WITHOUT WARRANTY OF
143+
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED
144+
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
145+
PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
146+
PERFORMANCE OF THE MODULE IS WITH YOU. SHOULD THE MODULE PROVE
147+
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
148+
OR CORRECTION.
149+
150+
11. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
151+
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
152+
MODIFY AND/OR REDISTRIBUTE THE MODULE AS PERMITTED ABOVE, BE LIABLE
153+
TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
154+
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
155+
THE MODULE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
156+
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR
157+
A FAILURE OF THE MODULE TO OPERATE WITH ANY OTHER MODULES), EVEN IF
158+
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
159+
SUCH DAMAGES.
160+
161+
END OF TERMS AND CONDITIONS
162+

src/basop/basop.rme

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
2+
Read-me for ITU-T/UGST Basic Operator Module V.2.3
3+
(30.Nov.2009)
4+
5+
=============================================================
6+
COPYRIGHT NOTE: This source code, and all of its derivations,
7+
is subject to the "ITU-T General Public License". Please have
8+
it read in the distribution disk, or in the ITU-T
9+
Recommendation G.191 on "SOFTWARE TOOLS FOR SPEECH AND AUDIO
10+
CODING STANDARDS".
11+
=============================================================
12+
13+
Changes v.2.2 --> v.2.3
14+
***********************
15+
16+
Modifications in basop32.c and basop32.h
17+
- Function round() is now named round_fx(), to avoid clashes with
18+
standard C library.
19+
- Function saturate() is made unreferencable from outside application.
20+
21+
Added new functionalities:
22+
- Basic operator counter utility: basop_cnt.c
23+
- Complexity evaluation tool for floating-point: flc.h, flc.c
24+
25+
Changes v.2.1 --> v.2.2
26+
***********************
27+
28+
New functions in count.c:
29+
- void setFrameRate(int samplingFreq, int frameLength);
30+
This function can overwrite the value of the frameRate variable
31+
that is initialized by the FRAME_RATE constant.
32+
- void WMOPS_output_avg (Word16 dtx_mode, Word32 *tot_wm, Word16 *num_frames);
33+
same as WMOPS_output + returns the total wmops counter and the number of frames
34+
to support the computation of advanced complexity results as the global average.
35+
36+
An example of the use of WMOPS_output_avg is given below:
37+
38+
In a decoder, the spe1Id was used for valid frames while the spe2Id counter was used for erased frames.
39+
Using the WMOPS_output_avg the global average complexity can be also displayed :
40+
41+
short spe1Id = getCounterId("Valid frames");
42+
short spe2Id = getCounterId("Bad frames");
43+
long tot_wm1;
44+
short num_frames1;
45+
long tot_wm2;
46+
short num_frames2;
47+
48+
...
49+
50+
setCounter(spe1Id);
51+
fwc();
52+
WMOPS_output_avg(0, &tot_wm1, &num_frames1);
53+
setCounter(spe2Id);
54+
fwc();
55+
WMOPS_output_avg(0, &tot_wm2, &num_frames2);
56+
printf("Global average %f WMOPS\n", (tot_wm1 + tot_wm2)/(float)(num_frames1 + num_frames2));
57+
58+
Modifications in count.c:
59+
- L_mls() is weighted 5.
60+
- div_l() is weighted 32.
61+
- i_mult() is weighted 3.
62+
63+
Changes v.2.0 --> v.2.1
64+
***********************
65+
66+
Improved portability:
67+
- in header files "__inline" was changed to "static __inline"
68+
- // style comments were changed to /* */
69+
- Cygwin added in the supported compiler list (typedef.h)
70+
- Word40 definition was added for Sun and Unix (typedef.h)
71+
Corrections:
72+
- missing incrementations were added for s_and, s_or and s_xor (enh1632.h)
73+
74+
75+
76+
Original version: v.2.0
77+
***********************
78+
79+
The ITU-T/UGST Basic Operator module contails the following files:
80+
81+
General:
82+
~~~~~~~~
83+
basop.rme: ....... Read-me file for Basic Operator module (this file)
84+
85+
C code: ('model' directory)
86+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
87+
basop32.c: ....... 16/32 bit basic operators
88+
basop32.h: ....... Prototypes for basop32.c
89+
count.c: ......... Functions for WMOPS computation
90+
count.h: ......... Prototypes for count.c
91+
typedef.h: ....... Data type definitions
92+
typedefs.h: ...... New data type definitions
93+
move.h: .......... Move & miscellaneous legacy operators
94+
control.c: ....... Control operator internal variable decl.
95+
control.h: ....... Control operators
96+
enh1632.c: ....... Enhanced 16/32 bit basic operators
97+
enh1632.h: ....... Prototypes for enh1632.c
98+
enh40.c: ......... 40 bit basic operators
99+
enh40.h: ......... Prototypes for enh40.c
100+
patch.h: ......... Backward compatibility for operator names
101+
stl.h: ........... Main header file
102+
103+
Demos:
104+
~~~~~~
105+
Demo programs are not available for this module.
106+
107+
108+
Makefiles
109+
~~~~~~~~~
110+
Make files are not available for this module.
111+
112+
113+
114+

0 commit comments

Comments
 (0)