亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wave.htm

?? 詳細說明了高通QCP音頻的文件格式
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
</x-html>
<x-html>
</x-html>
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="premium" content="msdn">
<meta name="ms.locale" content="en-us">
<meta name="description" content>
<meta name="generator" content="microsoft frontpage 3.0">
<title>audio interchange file format</title>
</head>

<body bgcolor="#ffffff" link="#003399" vlink="#996699" background="../jpg/di1.JPG">

<h1>wave file format</h1>

<p>wave file format is a file format for storing digital audio (waveform) data. it
supports a variety of bit resolutions, sample rates, and channels of audio. this format is
very popular upon ibm pc (clone) platforms, and is widely used in professional programs
that process digital audio waveforms. it takes into account some pecularities of the intel
cpu such as little endian byte order.</p>

<p>this format uses microsoft's version of the electronic arts interchange file format
method for storing data in &quot;chunks&quot;. </p>

<h3>data types</h3>

<p>a c-like language will be used to describe the data structures in the file. a few extra
data types that are not part of standard c, but which will be used in this document, are:</p>

<table border="0">
  <tr>
    <td><b>pstring</b></td>
    <td>pascal-style string, a one-byte count followed by that many text bytes. the total
    number of bytes in this data type should be even. a pad byte can be added to the end of
    the text to accomplish this. this pad byte is not reflected in the count.</td>
  </tr>
  <tr>
    <td><b>id</b></td>
    <td>a chunk id (ie, 4 ascii bytes).</td>
  </tr>
</table>

<p>also note that when you see an array with no size specification (e.g., char ckdata[];),
this indicates a variable-sized array in our c-like language. this differs from standard c
arrays.</p>

<h3>constants</h3>

<p>decimal values are referred to as a string of digits, for example 123, 0, 100 are all
decimal numbers. hexadecimal values are preceded by a 0x - e.g., 0x0a, 0x1, 0x64. </p>

<h3>data organization</h3>

<p>all data is stored in 8-bit bytes, arranged in intel 80x86 (ie, little endian) format.
the bytes of multiple-byte values are stored with the low-order (ie, least significant)
bytes first. data bits are as follows (ie, shown with bit numbers on top): </p>

<pre>
         7  6  5  4  3  2  1  0
       +-----------------------+
 char: | lsb               msb |
       +-----------------------+

         7  6  5  4  3  2  1  0 15 14 13 12 11 10  9  8
       +-----------------------+-----------------------+
short: | lsb     byte 0        |       byte 1      msb |
       +-----------------------+-----------------------+

         7  6  5  4  3  2  1  0 15 14 13 12 11 10  9  8 23 22 21 20 19 18 17 16 31 30 29 28 27 26 25 24
       +-----------------------+-----------------------+-----------------------+-----------------------+
 long: | lsb     byte 0        |       byte 1          |         byte 2	       |       byte 3      msb |
       +-----------------------+-----------------------+-----------------------+-----------------------+
</pre>

<h3>file structure</h3>

<p>a wave file is a collection of a number of different types of chunks. there is a
required format (&quot;fmt &quot;) chunk which contains important parameters describing
the waveform, such as its sample rate. the data chunk, which contains the actual waveform
data, is also required. all other chunks are optional. among the other optional chunks are
ones which define cue points, list instrument parameters, store application-specific
information, etc. all of these chunks are described in detail in the following sections of
this document.</p>

<p>all applications that use wave must be able to read the 2 required chunks and can
choose to selectively ignore the optional chunks. a program that copies a wave should copy
all of the chunks in the wave, even those it chooses not to interpret.</p>

<p>there are no restrictions upon the order of the chunks within a wave file, with the
exception that the format chunk must precede the data chunk. some inflexibly written
programs expect the format chunk as the first chunk (after the riff header) although they
shouldn't because the specification doesn't require this.</p>

<p>here is a graphical overview of an example, minimal wave file. it consists of a single
wave containing the 2 required chunks, a format and a data chunk.</p>

<pre> __________________________
| riff wave chunk	   |
|   groupid  = 'riff'      |
|   rifftype = 'wave'      |
|    __________________    |
|   | format chunk     |   |
|   |	ckid = 'fmt '  |   |
|   |__________________|   |
|    __________________    |
|   | sound data chunk |   |
|   |	ckid = 'data'  |   |
|   |__________________|   |
|__________________________|
</pre>

<h4>a bastardized standard</h4>

