U.S. patent application number 13/049567 was filed with the patent office on 2012-05-17 for audioaudio format converting apparatus and audioaudio format converting method.
This patent application is currently assigned to Kabushiki Kaisha Toshiba. Invention is credited to Daisuke Iwai.
Application Number | 20120123787 13/049567 |
Document ID | / |
Family ID | 46048605 |
Filed Date | 2012-05-17 |
United States Patent
Application |
20120123787 |
Kind Code |
A1 |
Iwai; Daisuke |
May 17, 2012 |
AUDIOAUDIO FORMAT CONVERTING APPARATUS AND AUDIOAUDIO FORMAT
CONVERTING METHOD
Abstract
According to one embodiment, there is provided a audio format
converting apparatus including a audio data dividing unit, first to
Nth audio format converting units, and a audio data connecting
unit. The audio data dividing unit creates first to Nth divided
audio streams from an input audio stream, and adds the same frames
as a predetermined number of frames from the head of the (i+1)th
divided audio stream to the end of an i-th divided audio stream
(i=1,2, to N-1). The first to Nth audio format converting units
subject the first to Nth divided audio streams to audio format
converting processing in parallel, so as to produce first to Nth
converted audio streams. The audio data connecting unit discards
the predetermined number of frames from the head of each of the
second to Nth converted audio streams, and sequentially connects
the first to Nth converted audio streams.
Inventors: |
Iwai; Daisuke; (Tokyo,
JP) |
Assignee: |
Kabushiki Kaisha Toshiba
Tokyo
JP
|
Family ID: |
46048605 |
Appl. No.: |
13/049567 |
Filed: |
March 16, 2011 |
Current U.S.
Class: |
704/500 ;
704/E19.001 |
Current CPC
Class: |
G10L 19/173 20130101;
G10L 19/167 20130101 |
Class at
Publication: |
704/500 ;
704/E19.001 |
International
Class: |
G10L 19/00 20060101
G10L019/00 |
Foreign Application Data
Date |
Code |
Application Number |
Nov 16, 2010 |
JP |
2010-255987 |
Claims
1. A audio format converting apparatus comprising: a audio data
dividing unit that creates first to Nth divided audio streams (N is
an integer of 2 or more) from an input audio stream consisting of a
plurality of frames, and adds the same frames as a predetermined
number of frames from the head of the (i+1)th divided audio stream
to the end of an i-th divided audio stream (i is an integer from 1
to N-1) out of the first to Nth divided audio streams; first to Nth
audio format converting units, each of which is capable of parallel
processing, the first to Nth audio format converting units
subjecting the corresponding first to Nth divided audio streams to
audio format converting processing, so as to produce first to Nth
converted audio streams; and a audio data connecting unit that
discards the predetermined number of frames from the head of each
of the second to Nth converted audio streams, and thereafter,
sequentially connects the first to Nth converted audio streams to
each other, so as to produce an output audio stream.
2. The audio format converting apparatus according to claim 1,
wherein the predetermined number is equal to a total number of
delay frames in audio decoding processing, resampling processing,
and audio encoding processing in the audio format converting
unit.
3. The audio format converting apparatus according to claim 2,
wherein the audio data dividing unit calculates the total number of
delay frames with reference to delay amount tables storing the
number of delay frames required for each processing.
4. The audio format converting apparatus according to claim 2,
wherein the audio data dividing unit calculates the number
F.sub.head of a header frame in each of the first to Nth divided
audio streams in accordance with Equation (1), calculates the
number X1 of frames in each of the first to (N-1)th divided audio
streams in accordance with Equation (2), and then, calculates the
number X2 of frames in the Nth divided audio stream in accordance
with Equation (3): F.sub.head=Int(S/N)(j-1)(j=1, 2, . . . , N) (1)
X1=Int(S/N)+D (2) X2=S-(N-1)Int(S/N) (3) wherein S represents the
number of frames in the input audio stream; D denotes the total
number of delay frames; and the function Int returns an integer
obtained by dropping the fractional portion of the number in the
case where an argument is not an integer.
5. The audio format converting apparatus according to claim 2,
wherein the audio data dividing unit notifies the audio data
connecting unit of the predetermined number as the number of frames
to be discarded.
6. The audio format converting apparatus according to claim 2,
wherein the audio format converting unit notifies the audio data
connecting unit of the completion of the converting processing upon
completion of the audio format converting processing.
7. The audio format converting apparatus according to claim 1,
wherein the audio data dividing unit calculates the number
F.sub.head of a header frame in each of the first to Nth divided
audio streams in accordance with Equation (1), calculates the
number X1 of frames in each of the first to (N-1)th divided audio
streams in accordance with Equation (2), and then, calculates the
number X2 of frames in the Nth divided audio stream in accordance
with Equation (3): F.sub.head=Int(S/N)(j-1)(j=1, 2, . . . , N) (1)
X1=Int(S/N)+D (2) X2=S-(N-1)Int(S/N) (3) wherein S represents the
number of frames in the input audio stream; D denotes the total
number of delay frames; and the function Int returns an integer
obtained by dropping the fractional portion of the number in the
case where an argument is not an integer.
8. The audio format converting apparatus according to claim 1,
wherein the audio data dividing unit notifies the audio data
connecting unit of the predetermined number as the number of frames
to be discarded.
9. The audio format converting apparatus according to claim 1,
wherein the audio format converting unit notifies the audio data
connecting unit of the completion of the converting processing upon
completion of the audio format converting processing.
10. The audio format converting apparatus according to claim 1,
wherein the audio data connecting unit discards the frames by the
predetermined number minus 1 from the head of each of the second to
Nth converted audio streams, discards the last frame in each of the
first to (N-1)th converted audio streams, and thereafter,
sequentially connects the first to Nth converted audio streams so
as to produce an output audio stream.
11. The audio format converting apparatus according to claim 10,
wherein the predetermined number is equal to a value obtained by
adding one to the total number of delay frames in each
processing.
12. The audio format converting apparatus according to claim 11,
wherein the audio data dividing unit calculates the total number of
delay frames with reference to delay amount tables storing the
number of delay frames required for each processing.
13. The audio format converting apparatus according to claim 11,
wherein the audio data dividing unit calculates the number
F.sub.head of the header frame in each of the first to Nth divided
audio streams in accordance with Equation (1), calculates the
number X1 of frames in each of the first to (N-1)th divided audio
streams in accordance with Equation (2), and then, calculates the
number X2 of frames in the Nth divided audio stream in accordance
with Equation (3): F.sub.head=Int(S/N)(j-1)(j=1, 2, . . . , N) (1)
X1=Int(S/N)+D (2) X2=S-(N-1)Int(S/N) (3) wherein S represents the
number of frames in the input audio stream; D denotes the total
number of delay frames; and the function Int returns an integer
obtained by dropping the fractional portion of the number in the
case where an argument is not an integer.
14. The audio format converting apparatus according to claim 11,
wherein the audio data dividing unit notifies the audio data
connecting unit of the predetermined number as the number of frames
to be discarded.
15. The audio format converting apparatus according to claim 11,
wherein the audio format converting unit notifies the audio data
connecting unit of the completion of the converting processing upon
completion of the audio format converting processing.
16. A audio format converting method comprising: calculating a
total number of delay frames in each of first to Nth audio format
converting units (N is an integer of 2 or more); calculating header
frame numbers of audio streams to be subjected to audio format
converting processing in each of the first to Nth audio format
converting units; creating first to Nth divided audio streams from
an input audio stream based on the header frame numbers and the
total number of delay frames; subjecting the first to Nth divided
audio streams to parallel audio format converting processing in the
first to Nth audio format converting units, so as to produce first
to Nth converted audio streams; and discarding the frames by the
total number of delay frames from the head of each of the second to
Nth converted audio streams, and thereafter, sequentially
connecting the first to Nth converted audio streams to each other
so as to produce an output audio stream.
17. The audio format converting method according to claim 16,
wherein the total number of delay frames is calculated with
reference to delay amount tables storing the number of delay
frames.
18. The audio format converting method according to claim 16,
wherein the number F.sub.head of the header frame in each of the
first to Nth divided audio streams is calculated in accordance with
Equation (1), the number X1 of frames in each of the first to
(N-1)th divided audio streams is calculated in accordance with
Equation (2), and the number X2 of frames in the Nth divided audio
stream is calculated in accordance with Equation (3):
F.sub.head=Int(S/N)(j-1)(j=1, 2, . . . , N) (1) X1=Int(S/N)+D (2)
X2=S-(N-1)Int(S/N) (3) wherein S represents the number of frames in
the input audio stream; D denotes the total number of delay frames;
and the function Int returns an integer obtained by dropping the
fractional portion of the number in the case where an argument is
not an integer.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is based upon and claims the benefit of
priority from the prior Japanese Patent Application No.
2010-255987, filed on Nov. 16, 2010, the entire contents of which
are incorporated herein by reference.
FIELD
[0002] Embodiments described herein relate generally to a audio
format converting apparatus and a audio format converting
method.
BACKGROUND
[0003] There have recently existed various formats (such as MP3,
AAC, WMA, AC3, AMR, ADPCM, WAV, DTS, MP2, Ogg, and AVC-HD) as audio
formats for reproducing music in a personal computer, a mobile
phone, a portable audio player, and the like. A user selectively
uses a proper one suitable for his/her uses out of these audio
formats.
[0004] In the case where, for example, a motion picture is taken by
a video camera, audio data included in the motion picture is
normally encoded in the AC3 (i.e., Dolby Digital, Audio Code Number
3). Thereafter, when the data is transmitted to and recorded in a
recording medium such as a Blu-ray disk, the data encoded in the
AC3 is frequently multiplexed into an AVC-HD (i.e., Advanced Video
Codec High Definition) format. Moreover, in the case where the data
recorded in the recording medium is uploaded to a motion picture
site, the audio data recorded in the AC3 format is often converted
into an AAC (i.e., Advanced Audio Coding) or MP3 (i.e., Mpeg Audio
Layer-3) format. Alternatively, in the case where data taken by a
mobile phone is transmitted via the mobile phone, audio data in the
AAC format is conceivably converted into an AMR (i.e., Adaptive
Multi-Rate) format having a higher compression ratio.
[0005] As described above, the data in a certain audio format is
frequently converted into data in another audio format according to
the intended use. Consequently, there has been an increased need
for improving the speed of audio format converting processing
(i.e., transcoding) for converting data in a certain audio format
into data in another audio format.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 is a diagram schematically illustrating the
configuration of a audio format converting apparatus according to a
first embodiment;
[0007] FIG. 2A is a flowchart illustrating a audio format
converting method according to an embodiment;
[0008] FIG. 2B is a flowchart subsequent to the flowchart of FIG.
2A, illustrating the audio format converting method according to
the embodiment;
[0009] FIG. 3(a) is a diagram illustrating an input audio stream;
and FIG. 3(b) is a diagram illustrating divided audio streams A and
B in the first embodiment;
[0010] FIGS. 4(a) and 4(b) are diagrams illustrating converted
audio streams A and B in the first embodiment, respectively; and
FIG. 4(c) is a diagram illustrating an output audio stream;
[0011] FIGS. 5(a) to 5(c) are examples of tables illustrating delay
amount;
[0012] FIG. 6 is a diagram schematically illustrating the
configuration of a audio format converting apparatus according to a
second embodiment;
[0013] FIGS. 7(a) to 7(c) are diagrams illustrating divided audio
streams A to C in the second embodiment;
[0014] FIGS. 8(a) to 8(c) are diagrams illustrating converted audio
streams in the second embodiment; and FIG. 8(d) is a diagram
illustrating an output audio stream;
[0015] FIGS. 9(a) to 9(c) are diagrams illustrating divided audio
streams in a modification; and
[0016] FIGS. 10(a) to 10(c) are diagrams illustrating converted
audio streams in the modification.
DETAILED DESCRIPTION
[0017] According to an embodiment, there is provided a audio format
converting apparatus comprising a audio data dividing unit, first
to Nth audio format converting units, and a audio data connecting
unit.
[0018] The audio data dividing unit creates first to Nth divided
audio streams (N is an integer of 2 or more) from an input audio
stream consisting of a plurality of frames. Moreover, the audio
data dividing unit adds the same frames as a predetermined number
of frames from the head of the (i+1)th divided audio stream to the
end of an i-th divided audio stream (i is an integer from 1 to N-1)
out of the first to Nth divided audio streams.
[0019] The first to Nth audio format converting units subject the
first to Nth divided audio streams input from the audio data
dividing unit to audio format converting processing in parallel, so
as to produce first to Nth converted audio streams.
[0020] The audio data connecting unit discards the predetermined
number of frames from the head of each of the second to Nth
converted audio streams, and thereafter, sequentially connects the
first to Nth converted audio streams to each other, so as to
produce an output audio stream.
[0021] Hereinafter, descriptions will be given of two embodiments
according to the present invention with reference to the drawings.
Incidentally, the same reference numerals are assigned to
constituent elements having the equivalent functions in the
drawings, and therefore, detailed descriptions of the constituent
elements having the same reference numerals will not be
repeated.
First Embodiment
[0022] FIG. 1 is a diagram schematically illustrating the
configuration of a audio format converting apparatus according to
the first embodiment. A audio format converting apparatus 100
comprises a audio data dividing unit 10, a first audio format
converting unit 20A, a second audio format converting unit 20B, and
a audio data connecting unit 30.
[0023] Next, explanation will be made on the constituent elements
of the audio format converting apparatus 100. The audio data
dividing unit 10 creates a plurality of divided audio streams from
an input audio stream consisting of a plurality of frames. In the
first embodiment, the audio data dividing unit 10 creates a first
and a second divided audio stream. In creating the divided audio
stream, as for the sequential two divided audio streams, the audio
data dividing unit 10 adds the same frames as a predetermined
number of frames from the head of the second divided audio stream
to the end of the first divided audio stream. Here, this
predetermined number is determined in consideration of the total
number of delay frames.
[0024] Additionally, the audio data dividing unit 10 notifies the
audio data connecting unit 30 of the predetermined number as the
number of frames to be discarded (i.e., the number of discarded
frames) in connecting the divided audio streams.
[0025] The first and second audio format converting units 20A and
20B are disposed in different processor cores capable of processing
in parallel. Each of the first and second audio format converting
units 20A and 20B subjects the input divided audio stream to audio
format converting processing, so as to produce a converted audio
stream. Upon completion of the converting processing of the divided
audio stream, each of the first and second audio format converting
units 20A and 20B notifies the audio data connecting unit 30 of the
completion of the converting processing, and further, outputs a
converted audio stream to the audio data connecting unit 30.
[0026] The audio format converting processing includes audio
decoding processing, resampling processing, and encoding
processing. By the audio decoding processing, compressed audio data
is decoded, to be returned to audio data in a time domain. By the
resampling processing, the sampling rate of the audio data obtained
by the audio decoding processing is converted. By the audio
encoding processing, the resampled audio data is compressed in a
designated audio format.
[0027] Each of these three processings is sequential processing
requiring audio data slightly before target audio data to be
processed (e.g., previous audio data by several tens ms). In view
of this, the processing needs a buffer (i.e., a delay buffer), in
which the past audio data by the required amount is stored.
Therefore, as illustrated in FIG. 1, a delay buffer 21 for the
audio decoding processing, another delay buffer 22 for the
resampling processing, and a further delay buffer 23 for the audio
encoding processing are included in each of the audio format
converting units 20A and 20B. The size of the required delay buffer
depends upon the audio decoding processing, the resampling
processing, and the audio encoding processing, and further, upon
processing conditions (e.g., the type of format, the sampling rate,
and the like).
[0028] The audio data connecting unit 30 outputs the converted
audio stream after the processing to a storage device 300. Here,
the converted audio stream output from the second audio format
converting unit 20B is output after the predetermined number of
frames from the head are discarded. This predetermined number, that
is, the number of frames to be discarded in connecting the divided
audio streams to each other is equal to the number of discarded
frames notified by the audio data dividing unit 10. In other words,
the audio data connecting unit 30 sequentially adds the converted
audio stream whose frames are discarded by the predetermined number
from the head to the end of the previous converted audio stream, so
as to produce an output audio stream.
[0029] Another storage device 200 stores the input audio stream
therein. In contrast, the storage device 300 stores the output
audio stream therein. Incidentally, the inputting and outputting
storage devices 200 and 300 may not be independently provided, but
may be integrated into a single storage device. Moreover, all of
the input audio streams may be temporarily copied in a work memory
or the like before the processing by the audio data dividing unit
10. Alternatively, in order to further increase the processing
speed, every time frames in the input audio stream are read from
the storage device 200, the sequentially read frames may be input
into each of the audio format converting units. In this case, since
the frames of discontinuous numbers are read, a randomly accessible
storage device (such as a semiconductor memory, an optical disk, or
a magnetic disk) needs to be used as the storage device 200.
[0030] Next, explanation will be made on the audio format
converting method according to the first embodiment. Here, bit rate
conversion for an audio stream in the AAC format for about 30
seconds is taken as an example. Specific conditions are as follows.
The sampling rate (i.e., the sampling frequency) is 48 kHz both
before and after the conversion. The number of channels is 5.1 ch
before the conversion whereas 1 ch after the conversion. The bit
rate of encoding is 640 kbps before the conversion whereas 48 kbps
after the conversion. The sampling number is 1024 sample/frame both
before and after the conversion. These conditions are input via an
interface of an application by a user. Alternatively, they may be
previously set based on a audio format. Incidentally, they may
include the number of processor cores.
[0031] The audio format converting method in the first embodiment
will be described with reference to flowcharts illustrated in FIGS.
2A and 2B. The input audio stream consists of 1406 frames A0 to
A1405, as illustrated in FIG. 3(a).
[0032] The audio data dividing unit 10 calculates the total number
of delay frames in the first and second audio format converting
units 20A and 20B (S101). Here, the total number of delay frames is
equal to the sum of the numbers of delay frames generated in the
audio decoding processing, resampling processing, and audio
encoding processing.
[0033] The number of delay frames in each processing under the
conversion conditions is obtained by referring to a delay amount
table. The delay amount table exists in each processing in the
audio format converting unit. The number of delay frames required
for each processing is stored under the conversion conditions.
Here, the number of delay frames is obtained by rounding the size
of the delay buffer up to an integer.
[0034] FIGS. 5(a) to 5(c) exemplify the delay amount tables. FIG.
5(a) illustrates the number of delay frames per audio format in the
audio decoding processing. FIG. 5(b) illustrates the number of
delay frames per input/output sampling frequency in the resampling
processing. FIG. 5(c) illustrates the number of delay frames per
audio format in the audio encoding processing. Incidentally, the
delay amount tables may be installed in a memory or a register
inside of the audio format converting apparatus 100 or a memory
disposed outside of the audio format converting apparatus 100.
[0035] It is found that the number of delay frames under the
above-described conditions (the input/output format: AAC; and the
sampling frequency of input/output data: 48 kbps) is "1" in the
audio decoding processing; "0" in the resampling processing; and
"1" in the audio encoding processing. Consequently, the total
number D of delay frames generated in each of the first and second
audio format converting units 20A and 20B is 2.
[0036] Subsequently, the audio data dividing unit 10 calculates the
number of a header frame in the divided audio stream processed in
each of the first and second audio format converting units 20A and
20B (S102). The number of the header frame in the divided audio
stream input into the j-th audio format converting unit is
calculated by using the following equation (1):
F.sub.head=Int(S/N)(j-1)(j=1, 2, . . . , N) (1)
wherein F.sub.head represents the number of the header frame; S,
the number of frames in the input audio stream; and N, the number
of audio format converting units. The function Int returns an
integer obtained by dropping the fractional portion of the number
in the case where an argument is not an integer.
[0037] Since S=1406 and N=2, the number of the header frame in the
divided audio stream input into the first audio format converting
unit 20A is 0. In contrast, the number of the header frame in the
divided audio stream input into the second audio format converting
unit 20B is 703.
[0038] Thereafter, the audio data dividing unit 10 calculates the
number of frames of the divided audio stream processed in each of
the first and second audio format converting units 20A and 20B
(S103).
[0039] The number X1 of frames in the divided audio stream
processed in the audio format converting unit other than the last
unit (j=1, 2, . . . , N-1) is calculated by using the following
equation (2). In addition, the number X2 of frames in the divided
audio stream processed in the last unit (j=N) of the audio format
converting unit is calculated by using the following equation
(3).
X1=Int(S/N)+D (2)
X2=S-(N-1)Int(S/N) (3)
[0040] Since S=1406, N=2, and D=2, the number of frames in the
divided audio stream processed by the first audio format converting
unit 20A is 705. In contrast, the number of frames in the divided
audio stream processed by the second audio format converting unit
20B is 703.
[0041] Next, the audio data dividing unit 10 divides the input
audio stream based on the calculated header frame number and number
of frames, and then, creates a first divided audio stream A and a
second divided audio stream B (S104). Thereafter, the audio data
dividing unit 10 outputs the first divided audio stream A into the
first audio format converting unit 20A and the second divided audio
stream B into the second audio format converting unit 20B,
respectively.
[0042] FIG. 3(b) illustrates the first divided audio stream A and
the second divided audio stream B. The first divided audio stream A
consists of 705 frames A0 to A704 whereas the second divided audio
stream B consists of 703 frames A703 to A1405.
[0043] The first and second divided audio streams A and B include
the common frames A703 and A704. In other words, the first divided
audio stream A includes, at its end, the same frames as a
predetermined number of frames (2 in this case) from the head of
the second divided audio stream B. The common frames function as
"margins." The number of common frames corresponds to the total
number of delay frames calculated in step S101.
[0044] Next, the first and second audio format converting units 20A
and 20B subject the divided audio streams input thereinto,
respectively, to the audio format converting processing in parallel
(S105). As a consequence, the audio format converting unit 20A (or
20B) produces a converted audio stream A (or B). FIG. 4(a)
illustrates a converted audio stream A whereas FIG. 4(b)
illustrates a converted audio stream B. It is noted that the two
header frames in the converted audio stream B cannot use the past
frames by the total number of delay frames during the converting
processing, and therefore, they are incomplete.
[0045] Upon completion of the audio format converting processing,
the first and second audio format converting units 20A and 20B
notify the audio data connecting unit 30 of the completion of the
converting processing, and then, output the converted audio streams
A and B to the audio data connecting unit 30.
[0046] Here, the audio data connecting unit 30 sets an index j to 1
(S106). The audio data connecting unit 30 determines if the
converting processing in the j-th audio format converting unit is
completed (S107). The completion of the converting processing is
determined based on whether or not the completion of the converting
processing is received from each of the audio format converting
units.
[0047] Subsequently, the audio data connecting unit 30 determines
whether or not the index j is 1 (S108). If the index j is 1 (Yes in
S108), the audio data connecting unit 30 stores the first converted
audio stream output from the first audio format converting unit in
the work memory as it is (S109). As the work memory may be used a
memory disposed inside of the audio data connecting unit 30 or in
the audio format converting apparatus 100.
[0048] In contrast, if the index j is not 1 (No in S108), the audio
data connecting unit 30 discards the frames by the predetermined
number from the head in the j-th converted audio stream output from
the j-th audio format converting unit, and then, stores the j-th
converted audio stream in the work memory in such a manner as to
connect it to the end of the (j-1)th converted audio stream (S111).
The predetermined number (i.e., the number of frames to be
discarded) is equal to the total number of delay frames calculated
in step S101.
[0049] The frames B0 to B704 in the first converted audio stream A
output from the first audio format converting unit 20A are output
to the work memory as they are. In contrast, the two header frames
B703 and B704 in the second converted audio stream B output from
the second audio format converting unit 20B are discarded in the
audio data connecting unit 30, and then, the frames B705 to B1405
are output to the work memory.
[0050] One is added to the index j (S110). Thereafter, it is
determined whether or not the converted audio streams from all of
the audio format converting units are output to the work memory
(S112). If the result is Yes, the converting processing comes to an
end. In contrast, if the result is No, the control routine returns
to S107.
[0051] In accordance with the above-described flow, the converted
audio streams from all of the audio format converting units are
sequentially connected to each other, thereby providing the output
audio stream. FIG. 4(c) illustrates the output audio stream written
in the work memory. The output audio stream is identical to a
stream conventionally obtained after the audio format converting
processing without dividing the input audio stream.
[0052] In another method for producing the output audio stream, the
converted audio streams may be connected to each other in the
storage device 300 disposed outside of the audio format converting
apparatus 100. In this case, the audio data connecting unit 30
outputs the converted audio stream A to the storage device 300
without storing the converted audio stream A in the work memory
whereas discards the predetermined number of frames from the head
in the converted audio stream B, then output it to the storage
device 300 in such a manner as to connect it to the end of the
converted audio stream A.
[0053] In the first embodiment, the common frames by the number
corresponding to the total number of delay frames are added to the
end of the divided audio stream A in consideration of the influence
of the delay buffer during the audio converting processing. When
the converted audio streams A and B are connected to each other,
the incomplete frames in the converted audio stream B are
discarded. Consequently, it is possible to produce the output audio
stream without degrading the continuity of the frames constituting
the audio stream.
[0054] In this manner, the audio format converting processing is
performed in parallel by using the two processor cores in the first
embodiment, so that the speed of the audio format converting
processing can be increased.
Second Embodiment
[0055] Next, explanation will be made on a second embodiment. One
of differences from the first embodiment resides in the number of
audio format converting units. Specifically, the number of audio
format converting units in the second embodiment is N. Only the
differences from the first embodiment will be described below.
[0056] FIG. 6 is a diagram schematically illustrating the
configuration of a audio format converting apparatus according to
the second embodiment. A audio format converting apparatus 100A
comprises a audio data dividing unit 10, first to Nth audio format
converting units 20 (20A, 20B, and 20C), and a audio data
connecting unit 30.
[0057] Each of the audio format converting units includes a delay
buffer 21, another delay buffer 22, and a further delay buffer 23.
Upon completion of converting processing of a divided audio stream,
each of the audio format converting units notifies the audio data
connecting unit 30 of the completion of the converting processing,
and further, outputs a converted audio stream to the audio data
connecting unit 30. The first to Nth audio format converting units
20A, 20B, and 20C are disposed in different processor cores capable
of processing in parallel, respectively.
[0058] Next, explanation will be made on a audio format converting
method according to the second embodiment. Here, bit rate
conversion for an audio stream in the AAC format is taken as an
example. In a specific example, the number of audio format
converting units is three, and further, the configuration of an
input audio stream (see FIG. 3(a)) and the conversion conditions
such as a sampling rate are identical to those in the first
embodiment. The audio format converting method according to the
second embodiment is also performed in accordance with the
flowcharts illustrated in FIGS. 2A and 2B.
[0059] First, the audio data dividing unit 10 calculates the total
number of delay frames generated in each of the audio format
converting units 20 (S101). Here, the total number of delay frames
in each of the audio format converting units is 2 according to an
input format and the conversion conditions.
[0060] Subsequently, the audio data dividing unit 10 calculates the
number of the header frame in the divided audio stream input into
each of the audio format converting units 20 (S102). When S=1406
and N=3, the numbers of the header frames in the divided audio
streams input into the audio format converting units 20A, 20B, and
20C are 0, 468, and 936, respectively, in accordance with Equation
(1).
[0061] The audio data dividing unit 10 calculates the number of
frames in the divided audio stream processed in each of the audio
format converting units 20 (S103). When S=1406, N=3, and D=2, the
number of frames in the divided audio stream processed in each of
the audio format converting units 20A, 20B, and 20C becomes 470 in
accordance with Equations (2) and (3).
[0062] The audio data dividing unit 10 divides the input audio
stream based on the header frame number and the number of frames,
and then, creates first to Nth divided audio streams (S104). Common
frames corresponding to the total number of delay frames are added
to each of the ends of the first to (N-1)th divided audio streams.
The audio data dividing unit 10 outputs the first to Nth divided
audio streams to the first to Nth audio format converting units 20,
respectively.
[0063] FIGS. 7(a) to 7(c) illustrate divided audio streams A, B,
and C in the case where the number of audio format converting units
is three. The divided audio streams A and B include the common
frames (A468 and A469). In addition, the divided audio streams B
and C include the common frames (A936 and A937). The number of
common frames is equal to the total number of delay frames.
[0064] Each of the audio format converting units 20 subjects the
input divided audio stream to the audio format converting
processing, and then, produces a converted audio stream. FIGS. 8(a)
to 8(c) illustrate the converted audio streams A, B, and C,
respectively. The two header frames in each of the second to Nth
converted audio streams are incomplete frames since past frames by
the total number of delay frames cannot be used during the
converting processing.
[0065] Thereafter, the control routine is performed in steps S106
to S110 in the same manner as in the first embodiment. The two
header frames B468 and B469 in the converted audio stream B in the
audio format converting unit 20B are discarded. Moreover, the two
header frames B936 and B937 in the converted audio stream C in the
audio format converting unit 20C are discarded. The incomplete
frames are discarded in this manner, and then, the converted audio
streams are connected to each other, thereby providing an output
audio stream (FIG. 8(d)).
[0066] In the second embodiment, the common frames by the total
number of delay frames are added to each of the ends of the first
to (N-1)th divided audio streams out of the N divided audio
streams, followed by the converting processing. The incomplete
frames are discarded during the converting processing.
Consequently, it is possible to produce the output audio stream
without degrading the continuity of the frames constituting the
audio stream. Additionally, the speed of the audio format
converting processing can be more increased according to the second
embodiment than the first embodiment.
[0067] Subsequently, a modification of the present embodiments will
be described below. For example, audio of the last frame in an
audio stream may be faded out by the audio format converting unit.
Alternatively, in the case where the numbers of audio formats to be
sampled are different from each other at the input and the output,
0 data may be embedded at a vacant portion of the last frame of a
converted audio stream. In these cases, the last frame in the
converted audio stream becomes incomplete, and therefore, it cannot
be used in the output audio stream.
[0068] Hence, in the above-described cases, common frames are added
to the end of a divided audio stream by the total number of delay
frames plus one (i.e., D+1) in dividing, and then, the last frame
in the converted audio stream is discarded in connecting.
[0069] More specifically, the audio data dividing unit 10 adds
common frames to each of the ends of divided audio streams A and B
by the total number (two) of delay frames plus one (i.e., three),
as illustrated in FIGS. 9(a) and 9(b). Here, a divided audio stream
C is the same as that in the second embodiment (FIG. 9(c)). That is
to say, Equation (4) is used in place of Equation (2) in order to
obtain the number X1 of frames in each of the divided audio streams
A and B in the present modification.
X1=Int(S/N)+(D+1) (4)
[0070] The audio data connecting unit 30 discards two frames from
each of the heads of converted audio streams B and C, and further,
discards the last frame in each of the converted audio streams A
and B (see FIGS. 10(a) to 10(c)). According to the present
modification, even if the last frames in the converted audio
streams A and B become incomplete, a desired output audio stream
can be produced by performing the converting processing after
adding one frame.
[0071] Although the two or three processor cores are provided in
the above embodiments, the present invention is not limited to such
an arrangement. The number of processor cores, that is, the number
of audio format converting units is arbitrary. Thus, the audio
format converting processing can be scalably increased in speed
according to the number of processor cores capable of the
processing in parallel.
[0072] Moreover, the input audio data is not limited to compressed
data, and therefore, it may be PCM data which does not require
audio decoding processing.
[0073] In the above embodiments, the audio data connecting unit 30
outputs the converted audio stream to the storage device 300 in
ascending order of the index j (S106 to S112). However, the present
invention is not limited to such an arrangement, and converted
audio streams may be output in the order in which the completion of
the converting processing is received.
[0074] While certain embodiments have been described, these
embodiments have been presented by way of example only, and are not
intended to limit the scope of the inventions. Indeed, the novel
methods and systems described herein may be embodied in a variety
of other forms; furthermore, various omissions, substitutions and
changes in the form of the methods and systems described herein may
be made without departing from the spirit of the inventions. The
accompanying claims and their equivalents are intended to cover
such forms or modifications as would fall within the scope and
spirit of the inventions.
* * * * *