<p>the wave format is sort of a bastardized standard that was concocted by too many
&quot;cooks&quot; who didn't properly coordinate the addition of &quot;ingredients&quot;
to the &quot;soup&quot;. unlike with the aiff standard which was mostly designed by a
small, coordinated group, the wave format has had all manner of much-too-independent,
uncoordinated aberrations inflicted upon it. the net result is that there are far too many
chunks that may be found in a wave file -- many of them duplicating the same information
found in other chunks (but in an unnecessarily different way) simply because there have
been too many programmers who took too many liberties with unilaterally adding their own
additions to the wave format without properly coming to a concensus of what everyone else
needed (and therefore it encouraged an &quot;every man for himself&quot; attitude toward
adding things to this &quot;standard&quot;). one example is the instrument chunk versus
the sampler chunk. another example is the note versus label chunks in an associated data
list. i don't even want to get into the totally irresponsible proliferation of compressed
formats. (ie, it seems like everyone and his pet dachshound has come up with some
compressed version of storing wave data -- like we need 100 different ways to do that).
furthermore, there are lots of inconsistencies, for example how 8-bit data is unsigned,
but 16-bit data is signed. </p>

<p>i've attempted to document only those aspects that you're very likely to encounter in a
wave file. i suggest that you concentrate upon these and refuse to support the work of
programmers who feel the need to deviate from a standard with inconsistent, proprietary,
self-serving, unnecessary extensions. please do your part to rein in half-ass programming.</p>

<h3>sample points and sample frames</h3>

<p>a large part of interpreting wave files revolves around the two concepts of sample
points and sample frames. </p>

<p>a sample point is a value representing a sample of a sound at a given moment in time.
for waveforms with greater than 8-bit resolution, each sample point is stored as a linear,
2's-complement value which may be from 9 to 32 bits wide (as determined by the
wbitspersample field in the format chunk, assuming pcm format -- an uncompressed format).
for example, each sample point of a 16-bit waveform would be a 16-bit word (ie, two 8-bit
bytes) where 32767 (0x7fff) is the highest value and -32768 (0x8000) is the lowest value.
for 8-bit (or less) waveforms, each sample point is a linear, unsigned byte where 255 is
the highest value and 0 is the lowest value. obviously, this signed/unsigned sample point
discrepancy between 8-bit and larger resolution waveforms was one of those
&quot;oops&quot; scenarios where some microsoft employee decided to change the sign
sometime after 8-bit wave files were common but 16-bit wave files hadn't yet appeared.</p>

<p>because most cpu's read and write operations deal with 8-bit bytes, it was decided that
a sample point should be rounded up to a size which is a multiple of 8 when stored in a
wave. this makes the wave easier to read into memory. if your adc produces a sample point
from 1 to 8 bits wide, a sample point should be stored in a wave as an 8-bit byte (ie,
unsigned char). if your adc produces a sample point from 9 to 16 bits wide, a sample point
should be stored in a wave as a 16-bit word (ie, signed short). if your adc produces a
sample point from 17 to 24 bits wide, a sample point should be stored in a wave as three
bytes. if your adc produces a sample point from 25 to 32 bits wide, a sample point should
be stored in a wave as a 32-bit doubleword (ie, signed long). etc.</p>

<p>furthermore, the data bits should be left-justified, with any remaining (ie, pad) bits
zeroed. for example, consider the case of a 12-bit sample point. it has 12 bits, so the
sample point must be saved as a 16-bit word. those 12 bits should be left-justified so
that they become bits 4 to 15 inclusive, and bits 0 to 3 should be set to zero. shown
below is how a 12-bit sample point with a value of binary 101000010111 is formatted
left-justified as a 16-bit word.</p>

<pre>
 ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
|   |	  |   |   |   |	|   |   |   |   |   |   |   |   |   |   |
| 1   0   1   0   0   0   0   1   0   1   1   1   0   0   0   0 |
|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
 <---------------------------------------------> <------------->
    12 bit sample point is left justified          rightmost
                                                  4 bits are
                                                  zero padded
</pre>

<p>but note that, because the wave format uses intel little endian byte order, the lsb is
stored first in the wave file as so: </p>

<pre>
 ___ ___ ___ ___ ___ ___ ___ ___    ___ ___ ___ ___ ___ ___ ___ ___
|   |	  |   |   |   |	|   |   |  |   |   |   |   |   |   |   |   |
| 0   1   1   1   0   0   0   0 |  | 1   0   1   0   0   0   0   1 |
|___|___|___|___|___|___|___|___|  |___|___|___|___|___|___|___|___|
 <-------------> <------------->    <----------------------------->
   bits 0 to 3     4 pad bits                 bits 4 to 11
</pre>

<p>for multichannel sounds (for example, a stereo waveform), single sample points from
each channel are interleaved. for example, assume a stereo (ie, 2 channel) waveform.
instead of storing all of the sample points for the left channel first, and then storing
all of the sample points for the right channel next, you &quot;mix&quot; the two channels'
sample points together. you would store the first sample point of the left channel. next,
you would store the first sample point of the right channel. next, you would store the
second sample point of the left channel. next, you would store the second sample point of
the right channel, and so on, alternating between storing the next sample point of each
channel. this is what is meant by interleaved data; you store the next sample point of
each of the channels in turn, so that the sample points that are meant to be
&quot;played&quot; (ie, sent to a dac) simultaneously are stored contiguously. </p>

<p>the sample points that are meant to be &quot;played&quot; (ie, sent to a dac)
simultaneously are collectively called a <b>sample frame</b>. in the example of our stereo
waveform, every two sample points makes up another sample frame. this is illustrated below
for that stereo example. </p>

<pre>
  sample       sample              sample
  frame 0      frame 1             frame n
 _____ _____ _____ _____         _____ _____
| ch1 | ch2 | ch1 | ch2 | . . . | ch1 | ch2 |
|_____|_____|_____|_____|       |_____|_____|
 _____
|     | = one sample point
|_____|
</pre>

<p>for a monophonic waveform, a sample frame is merely a single sample point (ie, there's
nothing to interleave). for multichannel waveforms, you should follow the conventions
shown below for which order to store channels within the sample frame. (ie, below, a
single sample frame is displayed for each example of a multichannel waveform). </p>

<pre>
  channels       1         2
             _________ _________ 
            | left    | right   |
  stereo    |         |         |
            |_________|_________|


                 1         2         3
             _________ _________ _________ 
            | left    | right   | center  |
  3 channel |         |         |         |
            |_________|_________|_________|

                 1         2         3         4
             _________ _________ _________ _________ 
            | front   | front   | rear    | rear    |
  quad      | left    | right   | left    | right   |
            |_________|_________|_________|_________|

                 1         2         3         4
             _________ _________ _________ _________ 
            | left    | center  | right   | surround|
  4 channel |         |         |         |         |
            |_________|_________|_________|_________|

                 1         2         3         4         5         6
             _________ _________ _________ _________ _________ _________
            | left    | left    | center  | right   | right   |surround |
  6 channel | center  |         |         | center  |         |         |
            |_________|_________|_________|_________|_________|_________|
</pre>

<p>the sample points within a sample frame are packed together; there are no unused bytes
between them. likewise, the sample frames are packed together with no pad bytes. </p>

<p>note that the above discussion outlines the format of data within an uncompressed data
chunk. there are some techniques of storing compressed data in a data chunk. obviously,
that data would need to be uncompressed, and then it will adhere to the above layout.</p>

<hr>

<h3>the format chunk</h3>

<p>the format (fmt) chunk describes fundamental parameters of the waveform data such as
sample rate, bit resolution, and how many channels of digital audio are stored in the
wave. </p>

<pre>
#define formatid 'fmt '   /* chunkid for format chunk. note: there is a space at the end of this id. */

typedef struct {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九九精品视频| 久久久久久久久久看片| 精品一二三四区| 亚洲一区欧美一区| 亚洲天堂av老司机| 亚洲婷婷综合久久一本伊一区| 久久综合资源网| 久久久久久久网| 久久麻豆一区二区| 久久久久久黄色| 中文字幕av在线一区二区三区| 国产亚洲成aⅴ人片在线观看| 国产丝袜美腿一区二区三区| 精品国产乱码久久久久久久 | 国产精品久久久久久久久晋中| 久久亚洲欧美国产精品乐播| ww久久中文字幕| 国产精品福利一区二区三区| 亚洲欧美电影一区二区| 亚洲午夜久久久久久久久电影院| 亚洲二区视频在线| 久久国产精品99久久久久久老狼| 国产精品一区专区| 不卡欧美aaaaa| 91久久精品一区二区二区| 欧美精品免费视频| 久久精品一区二区三区av| 亚洲欧洲av在线| 日韩不卡手机在线v区| 国内精品写真在线观看| 91丨porny丨国产入口| 国产成人精品网址| 色婷婷亚洲婷婷| 日韩视频一区二区三区在线播放| 久久久精品人体av艺术| 亚洲欧洲制服丝袜| 久久国产精品99久久久久久老狼| 成人美女视频在线观看18| 欧美日韩五月天| 国产欧美日韩综合| 天天射综合影视| av在线不卡网| 日韩欧美中文一区二区| 国产精品女主播在线观看| 亚洲电影视频在线| 粉嫩欧美一区二区三区高清影视| 欧美日韩免费电影| 亚洲三级在线免费观看| 蜜桃一区二区三区在线| 91视视频在线观看入口直接观看www| 91精品国产综合久久福利| 中文字幕免费观看一区| 欧美aaaaa成人免费观看视频| 成人av手机在线观看| 精品精品国产高清a毛片牛牛| 亚洲一区在线免费观看| 丁香婷婷深情五月亚洲| 精品少妇一区二区三区在线视频| 亚洲欧美日本在线| 成人性视频网站| 久久亚洲私人国产精品va媚药| 亚洲aaa精品| 99久久国产综合精品麻豆| 欧美r级在线观看| 婷婷成人综合网| 91免费国产视频网站| 久久综合久久综合亚洲| 蜜桃视频第一区免费观看| 欧美亚洲综合色| 专区另类欧美日韩| 免费人成精品欧美精品 | 欧美午夜一区二区三区 | 亚洲国产精品影院| 91麻豆6部合集magnet| 日韩美女久久久| 99国产精品一区| 天天射综合影视| 制服视频三区第一页精品| 一区二区三区四区蜜桃| 91网站黄www| 日韩一区有码在线| 色素色在线综合| 一区二区三区在线免费视频| 色狠狠桃花综合| 亚洲gay无套男同| 91精品欧美福利在线观看| 午夜精品一区二区三区免费视频| 欧美日韩一本到| 五月婷婷欧美视频| 日韩美女一区二区三区| 国产在线精品不卡| 国产精品国产三级国产有无不卡| 粉嫩av一区二区三区粉嫩| 国产精品欧美久久久久无广告| 白白色 亚洲乱淫| 曰韩精品一区二区| 欧美日韩国产成人在线91| 青青草一区二区三区| 久久久青草青青国产亚洲免观| 国产91在线看| 一区二区三区精品视频| 777xxx欧美| 国产精华液一区二区三区| 日韩一区在线播放| 欧美一区二区三区在线看| 国产精品亚洲第一| 一区二区三区四区精品在线视频| 欧美色图一区二区三区| 日韩va欧美va亚洲va久久| 精品国产亚洲在线| 成人免费av网站| 天堂一区二区在线| 国产精品久久福利| 欧美一区二区成人6969| 成人精品国产福利| 日韩av电影天堂| 亚洲国产精品精华液ab| 欧美日韩一卡二卡三卡| 国产成人精品三级麻豆| 日本少妇一区二区| 亚洲欧美一区二区三区国产精品| 日韩一区二区三区免费看 | 韩国精品主播一区二区在线观看| 国产精品免费av| 制服丝袜av成人在线看| av亚洲精华国产精华精华| 日本免费新一区视频| 国产精品你懂的在线| 欧美剧在线免费观看网站| 成人av午夜电影| 久久精品72免费观看| 亚洲国产另类av| 成人欧美一区二区三区1314| 2023国产一二三区日本精品2022| 欧美日韩精品一区二区天天拍小说| 国产不卡一区视频| 国产一区二区精品在线观看| 日韩国产欧美三级| 亚洲一区二区综合| 1024精品合集| 国产精品全国免费观看高清| 久久久不卡网国产精品二区| 91精品在线观看入口| 欧美色图12p| 91成人国产精品| 欧美影院午夜播放| 99久免费精品视频在线观看 | 99久精品国产| 国产精品18久久久久久vr| 日本不卡高清视频| 香蕉久久夜色精品国产使用方法 | 欧美日韩精品综合在线| 成人午夜免费av| 国产91精品在线观看| 久久精品国产成人一区二区三区| 香港成人在线视频| 天天操天天色综合| 亚洲最大成人网4388xx| 亚洲一区在线看| 亚洲国产美国国产综合一区二区| 亚洲第四色夜色| 天堂成人免费av电影一区| 日韩综合小视频| 久久精品国产亚洲5555| 久久国产免费看| 成人精品电影在线观看| 91热门视频在线观看| 欧美特级限制片免费在线观看| 色婷婷久久99综合精品jk白丝 | 一区二区欧美国产| 亚洲国产日韩a在线播放性色| 亚洲高清免费一级二级三级| 亚洲五码中文字幕| 日韩成人免费在线| 国产一区二区三区在线观看免费 | 欧美日韩一区三区| 精品欧美一区二区三区精品久久| 国产午夜亚洲精品午夜鲁丝片| 中文字幕中文字幕在线一区| 一区二区三区在线观看网站| 午夜国产不卡在线观看视频| 黄一区二区三区| eeuss鲁片一区二区三区在线观看| 一本色道亚洲精品aⅴ| 69堂精品视频| 久久婷婷成人综合色| 亚洲男人天堂一区| 免费在线观看成人| 成人av网站大全| 91精品国产入口| 国产日产欧美一区二区三区| 一区二区三区四区亚洲| 久久精品久久精品| 色综合天天视频在线观看| 欧美成人精品二区三区99精品| 国产精品成人免费| 卡一卡二国产精品| 91福利在线看| 久久亚洲精精品中文字幕早川悠里 | 亚洲欧美日韩中文字幕一区二区三区|