Microsoft Patent | Directional Propagation
Patent: Directional Propagation
Publication Number: 20190356999
Publication Date: 20191121
Applicants: Microsoft
Abstract
The description relates to parametric directional propagation for sound modeling and rendering. One implementation includes receiving virtual reality space data corresponding to a virtual reality space. The implementation can include using the virtual reality space data to simulate directional impulse responses for initial sounds emanating from multiple moving sound sources and arriving at multiple moving listeners. The implementation can include using the virtual reality space data to simulate directional impulse responses for sound reflections in the virtual reality space. The directional impulse responses can be encoded and used to render sound that accounts for a geometry of the virtual reality space.
BACKGROUND
[0001] Practical modeling and rendering of real-time directional acoustic effects (e.g., sound, audio) for video games and/or virtual reality applications can be prohibitively complex. Conventional methods constrained by reasonable computational budgets have been unable to render authentic, convincing sound with true-to-life directionality of initial sounds and/or multiply-scattered sound reflections, particularly in cases with occluders (e.g., sound obstructions). Room acoustic modeling (e.g., concert hall acoustics) does not account for free movement of either sound sources or listeners. Further, sound-to-listener line of sight is usually unobstructed in such applications. Conventional real-time path tracing methods demand enormous sampling to produce smooth results, greatly exceeding reasonable computational budgets. Other methods are limited to oversimplified scenes with few occlusions, such as an outdoor space that contains only 10-20 explicitly separated objects (e.g., building facades, boulders). Some methods have attempted to account for sound directionality with moving sound sources and/or listeners, but are unable to also account for scene acoustics while working within a reasonable computational budget. Still other methods neglect sound directionality entirely. In contrast, the parametric directional propagation concepts described herein can generate convincing audio for complex video gaming and/or virtual reality scenarios while meeting a reasonable computational budget.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The accompanying drawings illustrate implementations of the concepts conveyed in the present document. Features of the illustrated implementations can be more readily understood by reference to the following description taken in conjunction with the accompanying drawings. Like reference numbers in the various drawings are used wherever feasible to indicate like elements. In some cases, parentheticals are utilized after a reference number to distinguish like elements. Use of the reference number without the associated parenthetical is generic to the element. Further, the left-most numeral of each reference number conveys the FIG. and associated discussion where the reference number is first introduced.
[0003] FIGS. 1A-4 and 7A illustrate example parametric directional propagation environments that are consistent with some implementations of the present concepts.
[0004] FIGS. 5 and 7B-11 show example parametric directional propagation graphs and/or diagrams that are consistent with some implementations of the present concepts.
[0005] FIGS. 6 and 12 illustrate example parametric directional propagation systems that are consistent with some implementations of the present concepts.
[0006] FIGS. 13-16 are flowcharts of example parametric directional propagation methods in accordance with some implementations of the present concepts.
DETAILED DESCRIPTION
Overview
[0007] This description relates to generating convincing sound for video games, animations, and/or virtual reality scenarios. Hearing can be thought of as directional, complementing vision by detecting where (potentially unseen) sound events occur in an environment of a person. For example, standing outside a meeting hall, the person is able to locate an open door by listening for the chatter of a crowd in the meeting hall streaming through the door. By listening, the person may be able to locate the crowd (via the door) even when sight of the crowd is obscured to the person. As the person walks through the door, entering the meeting hall, the auditory scene smoothly wraps around them. Inside the door, the person is now able to resolve sound from individual members of the crowd, as their individual voices arrive at the person’s location. The directionality of the arrival of an individual voice can help the person face and/or navigate to a chosen individual.
[0008] Aside from the initial sound arrival, reflections and/or reverberations of sound are another important part of an auditory scene. For example, while reflections can envelop a listener indoors, partly open spaces may yield anisotropic reflections, which can sound different based on a direction a listener is facing. In either situation, the sound of reflections can reinforce the visual location of nearby scene geometry. For example, when a sound source and listener are close (e.g., within footsteps), a delay between arrival of the initial sound and corresponding first reflections can become audible. The delay between the initial sound and the reflections can strengthen the perception of distance to walls. The generation of convincing sound can include accurate and efficient simulation of sound diffracting around obstacles, through portals, and scattering many times. Stated another way, directionality of an initial arrival of a sound can determine a perceived direction of the sound, while the directional distribution of later arriving reflections of the sound can convey additional information about the surroundings of a listener.
[0009] Parametric directional propagation concepts can provide practical modeling and/or rendering of such complex directional acoustic effects, including movement of sound sources and/or listeners within complex scene geometries. Proper rendering of directionality of an initial sound and reflections can greatly improve the authenticity of the sound in general, and can even help the listener orient and/or navigate in a scene. Parametric directional propagation concepts can generate convincing sound for complex scenes in real-time, such as while a user is playing a video game, or while a colleague is participating in a teleconference. Additionally, parametric directional propagation concepts can generate convincing sound while staying within a practical computational budget.
Example Introductory Concepts
[0010] FIGS. 1A-5 are provided to introduce the reader to parametric directional propagation concepts. FIGS. 1A-3 collectively illustrate parametric directional propagation concepts relative to a first example parametric directional propagation environment 100. FIGS. 1A, 1B, and 3 provide views of example scenarios 102 that can occur in environment 100. FIGS. 4 and 5 illustrate further parametric directional propagation concepts.
[0011] As shown in FIGS. 1A and 1B, example environment 100 can include a sound source 104 and a listener 106. The sound source 104 can emit a pulse 108 (e.g., sound, sound event). The pulse 108 can travel along an initial sound wavefront 110 (e.g., path). Environment 100 can also have a geometry 111, which can include structures 112. In this case, the structures 112 can be walls 113, which can generally form a room 114 with a portal 116 (e.g., doorway), an area outside 118 the room 114, and at least one exterior corner 120. A location of the sound source 104 in environment 100 can be generally indicated at 122, while a location of the listener 106 is indicated at 124.
[0012] As used herein, the term geometry 111 can refer to an arrangement of structures 112 (e.g., physical objects) and/or open spaces in an environment. In some implementations, the structures 112 can cause occlusion, reflection, diffraction, and/or scattering of sound, etc. For instance, in the example of FIG. 1A, the structures 112, such as walls 113 can act as occluders that occlude (e.g., obstruct) sound. Additionally, the structures, such as walls 113 (e.g., wall surfaces) can act as reflectors that reflect sound. Some additional examples of structures that can affect sound are furniture, floors, ceilings, vegetation, rocks, hills, ground, tunnels, fences, crowds, buildings, animals, stairs, etc. Additionally, shapes (e.g., edges, uneven surfaces), materials, and/or textures of structures can affect sound. Note that structures do not have to be solid objects. For instance, structures can include water, other liquids, and/or types of air quality that might affect sound and/or sound travel.
[0013] In the example illustrated in FIG. 1A, two potential initial sound wavefronts 110A of pulse 108 are shown leaving the sound source 104 and propagating to the listener 106 at listener location 124. For instance, initial sound wavefront 110A(1) travels straight through the wall 113 toward the listener 106, while initial sound wavefront 110A(2) passes through the portal 116 before reaching the listener 106. As such, initial sound wavefronts 110A(1) and 110A(2) arrive at the listener from different directions. Initial sound wavefronts 110A(1) and 110A(2) can also be viewed as two different ways to model an initial sound arriving at listener 106. However, in environment 100, where the walls 113 act as an occluder, an initial sound arrival modeled according to the example of initial sound wavefront 110A(1) might produce less convincing sound because the sound dampening effects of the wall may diminish the sound at the listener to below that of initial sound wavefront 110A(2). Thus, a more realistic initial sound arrival might be modeled according to the example of initial sound wavefront 110A(2), arriving toward the right side of listener 106. For instance, in a virtual reality world based on scenario 102A, a person (e.g., listener) looking at a wall with a doorway to their right would likely expect to hear a sound coming from their right side, rather than through the wall. Note that this phenomena is affected by wall composition (e.g., a wall made out of a sheet of paper would not have the same sound dampening effect as a wall made out of 12 inches of concrete, for example). Parametric directional propagation concepts can be used to ensure a listener hears any given initial sound with realistic directionality, such as coming from the doorway in this instance.
[0014] In some cases, the sound source 104 can be mobile. For example, scenario 102A depicts the sound source 104 at location 122A, and scenario 102B depicts the sound source 104 at location 122B. In scenario 102B both the sound source 104 and listener are outside 118, but the sound source 104 is around the exterior corner 120 from the listener 106. Once again, the walls 113 obstruct a line of sight (and/or wavefront travel) between the listener 106 and the sound source 104. Here again a first potential initial sound wavefront 110B(1) can be a less realistic model for an initial sound arrival at listener 106, since it would pass through walls 113. Meanwhile, a second potential initial sound wavefront 110B(2) can be a more realistic model for an initial sound arrival at listener 106.
[0015] Environment 100 is shown again in FIG. 2, including the listener 106 and the walls 113. FIG. 2 depicts an example encoded directional impulse response field 200 for environment 100. The encoded directional impulse response field 200 can be composed of multiple individual encoded directional impulse responses 202, depicted as arrows in FIG. 2. Only three individual encoded directional impulse responses 202 are designated with specificity in FIG. 2 to avoid clutter on the drawing page. In this example, the encoded directional impulse response 202(1) can be related to initial sound wavefront 110A(2) from scenario 102A (FIG. 1A). Similarly, the encoded directional impulse response 202(2) can be related to initial sound wavefront 110B(2) from scenario 102B (FIG. 1B). For instance, notice that the arrow depicting encoded directional impulse response 202(1) is angled similarly to the arrival direction of initial sound wavefront 110A(2) at the listener 106 in FIG. 1A. Similarly, the arrow depicting encoded directional impulse response 202(2) is angled similarly to the arrival direction of initial sound wavefront 110B(2) at the listener 106 in FIG. 1B. In contrast, encoded directional impulse response 202(3) is located to the left of and slightly lower than listener 106 on the drawing page in FIG. 2. Accordingly, the arrow depicting encoded directional impulse response 202(3) is pointing in roughly an opposite direction from either of encoded directional impulse responses 202(1) or 202(2), indicating that a sound emanating from a respective location to encoded directional impulse response 202(3) would arrive at listener 106 from roughly the opposite direction as in either of scenarios 102A or 102B (FIGS. 1A and 1B).
[0016] The encoded directional impulse response field 200, as shown in FIG. 2, can be a visual representation of realistic arrival directions of initial sounds at listener 106 for a sound source 104 at virtually any location in environment 100. Note that in other scenarios, listener 106 could be moving as well. As such, additional encoded directional impulse response fields could be produced for any location of the listener 106 in environment 100. Parametric directional propagation concepts can include producing encoded directional impulse response fields for virtual reality worlds and/or using the encoded directional impulse response fields to render realistic sound for the virtual reality worlds. The production and/or use of encoded directional impulse response fields will be discussed further relative to FIG. 6, below.
[0017] FIGS. 1A-2 have been used to discuss parametric directional propagation concepts related to an initial sound emanating from a sound source 104 and arriving at a listener 106. FIG. 3 will now be used to introduce concepts relating to reflections and/or reverberations of sound relative to environment 100. FIG. 3 again shows scenario 102A, with the sound source 104 at location 122A (as in FIG. 1A). For sake of brevity, not all elements from FIG. 1A will be reintroduced in FIG. 3. In this case, FIG. 3 also includes reflection wavefronts 300. In FIG. 3, only a few reflection wavefronts 300 are designated to avoid clutter on the drawing page.
[0018] Here again, less realistic and more realistic models of reflections can be considered. For instance, as shown in the example in FIG. 3, reflections originating from pulse 108 can be modeled as simply arriving at listener 106 from all directions, indicated with potential reflection wavefronts 300(1). For instance, reflection wavefronts 300(1) can represent simple copies of sound associated with pulse 108 surrounding listener 106. However, reflection wavefronts 300(1) might create an incorrect sense of sound envelopment of the listener 106, as if the sound source and listener were in a shared room.
[0019] In some implementations, reflection wavefronts 300(2) can represent a more realistic model of sound reflections. Reflection wavefronts 300(2) are shown in FIG. 3 emanating from sound source 104 and reflecting off walls 113 inside the room 114. In FIG. 3, some of the reflection wavefronts 300(2) pass out of room 114, through the portal 116, and toward listener 106. Reflection wavefronts 300(2) account for the complexity of the room geometry. As such, the directionality of the sound at listener 106 has been preserved with reflection wavefronts 300(2), in contrast to reflection wavefronts 300(1), which simply surround listener 106. Stated another way, a model of sound reflections that accounts for reflections off of and/or around structures of scene geometry can be more realistic than simply surrounding a listener with non-directional incoming sound.
[0020] In FIG. 3, only a few reflection wavefronts 300(2) are depicted to avoid clutter on the drawing page. Note that true sound propagation may be thought of as similar to ripples in a pond emanating from a point source, rather than individual rays of light, for instance. In FIG. 2, encoded directional impulse response field 200 was provided as a representation of realistic arrival directions of initial sounds at listener 106. A reflection response field can be generated to model the directionality of arrivals of sound reflections. However, it is difficult to provide a similar visual representation for a reflection response field due the inherent complexity of the rippling sound. In some cases, perceptual parameter field can be used to refer to encoded directional impulse response fields related to initial sounds and/or to reflection response fields related to sound reflections. Perceptual parameter fields will be discussed further relative to FIG. 6, below.
[0021] Taken together, realistic directionality of both initial sound arrivals and sound reflections can improve sensory immersion in virtual environments. For instance, proper sound directionality can complement visual perception, such that hearing and vision are coordinated, as one would expect in reality. Further introductory parametric directional propagation concepts will now be provided relative to FIGS. 4 and 5. The examples shown in FIGS. 4 and 5 include aspects of both initial sound arrival(s) and sound reflections for a given sound event.
[0022] FIG. 4 illustrates an example environment 400 and scenario 402. Similar to FIG. 1A, FIG. 4 includes a sound source 404 and a listener 406. The sound source 404 can emit a pulse 408. The pulse 408 can travel along initial sound wavefronts 410 (solid lines in FIG. 4). Environment 400 can also include walls 412, a room 414, two portals 416, and an area outside 418. Sound reflections bouncing off walls 412 are shown in FIG. 4 as reflection wavefronts 420 (dashed lines in FIG. 4). A listener location is generally indicated at 422.
[0023] In this example, the two portals 416 add complexity to the scenario. For instance, each portal presents an opportunity for a respective initial sound arrival to arrive at listener location 422. As such, this example includes two initial sound wavefronts 410(1) and 410(2). Similarly, sound reflections can pass through both portals 416, indicated by the multiple reflection wavefronts 420. Detail regarding the timing of these arrivals will now be discussed relative to FIG. 5.
[0024] FIG. 5 includes an impulse response graph 500. The x-axis of graph 500 can represent time and the y-axis can represent pressure deviation (e.g., loudness). Portions of graph 500 can generally correspond to initial sound(s), reflections, and reverberations, generally indicated at 502, 504, and 506, respectively. Graph 500 can include initial sound impulse responses (IR) 508, reflection impulse responses 510, decay time 512, an initial sound delay 514, and a reflection delay 516.
[0025] In this case, initial sound impulse response 508(1) can correspond to initial sound wavefront 410(1) of scenario 402 (FIG. 4), while initial sound impulse response 508(2) can correspond to initial sound wavefront 410(1). Note that in the example shown in FIG. 4, a path length of initial sound wavefront 410(1) from the sound source 404 to the listener 406 is slightly shorter than a path length of initial sound wavefront 410(2). Accordingly, initial sound wavefront 410(1) would be expected to arrive earlier at listener 406 and sound slightly louder than initial sound wavefront 410(2). (Initial sound wavefront 410(2) could sound relatively quieter since the longer path length might allow more dissipation of sound, for instance.) Therefore, in graph 500, initial sound impulse response 508(1) is further left along the x-axis and also has a higher peak on the y-axis than initial sound impulse response 508(2).
[0026] Graph 500 also depicts the multiple reflection impulse responses 510 in section 504 of graph 500. Only the first reflection impulse response 510 is designated to avoid clutter on the drawing page. The reflection impulse responses 510 can attenuate over time, with peaks generally lowering on the y-axis of graph 500, which can represent diminishing loudness. The attenuation of the reflection impulse responses 510 over time can be represented and/or modeled as decay time 512. Eventually the reflections can be considered reverberations, indicated in section 506.
[0027] Graph 500 also depicts the initial sound delay 514. Initial sound delay 514 can represent an amount of time between the initiation of the sound event, in this case at the origin of graph 500, and the initial sound impulse response 508(1). The initial sound delay 514 can be related to the path length of initial sound wavefront 410(1) from the sound source 404 to the listener 406 (FIG. 4). Therefore, proper modeling of initial sound wavefront 410(1), propagating around walls 412 and through portal 416(1), can greatly improve the realness of rendered sound by more accurately timing the initial sound delay 514. Following the initial sound delay 514, graph 500 also depicts the reflection delay 516. Reflection delay 516 can represent an amount of time between the initial sound impulse response 508(1) and arrival of the first reflection impulse response 510. Here again, proper timing of the reflection delay 516 can greatly improve the realness of rendered sound.
[0028] Additional aspects related to timing of the initial sound impulse responses 508 and/or the reflection impulse responses 510 can also help model realistic sound. For example, timing can be considered when modeling directionality of the sound and/or loudness of the sound. In FIG. 5, arrival directions 518 of the initial sound impulse responses 508 are indicated as arrows corresponding to the 2D directionality of the initial sound wavefronts 410 in FIG. 4. (Directional impulse responses will be described in more detail relative to FIGS. 7A-7C, below.) In some cases, the directionality of initial sound impulse response 508(1), corresponding to the first sound to arrive at listener 406, can be more helpful in modeling realistic sound than the directionality of the second-arriving initial sound impulse response 508(2). Stated another way, in some implementations, the directionality of any initial sound impulse response 508 arriving within the first 1 ms (for example) after the initial sound delay 514 can be used to model realistic sound. In FIG. 5, a time window for capturing the directionality of initial sound impulse responses 508 is shown at initial direction time gap 520. In some cases, the directionality of the initial sound impulse responses 508 from the initial direction time gap 520 can be used to produce an encoded directional impulse response, such as in the examples described above relative to FIG. 2.
[0029] Similarly, initial sound loudness time gap 522 can be used to model how loud the initial sound impulse responses 508 will seem to a listener. In this case, the initial sound loudness time gap 522 can be 10 ms. For instance, the height of peaks of initial sound impulse responses 508 on graph 500 occurring within 10 ms after the initial sound delay 514 can be used to model the loudness of initial sound arriving at a listener. Furthermore, a reflection loudness time gap 524 can be a length of time, after the reflection delay 516, used to model how loud the reflection impulse responses 510 will seem to a listener. In this case, the reflection loudness time gap 524 can be 80 ms. The lengths of the time gaps 520, 522, and 524 provided here are for illustration purposes and not meant to be limiting.
[0030] Any given virtual reality scene can have multiple sound sources and/or multiple listeners. The multiple sound sources (or a single sound source) can emit overlapping sound. For example, a first sound source may emit a first sound for which reflections are arriving at a listener while the initial sound of a second sound source is arriving at the same listener. Each of these sounds can warrant a separate sound wave propagation field (FIG. 2). The scenario can be further complicated when considering that sound sources and listeners can move about a virtual reality scene. Each new location of sound sources and listeners can also warrant a new sound wave propagation field.
[0031] To summarize, proper modeling of the initial sounds and the multiply-scattered reflections and/or reverberations propagating around a complex scene can greatly improve the realness of rendered sound. In some cases, modeling of complex sound can include accurately presenting the timing, directionality, and/or loudness of the sound as it arrives at a listener. Realistic timing, directionality, and/or loudness of sound, based on scene geometry, can be used to build the richness and/or fullness that can help convince a listener that they are immersed in a virtual reality world. Modeling and/or rendering the ensuing acoustic complexity can present a voluminous technical problem. A system for accomplishing modeling and/or rendering of the acoustic complexity is described below relative to FIG. 6.
First Example System
[0032] A first example system 600 of parametric directional propagation concepts is illustrated in FIG. 6. System 600 is provided as a logical organization scheme in order to aid the reader in understanding the detailed material in the following sections.
[0033] In this example, system 600 can include a parametric directional propagation component 602. The parametric directional propagation component 602 can operate on a virtual reality (VR) space 604. In system 600, the parametric directional propagation component 602 can be used to produce realistic rendered sound 606 for the virtual reality space 604. In the example shown in FIG. 6, functions of the parametric directional propagation component 602 can be organized into three Stages. For instance, Stage One can relate to simulation 608, Stage Two can relate to perceptual encoding 610, and Stage Three can relate to rendering 612. Also shown in FIG. 6, the virtual reality space 604 can have associated virtual reality space data 614. The parametric directional propagation component 602 can also operate on and/or produce directional impulse responses 616, perceptual parameter fields 618, and sound event input 620, which can include sound source data 622 and/or listener data 624 associated with a sound event in the virtual reality space 604. In this example, the rendered sound 606 can include rendered initial sound(s) 626 and/or rendered sound reflections 628.
[0034] As illustrated in the example in FIG. 6, at simulation 608 (Stage One), parametric directional propagation component 602 can receive virtual reality space data 614. The virtual reality space data 614 can include geometry (e.g., structures, materials of objects, etc.) in the virtual reality space 604, such as geometry 111 indicated in FIG. 1A. For instance, the virtual reality space data 614 can include a voxel map for the virtual reality space 604 that maps the geometry, including structures and/or other aspects of the virtual reality space 604. In some cases, simulation 608 can include directional acoustic simulations of the virtual reality space 604 to precompute sound wave propagation fields. More specifically, in this example simulation 608 can include generation of directional impulse responses 616 using the virtual reality space data 614. Directional impulse responses 616 can be generated for initial sounds and/or sound reflections. (Directional impulse responses will be described in more detail relative to FIGS. 7A-7C, below.) Stated another way, simulation 608 can include using a precomputed wave-based approach (e.g., pre-computed wave technique) to capture the complexity of the directionality of sound in a complex scene.
[0035] In some cases, the simulation 608 of Stage One can include producing relatively large volumes of data. For instance, the directional impulse responses 616 can be nine-dimensional (9D) directional response functions associated with the virtual reality space 604. For instance, referring to the example in FIG. 1A, the 9 dimensions can be 3 dimensions relating to the position of sound source 104 in environment 100, 3 dimensions relating to the position of listener 106, a time dimension (see the x-axis in the example shown in FIG. 5), and 2 dimensions relating to directionality of the incoming initial sound wavefront 110A(2) to the listener 106. In some cases, capturing the complexity of a virtual reality space in this manner can lead to generation of petabyte-scale wave fields. This can create a technical problem related to data processing and/or data storage. Parametric directional propagation concepts can include techniques for solutions for reducing data processing and/or data storage, example of which are provided below.
[0036] In some implementations, a number of locations within the virtual reality space 604 for which the directional impulse responses 616 are generated can be reduced. For example, directional impulse responses 616 can be generated based on potential listener locations (e.g., listener probes, player probes) scattered at particular locations within virtual reality space 604, rather than at every location (e.g., every voxel). The potential listener locations can be viewed as similar to listener location 124 in FIG. 1A and/or listener location 422 in FIG. 4. The potential listener locations can be automatically laid out within the virtual reality space 604 and/or can be adaptively-sampled. For instance, potential listener locations can be located more densely in spaces where scene geometry is locally complex (e.g., inside a narrow corridor with multiple portals), and located more sparsely in a wide-open space (e.g., outdoor field or meadow). Similarly, potential sound source locations (such as 122A and 122B in FIGS. 1A and 1B) for which directional impulse responses 616 are generated can be located more densely or sparsely as scene geometry permits. Reducing the number of locations within the virtual reality space 604 for which the directional impulse responses 616 are generated can significantly reduce data processing and/or data storage expenses in Stage One.
[0037] In some cases, a geometry of virtual reality space 604 can be dynamic. For example, a door in virtual reality space 604 might be opened or closed, or a wall might be blown up, changing the geometry of virtual reality space 604. In such examples, simulation 608 can receive updated virtual reality space data 614. Solutions for reducing data processing and/or data storage in situations with updated virtual reality space data 614 can include precomputing directional impulse responses 616 for some situations. For instance, opening and/or closing a door can be viewed as an expected and/or regular occurrence in a virtual reality space 604, and therefore representative of a situation that warrants modeling of both the opened and closed cases. However, blowing up a wall can be an unexpected and/or irregular occurrence. In this situation, data processing and/or data storage can be reduced by re-computing directional impulse responses 616 for a limited portion of virtual reality space 604, such as the vicinity of the blast. A weighted cost benefit analysis can be considered when deciding to cover such environmental scenarios. For instance, door opening and closing may be relatively likely to happen in a game scenario and so a simulation could be run for each condition in a given implementation. In contrast, a likelihood of a particular section of wall being exploded may be relatively low, so simulations for such scenarios may not be deemed worthwhile for a given implementation.
[0038] Note that instead of computing directional impulse responses for these dynamic scenarios, some implementations can employ other approaches. For instance, a directional impulse response can be computed with the door closed. The effects of the wall can then be removed to cover the open door scenario. In this instance, in a very high level analogy, the door material may have a similar effect on sound signals as five feet of air space, for example. Thus, to cover the open door condition, the path of the closed door directional impulse responses could be shortened accordingly to provide a viable approximation of the open door condition. In another instance, directional impulse responses can be computed with the door opened. Subsequently, to cover the closed door condition, a portion of initial sound(s) and/or reflections that come from locations on the other side of the now-closed doorway from the listener can be subtracted from and/or left out of a corresponding rendered sound for this instance.
[0039] As shown in FIG. 6, at Stage Two, perceptual encoding 610 can be performed on the directional impulse responses 616 from Stage One. In some implementations, perceptual encoding 610 can work cooperatively with simulation 608 to perform streaming encoding. In this example, the perceptual encoding process can receive and compress individual directional impulse responses 616 as they are being produced by simulation 608. Using streaming encoding techniques can therefore reduce storage expense associated with simulation 608. As such, streaming encoding can allow feasible precomputation on large video game scenes, even up to 1 kHz, for instance.
[0040] In some cases, perceptual encoding 610 can use parametric encoding techniques. Parametric encoding techniques can include selective compression by extracting a few salient parameters from the directional impulse responses 616. In one example, the selected parameters can include 9 dimensions (e.g., 9D parameterization). In this case, parametric encoding can efficiently compress a corresponding 9D directional impulse response function (e.g., the directional impulse responses 616). For example, compression can be performed within a budget of .about.100 MB for large scenes, while capturing many salient acoustic effects indoors and outdoors. Stated another way, perceptual encoding 610 can compress the entire corresponding 9D spatially-varying directional impulse response field, and exploit the associated spatial coherence via transformation to directional parameters. A result can be a manageable data volume in the perceptual parameter fields 618 (such as the encoded directional impulse response field 200 described above relative to FIG. 2). In some cases, perceptual encoding 610 can include storage of the perceptual parameter fields 618, such as in a compact data file. Stated another way, a data file storing perceptual parameter fields 618 can characterize precomputed acoustical properties for the virtual reality space 604.
[0041] Perceptual encoding 610 can also apply parameterized encoding to reflections of sound. For example, parameters for encoding reflections can include delay and direction of sound reflections. The direction of the sound reflections can be simplified by coding in terms of several coarse directions (such as 6 coarse directions) related to a 3D world position (e.g., “above”, “below”, “right”, “left”, “front”, and “back” of a listener, described in more detail below relative to FIG. 11). (It is contemplated that more or fewer directions could be utilized in other implementations. For instance, the two positions right and front could be characterized as three positions: right, front, and right-front). The parameters for encoding reflections can also include a decay time of the reflections, similar to decay time 512 described above relative to FIG. 5. For instance, the decay time can be a 60 dB decay time of sound response energy after an onset of sound reflections.
[0042] Additional examples of parameters that could be considered with perceptual encoding 610 are contemplated. For example, frequency dependence, density of echoes (e.g., reflections) over time, directional detail in early reflections, independently directional late reverberations, and/or other parameters could be considered. An example of frequency dependence can include a material of a surface affecting the sound response when a sound hits the surface (e.g., changing properties of the resultant reflections). In some cases, arrival directions in the directional impulse responses 616 can be independent of frequency. Such independence can persist in the presence of edge diffraction and/or scattering. Stated another way, for a given source and listener position, energy of a directional impulse response in any given transient phase of the sound response can come from a consistent set of directions across frequency. Of course, in other implementations parameter selection can include a sound frequency dependence parameter.
[0043] As shown in FIG. 6, at Stage Three, rendering 612 can utilize the perceptual parameter fields 618 to render sound from a sound event. As mentioned above, the perceptual parameter fields 618 can be obtained in advance and stored, such as in the form of a data file. Rendering 612 can include decoding the data file. When a sound event in the virtual reality space 604 is received, it can be rendered using the decoded perceptual parameter fields 618 to produce rendered sound 606. The rendered sound 606 can include an initial sound(s) 626 and/or sound reflections 628, for example.
[0044] In general, the sound event input 620 shown in FIG. 6 can be related to any event in the virtual reality space 604 that creates a response in sound. For example, a response to a person walking may be footstep sounds, an audience reacting may result in a cheering sound, or a detonating grenade may create an explosion sound. Various types of sound event input 620 are contemplated. For instance, the sound source data 622 could be associated with sound source 104 depicted in FIG. 1A. Similarly, the listener data 624 could be associated with listener 106 depicted in FIG. 1A. The sound source data 622 can be related to a single sound source and/or multiple sound sources, and can include information related to sound loudness. The sound source data 622 and the listener data 624 can provide 3D locations of the sound source(s) and the listener, respectively. The examples of sound event input 620 described here are for illustration purposes and are not meant to be limiting.
[0045] In some implementations, rendering 612 can include use of a lightweight signal processing algorithm. The lightweight signal processing algorithm can apply directional impulse response filters for the sound source in a manner that can be largely computationally cost-insensitive to a number of the sound sources. For example, the parameters used in Stage Two can be selected such that the number of sound sources processed in Stage Three does not linearly increase processing expense. Lightweight signal processing algorithms are discussed in greater detail below related to FIG. 11.
[0046] The parametric directional propagation component 602 can operate on a variety of virtual reality spaces 604. For instance, some examples of a video-game type virtual reality space 604 have been provided above. In other cases, virtual reality space 604 can be an augmented conference room that mirrors a real-world conference room. For example, live attendees could be coming and going from the real-world conference room, while remote attendees log in and out. In this example, the voice of a particular live attendee, as rendered in the headset of a remote attendee, could fade away as the live attendee walks out a door of the real-world conference room.
[0047] In other implementations, animation can be viewed as a type of virtual reality scenario. In this case, the parametric directional propagation component 602 can be paired with an animation process, such as for production of an animated movie. For instance, as visual frames of an animated movie are generated, virtual reality space data 614 could include geometry of the animated scene depicted in the visual frames. A listener location could be an estimated audience location for viewing the animation. Sound source data 622 could include information related to sounds produced by animated subjects and/or objects. In this instance, the parametric directional propagation component 602 can work cooperatively with an animation system to model and/or render sound to accompany the visual frames.
[0048] In another implementation, parametric directional propagation concepts can be used to complement visual special effects in live action movies. For example, virtual content can be added to real world video images. In one case, a real world video can be captured of a city scene. In post-production, virtual image content can be added to the real world video, such as a virtual car skidding around a corner of the city scene. In this case, relevant geometry of the buildings surrounding the corner would likely be known for the post-production addition of the virtual image content. Using the known geometry (e.g., virtual reality space data 614) and a position and loudness of the virtual car (e.g., sound event input 620), the parametric directional propagation component 602 can provide immersive audio corresponding to the enhanced live action movie. For instance, sound of the virtual car can be made to fade away correctly as it rounds the corner, and the sound direction can be spatialized correctly with respect to the corner as the virtual car disappears from view.
[0049] Overall, the parametric directional propagation component 602 can model acoustic effects for arbitrarily moving listener and/or sound sources that can emit any sound signal. The result can be a practical system that can render convincing audio in real-time. Furthermore, the parametric directional propagation component 602 can render convincing audio for complex scenes while solving a previously intractable technical problem of processing petabyte-scale wave fields. As such, parametric directional propagation concepts can handle large, complex 3D scenes within practical RAM and/or CPU budgets. The result can be a practical, fraction-of-a-core CPU system that can produce convincing sound for video games and/or other virtual reality scenarios in real-time.
Second Example Scenario
[0050] FIGS. 7A-7C are intended to aid understanding of the parametric directional propagation concepts in the following sections. For instance, FIGS. 7A-7C introduce some of the annotation used in the following sections. Description of concepts depicted in FIGS. 7A-7C that are similar to concepts depicted in FIGS. 1A-5 will not be repeated for sake of brevity. The example scenario 702 provided in FIGS. 7A-7C is meant to assist the reader and not meant to be limiting.
[0051] FIG. 7A shows an example environment 700, and FIGS. 7A-7C collectively illustrate an example scenario 702, depicting parametric directional propagation concepts. As shown in FIG. 7A, scenario 702 can include a sound source 704, a listener 706, a pulse 708, initial sound wavefronts 710, and a wall 712. In this case wall 712 can act as an occluder 713.
[0052] In FIG. 7A, the location of the sound source 704 can be denoted as x’ for use in the following equations. Also, the location of the listener 706 can be denoted as x in the following equations. In the example illustrated in FIG. 7A, two diffracted initial sound wavefronts 710 are shown leaving the sound source 704 and propagating to the listener 706 around wall 712. Initial sound wavefront 710(1) arrives at listener 706 from direction s.sub.1, while initial sound wavefront 710(2) arrives at listener 706 from direction s.sub.2. Initial sound wavefronts 710(1) and 710(2) also have respective associated loudnesses l.sub.1 and l.sub.2.
[0053] In FIG. 7B, graph 714 shows resulting impulse responses (IR) 716 for the initial sound wavefronts 710 of scenario 702. The x-axis of graph 714 is time and the y-axis is pressure deviation (e.g., loudness), similar to graph 500 in FIG. 5. The speed of sound is represented by c. Note that impulse response 716(1) arrives earlier and has a louder sound than impulse response 716(2). Also, graph 714 depicts a delay 718 between the occurrence of the sound event, which is at the origin of graph 714, and impulse response 716(1). As such, the impulse responses 716 can be represented as p(t; x, x’), accounting for time as well as locations of the sound source 704 and the listener 706.
[0054] In FIG. 7C, diagram 720 shows corresponding directional impulse responses (DIR) 722. The directional impulse responses 722 can be considered to parameterize the impulse responses 716 in terms of both time and direction. For example, diagram 720 shows that 716(1) is received first, from direction s.sub.1, while 716(2) is received later, from direction s.sub.2. For instance, in FIG. 7C directional impulse response 722(1) is shown arriving at the front right side of listener 706, while directional impulse response 722(2) is shown arriving at the front left side of listener 706. As such, the directional impulse responses 722 can be represented as p(s, t; x, x’), accounting for time, the locations of the sound source 704 and the listener 706, and also adding the direction of the incoming sound, s.
Green’s Function and the DIR Field
[0055] In some implementations, sound propagation can be represented in terms of Green’s function, p, representing pressure deviation satisfying the wave equation:
[ 1 c 2 .differential. 2 .differential. t 2 - .gradient. 2 ] p ( t , x , x ’ ) = .delta. ( t ) .delta. ( x - x ’ ) ( 1 ) ##EQU00001##
where c=340 m/s can be the speed of sound and .delta. the Dirac delta function representing a forcing impulse of the partial differential equation (PDE). Holding (x,x’) fixed, p(t; x, x’) can yield the impulse response at a 3D receiver point x due to a spatio-temporal impulse introduced at point x’. Thus, p can form a 6D field of impulse responses capturing global propagation effects, like scattering and diffraction. The global propagation effects can be determined by the boundary conditions which comprise the geometry and materials of a scene. In nontrivial scenes, analytical solutions may be unavailable and p can be sampled via computer simulation and/or real-world measurements. The principle of acoustic reciprocity can suggest that under fairly general conditions, Green’s function can be invariant to interchange of source and receiver: p(t, x, x’)=p(t, x’, x).
[0056] In some implementations, focus can be placed on omni-directional point sources, for example. A response at x due to a source at x’ emitting a pressure signal q(t) can be recovered from Green’s function via a temporal convolution, denoted by ,* as**
q(t;x,x’)={tilde over (q)}(t)*p(t;x,x’) (2)
[0057] In some cases, p(t; x, x’) in any finite, source-free region centered at x can be uniquely expressed as a sum of plane waves, which can form a complete (e.g., near-complete) basis for free-space propagation. The result can be a decomposition into signals propagating along plane wavefronts arriving from various directions, which can be termed the directional impulse response (DIR) (see FIG. 7C). Applying the decomposition at each (x,x’) can yield the directional impulse response field, denoted d(s,t; x, x’), where s parameterizes arrival direction. The DIR field can be computed and/or compactly encoded so that it can be perceptually reproduced for virtually any number of sound sources and associated signals. Furthermore, the computing and encoding can be performed efficiently at runtime.
* Binaural Rendering with the HRTF*
[0058] The response of an incident plane wave field .delta.(t+s.DELTA.x/c) from direction s can be recorded at the left and right ears of a listener (e.g., user, person). .DELTA.x denotes position with respect to the listener’s head centered at x. Assembling this information over all directions can yield the listener’s Head-Related Transfer Function (HRTF), denoted h.sup.L/R (s, t). Low-to-mid frequencies (<1000 Hz) correspond to wavelengths that can be much larger than the listener’s head and can diffract around the head. This can create a detectable time difference between the two ears of the listener. Higher frequencies can be shadowed, which can cause a significant loudness difference. These phenomena, respectively called the interaural time difference (ITD) and the interaural level difference (ILD), can allow localization of sources. Both can be considered functions of direction as well as frequency, and can depend on the particular geometry of the listener’s pinna, head, and/or shoulders.
[0059] Given the HRTF, rotation matrix R mapping from head to world coordinate system, and the DIR field absent the listener’s body, binaural rendering can reconstruct the signals entering the two ears, q.sup.L/R,* via*
q.sup.L/R(t;x,x’)={tilde over (q)}(t)*p.sup.L/R(t;x,x’) (3)
[0060] where p.sup.L/R can be the binaural impulse response
p.sup.L/R(t;x,x’)=.intg..sub.s.sub.2d(s,t;x,x’)*h.sup.L/R(R.sup.-1(s),t)- ds (4)
Here S.sup.2 indicates the spherical integration domain and ds the differential area of its parameterization, s.di-elect cons.S.sup.2. Note that in audio literature, the terms “spatial” and “spatialization” can refer to directional dependence (on s) rather than source/listener dependence (on x and x’).
[0061] A generic HRTF dataset can be used, combining measurements across many subjects. For example, binaural responses can be sampled for N.sub.H=2048 discrete directions {s.sub.j}, j.di-elect cons.[0, N.sub.H-1] uniformly spaced over the sphere. Other examples of HRTF datasets are contemplated for use with the present concepts.
Directional Acoustic Perception
[0062] This section provides a description of human auditory perception relevant to parametric directional propagation concepts, with reference to scenario 702 illustrated in FIGS. 7A-7C. In some cases, the directional impulse response (DIR) can be divided into three successive phases in time: initial arrivals, followed by early reflections, which smoothly transition into late reverberations.
[0063] Precedence. In the presence of multiple wavefront arrivals carrying similar temporal signals, human auditory perception can non-linearly favor the first to determine the primary direction of the sound event. This can be called the precedence effect. Referring to FIG. 7B, if the mutual delay (l.sub.2-l.sub.1)/c is less than 1 ms, for example, humans can perceive a direction intermediate between the two arrivals, termed summing localization, which can represent the temporal resolution of directional hearing. Directions from arrivals lagging beyond 1 ms can be strongly suppressed. In some cases, these arrivals may need to be as much as 10 dB louder to move the perceived direction significantly, called the Haas effect.
[0064] Extracting the correct direction for the potentially weak and multiply-diffracted first arrival thus can be critical for faithfully rendering perceived direction of the sound event. Directionality of the first arrival can form the primary cue guiding the listener to visually occluded sound sources. Parametric directional propagation concepts, such as perceptual encoding 610 introduced relative to FIG. 6, can be designed to extract the onset time robustly. For example, parametric directional propagation concepts can use a short window after onset, such as 1 ms, to integrate the first arrival direction.
[0065] Panning. Summing localization can be exploited by traditional speaker amplitude panning, which can play the same signal from multiple (e.g., four to six) speakers surrounding the physical listener. By manipulating the amplitude of each signal copy, for example, the perceived direction can move smoothly between the speakers. In some cases, summing localization can be exploited to efficiently encode and render directional reflections.
[0066] Echo threshold. When a sound follows the initial arrival after a delay, called the echo threshold, the sound can be perceived as a separate event; otherwise the sound is fused. For example, the echo threshold can vary between 10 ms for impulsive sounds, through 50 ms for speech, to 80 ms for orchestral music. Fusion can be accomplished conservatively by using a 10 ms window, for instance, to aggregate loudness for initial arrivals.
[0067] Initial time delay gap. In some cases, initial arrivals can be followed by stronger reflections. Stronger reflections can be reflected off big features like walls. Stronger reflections can also be mixed with weaker arrivals scattered from smaller, more irregular geometry. If the first strong reflection arrives beyond the echo threshold, its delay can become audible. The delay can be termed the initial time delay gap, which can have a perceptual just-noticeable-difference of about 10 ms, for example. Audible gaps can arise easily, such as when the source and listener are close, but perhaps far from surrounding geometry. Parametric directional propagation concepts can include a fully automatic technique for extracting this parameter that produces smooth fields. In other implementations, this parameter can be extracted semi-manually, such as for a few responses.
[0068] Reflections. Once reflections begin arriving, they can typically bunch closer than the echo threshold due to environmental scattering, and/or can be perceptually fused. A value of 80 ms, for example, following the initial time delay gap, can be used as the duration of early reflections. An aggregate directional distribution of the reflections can convey important detail about the environment around the listener and/or the sound source. The ratio of energy arriving horizontally and perpendicular to the initial sound is called lateralization and can convey spaciousness and apparent source width. Anisotropy in reflected energy arising from surfaces close to the listener can provide an important proximity cue. When a sound source and listener are separated by a portal, reflected energy can arrive mostly through the portal and can be strongly anisotropic, localizing the source to a different room than that of the listener. This anisotropy can be encoded in the aggregate reflected energy.
[0069] Reverberation. As time progresses, scattered energy can become weaker. Also, scattered energy can arrive more frequently so that the tail of the response can resemble decaying noise. This can characterize the (late) reverberation phase. A decay rate of this phase can convey overall scene size, which can be measured as RT60, or the time taken for energy to decay by 60 dB. The aggregate directional properties of reverberation can affect listener “envelopment”. In some cases, the problem can be simplified by assuming that the directional distribution of reverberation is the same as that for reflections.
Additional Example Implementations
[0070] Additional example implementations of parametric directional propagation concepts are described below and illustrated in FIGS. 8A-11. In these additional example implementations, the parametric directional propagation concepts are organized into Stage One, Stage Two, and Stage Three as introduced in FIG. 6. The organization of the parametric directional propagation concepts in this manner is simply to aid the reader and is not meant to be limiting.
Stage One–Simulation
[0071] The additional example implementations described in this section can be similar to the Stage One parametric directional propagation concepts shown in FIG. 6. For example, additional example implementations described here can include examples of simulation 608. In some cases, simulation 608 can include performing directional analysis of sound fields. One example of directional analysis of sound fields can include plane wave decomposition (PWD), described below. Another example of directional analysis of sound fields, acoustic flux density, will also be described.
Plane Wave Decomposition (PWD)
[0072] The annotation in this section follows the annotation introduced above relative to FIGS. 7A-7C. In some implementations, .DELTA.x can denote relative position in a volume centered around the listener at x where the local pressure field is to be directionally analyzed. For any source position x’ (hereafter dropped), the local IR field can be denoted by p(.DELTA.x,t) and the Fourier transform of the time-dependent signal for each .DELTA.x by P(.DELTA.x, w) .ident.F[p(.DELTA.x, t)]. In general, the Fourier transform of g(t) can be denoted as G(.omega.) .ident.F[g(t)] .ident..intg..sub.-.infin..sup..infin.g(t)e.sup.i.omega.t dt, assuming time-harmonic dependence of the form e.sup.-i.omega.t. Angular frequency .omega. can be dropped from the notation in the following; the directional analysis we describe can be performed for each value of .omega.. In some cases, parameterizing in terms of spherical coordinates, .DELTA.x=rs(.theta., .PHI.) where s(.theta., .PHI.) .ident.(sin .theta. cos .PHI., sin .theta. sin .PHI., cos .PHI.) represents a unit direction and r .ident..parallel..DELTA.x.parallel.. This coordinate system can yield orthogonal solutions (modes) of the Helmholtz equation,* which can allow representation of the solution P in any source-free region via*
P(.DELTA.x)=.SIGMA..sub.l,mP.sub.l,mb.sub.l(Kr)Y.sub.l,m(s) (5)
where the mode coefficients P.sub.l,m can determine the field, perhaps uniquely. The function b.sub.l can be the (real-valued) spherical Bessel function; K.ident..omega./c.ident.2.pi.v/c can be the wavenumber where v is the frequency. The notation .SIGMA..sub.l,m.ident..SIGMA..sub.l=0.sup.-1.SIGMA..sub.m=-1.sup.1 can indicate a sum over all integer modes where l.di-elect cons.[0,n-1] can be the order, m.di-elect cons.[-1,1] can be the degree, and n can be the truncation order. Lastly, Y.sub.l,m can be the n.sup.2 complex spherical harmonic (SH)* basis functions defined as*
Y l , m ( s ) .ident. 2 l + 1 4 .pi. ( 1 - m ) ! ( l + m ) ! P l , m ( cos .theta. ) e im .phi. ( 6 ) ##EQU00002##
where P.sub.l,m can be the associated Legendre function.
[0073] Diffraction limit. The sound field can be observed by an ideal microphone array within a spherical region .parallel..DELTA.x.parallel..ltoreq.<r.sub.0 which can be free of sources and boundary. The mode coefficients can be estimated by inverting the linear system represented by Equation (5) to find the unknown (complex) coefficients P.sub.l,m in terms of the known (complex) coefficients of the sound field, P(.DELTA.x). The angular resolution of any wave field sensor can be fundamentally restricted by the size of the observation region, which can be the diffraction limit. This manifests mathematically as an upper limit on the SH order n dependent on r.sub.0 which can keep the linear system well-conditioned.
[0074] Such analysis can be standard in fast multipole methods for 3D wave propagation and/or for processing output of spherical microphone arrays. In some cases, compensation can be made for the scattering that real microphone arrays introduce in the act of measuring the wave field. Synthetic cases can avoid these difficulties since “virtual microphones” can simply record pressure without scattering. Directional analysis of sound fields produced by wave simulation has previously been considered a difficult technical problem. One example solution can include low-order decomposition. Another example solution can include high-order decomposition that can sample the synthetic field over the entire 3D volume .parallel..DELTA.x.parallel..ltoreq.r.sub.0 rather than just its spherical surface, estimating the modal coefficients P.sub.l,m via a least-squares fit to the over-determined system, see Equation (5).
[0075] In some implementations, a similar technique can be followed,* using a frequency-dependent SH truncation order of*
n ( .omega. , r 0 ) .ident. [ Kr 0 e 2 ] ( 7 ) ##EQU00003##
where e.ident.exp(1).
[0076] Solution In some cases, regularization can be unnecessary. For example, a selected solver can be different from finite-difference time-domain (FDTD). In some cases, the linear system in Equation (5) can be solved using QR decomposition to obtain P.sub.l,m. This recovers the (complex) directional amplitude distribution of plane waves that (potentially) best matches the observed field around x, known as the plane wave decomposition,
D l , m = i l 4 .pi. P l , m ( 8 ) ##EQU00004##
Assembling these coefficients over all co and/or transforming from frequency to time domain can reconstruct the directional impulse response (DIR)=F.sup.-1 [D(s,.omega.)]* where*
D(s,.omega.).ident..SIGMA..sub.l,mD.sub.l,m(.omega.)Y.sub.l,m(s) (9)
[0077] Binaural impulse responses for a PWD reference can be generated by Equation (4), performing convolution in frequency space. For each angular frequency .omega., the spherical integral can be computed, multiplying the frequency-space PWD with each of the N.sub.H (e.g., 2048)* spherical HRTF responses transformed to the frequency domain via*
p.sup.L/R(.omega.)=.SIGMA..sub.j=0.sup.N.sup.H.sup.-1D(R(s.sub.j),.omega- .)H.sup.L/R(s.sub.j,.omega.) (10)
where H.sup.L/R .ident.F[h.sup.L/R] and P.sup.L/R .ident.F[p.sup.L/R], followed by a transform to the time domain to yield p.sup.L/R(t).
Acoustic Flux Density
[0078] In some cases, directional analysis of sound fields can be performed using acoustic flux density to construct directional impulse responses. For example, suppressing source location x, the impulse response can be a function of receiver location and time representing (scalar) pressure variation, denoted p(x, t). The flux density, f (x, t), can be defined as the instantaneous power transport in the fluid over a differential oriented area, which can be analogous to irradiance in optics.* It can follow the relation*
f ( x , t ) = p ( x , t ) v ( x , t ) , v ( x , t ) = - 1 .rho. 0 .intg. - .infin. t .gradient. p ( x , .tau. ) d .tau. ( 11 ) ##EQU00005##
[0079] where v is the particle velocity and .rho..sub.0 is the mean air density (1.225 kg/m.sup.3). Central differences on immediate neighbors in the simulation grid can be used to compute spatial derivatives for .gradient.p, and midpoint rule over simulated steps for numerical time integration.
[0080] Flux density (or simply, flux) can estimate the direction of a wavefront passing x at time t. When multiple wavefronts arrive simultaneously, PWD can tease apart their directionality (up to angular resolution determined by the diffraction limit) while flux can be a differential measure, which can merge their directions.
[0081] To reconstruct the DIR from flux for a given time t (and suppressing x), the unit vector {circumflex over (f)}(t) .ident.f (t)/.parallel.f(t).parallel. can be formed. The corresponding pressure value p(t) can be associated to that single direction,* yielding*
d(s,t)=p(t).delta.(s-{circumflex over (f)}(t)) (12)
[0082] Note that this can be a nonlinear function of the field, unlike Equation (9). Binaural responses can be computed using the spherical integral in Equation (4), for example by plugging in the DIR d(s, t) from Equation (12) and doing a temporal Fourier transform,* which can simplify to*
p.sup.L/R(.omega.)=.intg..sub.0.sup..infin.p(t)e.sup.i.omega.tH.sup.L/R(- R.sup.-1({circumflex over (f)}(t)),.omega.)dt (13)
The time integral can be carried out at the simulation time step, and HRTF evaluations can employ nearest-neighbor lookup. The result can then be transformed back to binaural time-domain impulse responses, which can be used for comparing flux with PWD.
[0083] Results using flux for directional analysis of sound fields show that IR directionality can be similar for different frequencies. Consequently, energy over many simulated frequencies can be averaged to save computational expense. Therefore, in some cases relatively little audible detail may be lost when using frequency-independent encoding of directions derived from flux. More detail regarding the use of flux to extract DIR perceptual parameters will be provided relative to the discussion for Stage Two, below.
Precomputation
[0084] In some implementations, ordinary restrictions on listener position (such as atop walkable surfaces) can be exploited by reciprocal simulation to significantly shrink precompute time, runtime memory, and/or CPU needs. Such simulation can exchange sound source and/or listener position between precomputation and runtime so that runtime sound source and listener correspond respectively to (x,x’) in Equation (1). The first step can be to generate a set of probe points {x} with typical spacing of 3-4 m. For each probe point in {x’}, 3D wave simulation can be performed using a wave solver in a volume centered at the probe (90 m.times.90 m.times.30 m in our tests), thus yielding a 3D slice p(x, t; x’) of the full 6D field of acoustic responses, for example. In some cases, the constrained runtime listener position can reduce the size of {x’} significantly. This framework can be extended to extract and/or encode directional responses.
[0085] Reciprocal Dipole Simulation. Acoustic flux density, or flux (described above), can be used to compute the directional response, which can require the spatial derivative of the pressure field for the runtime listener at x’. But the solver can yield p(x, t; x’); i.e., the field can vary over runtime source positions (x) instead. In some implementations, a solution can include computing flux at the runtime listener location while retaining the benefits of reciprocal simulation. For some grid spacing h, .gradient..sub.x’p(x, x’).apprxeq.[P(x; x’+h)-p(x; x’-h)]/2 h can be computed via centered differencing. Due to the linearity of the wave equation, this can be obtained as response to the spatial impulse [.delta.(x-x’-h)-.delta.(x-x’+h)]/2 h. In other words, flux at a fixed runtime listener (x’) due to a 3D set of runtime source locations (x) can be obtained by simulating discrete dipole sources at x’. The three Cartesian components of the spatial gradient can require three separate dipole simulations. In some cases, the above argument can extend to higher-order derivative approximations. In other cases, centered differences can be sufficient.
[0086] Time integration. To compute particle velocity via Equation (11), the time integral of the gradient .intg..sub.t .gradient.p can be used, which can commute to .gradient..intg..sub.t p. Since the wave equation can be linear, .intg..sub.t p can be computed by replacing the temporal source factor in Equation (1) with .intg..sub.t .delta.(t)=H(t), the Heaviside step function. The full source term can therefore be H(t)[.delta.(x-x’+h)-.delta.(x-x’-h)]/2.rho..sub.0 h, for which the output of the solver can directly yield particle velocity, v(t, x; x’). The three dipole simulations can be complemented with a monopole simulation with source term .delta.(t).delta.(x-x’), which can result in four simulations to compute the response fields {p(t, x; x’), f(t, x; x’)}.
[0087] Bandlimiting. Discrete simulation can be used to bandlimit the forcing impulse in space and time. The cutoff can be set at v.sub.m=1000 Hz, requiring a grid spacing of h=3/8 c.ident.1/2 c/vM=12.75 cm. In some cases, this can discard the highest 25% of the simulation’s entire Nyquist bandwidth v.sub.M due to its large numerical error. DCT spatial basis functions in the present solver (adaptive rectangular decomposition can naturally convert delta functions into sincs bandlimited at wavenumber K=.pi./h, simply by emitting the impulse at a single discrete cell, for example. The source pulse can also be temporally bandlimited, denoted {tilde over (.delta.)}(t). Temporal source factors can be modified to {tilde over (.delta.)}(t) and H(t){tilde over (.delta.)}(t) for the monopole and dipole simulations respectively. Note that {tilde over (.delta.)} will be defined below in the discussion relative to Stage Two. Quadrature for the convolution H(t){tilde over (.delta.)}(t) can be precomputed to arbitrary accuracy and input to the solver.
[0088] Streaming. In some cases, precomputed wave simulation can use a two stage approach in which the solver writes a massive spatio-temporal wave field to disk which the encoder can then read and process. However, disk I/O can bottleneck the processing of large game scenes, becoming impractical for mid-frequency (v.sub.m=1000 Hz) simulations. It also complicates cloud computing and GPU acceleration.
[0089] In some implementations, referring to Stage Two (FIG. 6), perceptual encoding 610 can include use of a streaming encoder which can execute entirely in RAM. Processing for each runtime listener location x’ can proceed independently across machines. For example, for each x’, four instances of the wave solver can be run simultaneously to compute monopole and dipole simulations. The time-domain wave solver can naturally proceed as discrete updates to the global pressure field. At each time step t, 3D pressure and flux fields can be sent in memory to the encoder coprocess which can extract the parameters. The encoder can be single instruction, multiple data (SIMD) across all grid cells, for instance. In some cases, the encoder may not be able to access field values beyond the current simulation time t. In other cases, the entire time response may be available. Furthermore, the encoder can retain intermediate state from prior time steps (such as accumulators); this per-cell state can be minimized to keep RAM requirements practical. In short, the encoder can be causal with limited history. Further details regarding design of an encoder will be provided in the discussion of Stage Two, below.
[0090] Cost. In some cases, simulations performed for v.sub.m=1000 Hz can have |{x}|=120 million cells. The total size of the discrete field across a simulation duration of 0.5 s can be 5.5 TB, which could take 30 hours just for disk I/O at 100 MB/s, for example. In contrast, parametric directional propagation concepts can execute in 5 hours taking 40 GB RAM with no disk use. Stated another way, in some cases precomputation using parametric directional propagation concepts at v.sub.m=500 Hz can be 3 times faster, despite three additional dipole simulation and/or directional encoding.
[0091]* Stage Two–Perceptual Encoding*
[0092] The additional example implementations described in this section can be similar to the Stage Two parametric directional propagation concepts shown in FIG. 6. For example, additional example implementations described here can include examples of perceptual encoding 610.
[0093] At each time step t, the encoder can receive {p(t,x; x’), f(t,x; x’)} representing the pressure and flux at runtime listener x’ due to a 3D field of possible runtime source locations, x, for which it performs independent, streaming processing. Positions can be suppressed, as described below.
[0094] Notation. In some cases, t.sub.k .ident.k.DELTA.t denotes the k.sup.th time sample with time step .DELTA.t, where .DELTA.t=0.17 ms for v.sub.m=1000 Hz. First-order Butterworth filtering with cutoff frequency v.sub.m in Hz can be denoted .sub.v. A signal g(t) filtered through can be denoted *g. A corresponding cumulative time integral can be denoted .intg.g.ident..intg..sub.0.sup.t g(.tau.) d.tau..
Equalized Pulse
[0095] Encoder inputs {p(t), f (t)} can be responses to an impulse {tilde over (.delta.)}(t) provided to the solver. In some cases, an impulse function (FIG. 8A-8C) can be designed to conveniently estimate the IR’s energetic and directional properties without undue storage or costly convolution. FIG. 8A shows an equalized pulse {tilde over (.delta.)}(t) for v.sub.l=125 Hz, v.sub.m=1000 Hz and v.sub.M=1333 Hz. As shown in FIG. 8A, the pulse can be designed to have a sharp main lobe (e.g., .about.1 ms) to match auditory perception. As shown in FIG. 8B, the pulse can also have limited energy outside [v.sub.l, v.sub.m], with smooth falloff which can minimize ringing in time domain. Within these constraints, the pulse can be designed to have matched energy (to within .+-.3 dB) in equivalent rectangular bands centered at each frequency, as shown in FIG. 8C.
[0096] In some implementations, the pulse can satisfy one or more of the following Conditions:
[0097] (1) Equalized to match energy in each perceptual frequency band. .intg.p.sup.2 thus directly estimates perceptually weighted energy averaged over frequency.
[0098] (2) Abrupt in onset, critical for robust detection of initial arrival. Accuracy of about 1 ms or better, for example, when estimating the initial arrival time, matching auditory perception.
[0099] (3) Sharp in main peak with a half-width of less than 1 ms, for example. Flux merges peaks in the time-domain response; such mergers can be similar to human auditory perception.
[0100] (4) Anti-aliased to control numerical error, with energy falling off steeply in the frequency range [v.sub.m,v.sub.M].
[0101] (5) Mean-free. In some cases, sources with substantial DC energy can yield residual particle velocity after curved wavefronts pass, making flux less accurate. Reverberation in small rooms can also settle to a non-zero value, spoiling energy decay estimation.
[0102] (6) Quickly decaying to minimize interference between flux from neighboring peaks. Note that abrupt cutoffs at P.sub.m for Condition (4) or at DC for Condition (5) can cause non-compact ringing.
[0103] Human pitch perception can be roughly characterized as a bank of frequency-selective filters, with frequency-dependent bandwidth known as Equivalent Rectangular Bandwidth (ERB). The same notion underlies the Bark psychoacoustic scale consisting of 24 bands equidistant in pitch and utilized by the PWD visualizations described above.
[0104] A simple model for ERB around a given center frequency v in Hz is given by B(v).ident.24.7 (4.37 v/1000+1). Condition (1) above can then be met by specifying the pulse’s energy spectral density (ESD) as 1/B(v). However, in some cases this can violate Conditions (4) and (5). Therefore,* the modified ESD can be substituted*
E ( v ) = 1 B ( v ) 1 1 + 0.55 ( 2 iv / v h ) - ( v / v h ) 2 4 1 1 + iv / v l 2 ( 14 ) ##EQU00006##
where v.sub.1=125 Hz can be the low and v.sub.h=0.95 v.sub.m the high frequency cutoff. The second factor can be a second-order low-pass filter designed to attenuate energy beyond v.sub.m per Condition (4) while limiting ringing in the time domain via the tuning coefficient 0.55 per Condition (6). The last factor combined with a numerical derivative in time can attenuate energy near DC, as explained more below.
[0105] A minimum-phase filter can then be designed with E (v) as input. Such filters can manipulate phase to concentrate energy at the start of the signal, satisfying Conditions (2) and (3). To make DC energy 0 per Condition (5), a numerical derivative of the pulse output can be computed by minimum-phase construction. The ESD of the pulse after this derivative can be 4.pi..sup.2v.sup.2E(v). Dropping the 4.pi..sup.2 and grouping the v.sup.2 with the last factor in Equation (14) can yield v.sup.2/|1+iv/v.sub.l|.sup.2, representing the ESD of a first-order high-pass filter with 0 energy at DC per Condition (5) and smooth tapering in [0,v.sub.l] which can control the negative side lobe’s amplitude and width per Condition (6). The output can be passed through another low-pass L.sub.vh to further reduce aliasing, yielding the final pulse shown in FIG. 8A.
Initial Delay (Onset), .tau..sub.0
[0106] FIGS. 9A and 9B illustrate processing with an actual response from an actual video game scene. Initial delay can be similar to the initial sound delay 514 described relative to FIG. 5, above). The solver can fix the emitted pulse’s amplitude so the received signal at 1 m distance (for example) in the free field can have unit energy, f p.sup.2=1. In some cases, initial delay could be computed by comparing incoming energy p.sup.2 to an absolute threshold. In other cases, such as occluded cases, a weak initial arrival can rise above threshold at one location and stay below at a neighbor, which can cause distracting jumps in rendered delay and direction at runtime.
[0107] In some cases, in a robust detector D, initial delay can be computed as its first moment, .tau..sub.0 .ident.tD(t)/.intg.D(t),* where*
D ( t ) .ident. [ d dt ( E ( t ) E ( t - .DELTA. t ) + ) ] n ( 15 ) ##EQU00007##
Here, E(t) .ident..sub.vm/4*.intg.P.sup.2 and .di-elect cons.=10.sup.-11. E can be a monotonically increasing, smoothed running integral of energy in the pressure signal. The ratio in Equation (15) can look for jumps in energy above a noise floor . The time derivative can then peak at these jumps and descend to zero elsewhere, for example, as shown in FIGS. 9A and 9B. (In FIGS. 9A and 9B, D is scaled to span the y-axis.) In some cases, for the detector to peak, energy can abruptly overwhelm what has been accumulated so far. The detector’s peakedness can be controlled using n=2, for example.
[0108] This detector can be streamable. .intg.p.sup.2 can be implemented as a discrete accumulator. can be a recursive filter, which can use an internal history of one past input and output, for example. One past value of E can be used for the ratio, and one past value of the ratio kept to compute the time derivative via forward differences. However, computing onset via first moment can pose a problem as the entire signal must be processed to produce a converged estimate.
[0109] The detector can be allowed some latency, for example 1 ms for summing localization. A running estimate of the moment can be kept, .SIGMA..sub.0.sup.k=.intg..sub.0.sup.t.sup.ktD(t)/.intg..sub.0.sup.t.sup.- k D(t) and a detection can be committed .tau..sub.0.rarw..SIGMA..sub.0.sup.k when it stops changing; that is, the latency can satisfy t.sub.k-1-.tau..sub.0.sup.k-1<1 ms and t.sub.k-.SIGMA..sub.0.sup.k>1 ms (see the dotted line in FIGS. 9A and 9B). In some cases, this detector can trigger more than once, which can indicate the arrival of significant energy relative to the current accumulation in a small time interval. This can allow the last to be treated as definitive. Each commit can reset the subsequent processing state as necessary.
[0110] Initial Loudness and Direction, (L,s.sub.0)
[0111] Initial loudness and its 3D direction can be estimated via
L.ident.10 log.sub.10.intg..sub.0.sup..SIGMA..sup.0.sup.”p.sup.2(t)dt,s.sub.0.ident- ..intg..sub.0.sup..SIGMA..sup.0.sup.’f(t)dt (16)
where .tau..sub.0’=t.sub.0+1 ms and .SIGMA..sub.0”=t.sub.0+10 ms. In some cases, only the (unit) direction of s.sub.0 may be retained as the final parameter. This can assume a simplified model of directional dominance where directions outside a 1 ms window can be suppressed, but their energy can be allowed to contribute to loudness for 10 ms, for instance.
Reflections Delay, t.sub.1
[0112] Reflections delay can be the arrival time of the first significant reflection. Its detection can be complicated by weak scattered energy which can be present after onset. A binary classifier based on a fixed amplitude threshold can perform poorly. Instead, the duration of silence in the response can be aggregated, where “silence” is given a smooth definition discussed shortly. Silent gaps can be concentrated right after the initial arrivals, but before reflections from surrounding geometry have become sufficiently dense in time from repeated scattering. The combined duration of this silence can be a new parameter roughly paralleling the notion of initial time delay gap (see the reflection delay 516 described relative to FIG. 5, above).
[0113] FIGS. 10A and 10B show estimation which can start after initial arrivals end at .SIGMA..sub.0”. The duration of silence can be initialized as .DELTA.{tilde over (.tau.)}.sub.1=10 ms, for example. The reflections delay estimate can be defined as {tilde over (.tau.)}.sub.1.ident..SIGMA..sub.0+.DELTA.{tilde over (.tau.)}.sub.1. A threshold for silence relative to the initial sound’s peak energy can be defined as .di-elect cons..sub.r=-40 dB+10 log.sub.10(max{P.sup.2 (t)}, t.di-elect cons.[0, .SIGMA..sub.0”]). The incoming energy can be smoothed and loudness can be computed as 10 log.sub.10(.sub.250*P.sup.2) then passed through the linear mapping [ .sub.r, .sub.r+20 dB].fwdarw.[1,0]. This can produce a weight, a.sub.r that is clamped to [0, 1], with a.sub.r=1 indicating complete silence. The silence duration estimate can then be updated as .DELTA..rarw..DELTA.{tilde over (.tau.)}.sub.1+a.sub.r.DELTA.t. The estimate can be considered converged when the latency t- increases above 10 ms (for example) for the first time, at which point t.sub.1.rarw. can be set.
Directional Reflection Loudnesses, R.sub.J
[0114] In some cases, loudness and directionality of reflections can be aggregated for 80 ms (for example) after the reflections delay (.tau..sub.1). In some cases, waiting for energy to start arriving after reflecting from proximate geometry can give a relatively consistent energy estimate. In other cases, energy can be collected for a fixed interval after direct sound arrival (.tau..sub.0). Directional energy can be collected using coarse cosine-squared basis functions which can be fixed in world space and can be centered around the coordinate axes S.sub.J,* yielding six directional loudnesses indexed by J*
R.sub.J.ident.10 log.sub.10.intg..sub..tau..sub.0.sub.+10 ms.sup..tau..sup.1.sup.+80 msp.sup.2(t)max.sup.2(t)S.sub.J,0)dt (17)
Since |{circumflex over (f)}(t)|=1, this directional basis can form a partition of unity which preserves overall energy, and in some cases does not ring to the opposite hemisphere like low-order spherical harmonics. This approach can allow flexible control of RAM and CPU rendering cost which may not be afforded by spherical harmonics. For example, elevation information could be omitted by summing energy in .+-.z equally in the four horizontal directions. Alternatively, azimuthal resolution could be preferentially increased with suitable weights.
Decay Time,* T*
[0115] In some cases, impulse response decay time can be computed as a backward time integral of p.sup.2 but a streaming encoder can lack access to future values. With appropriate causal smoothing, robust decay estimation can be performed via online linear regression on the smoothed loudness 10 log.sub.10(.sub.20*p.sup.2). In this case, estimation of separate early and late decays can be avoided, instead computing an overall 60 dB (for example) decay slope starting at the reflection delay, .tau..sub.i.
Spatial Compression
[0116] The preceding processing can result in a set of 3D parameter fields which can vary over x for a fixed runtime listener location x’. In this case, each field can be spatially smoothed and subsampled on a uniform grid with 1.5 m resolution, for example. Fields can then be quantized and each z-slice can be sent through running differences followed by a standard byte-stream compressor (Zlib). The novel aspect can be treating the vector field of primary arrival directions, s.sub.0(x; x’).
[0117] Singularity. s.sub.0(x; x’) can be singular at |x-x’|=0. In some cases, small numerical errors in computing the spatial derivative for flux can yield large angular error when |x-x’| is small. Denoting the line of sight direction as s.sub.0’.ident.(x’-x)/|x’-x|, the encoded direction can be replaced with s.sub.0(x; x’).rarw.s.sub.0’ when the distance is small and propagation is safely unoccluded; i.e., if |x-x’|<2 m and L(x; x’)>-1 dB, for example. When interpolating, the singularity-free field s.sub.0-s.sub.0’ can be used, the s.sub.0’ can be added back to the interpolated result, and a renormalization to a unit vector can be performed.
[0118] Compressing directions. Since s.sub.0 is a unit vector, in some cases encoding its 3D Cartesian components can waste memory and/or yield anisotropic angular resolution. This problem can also arise when compressing normal maps for visual rendering. A simple solution can be tailored which first transforms to an elevation/azimuth angular representation: s.sub.0.fwdarw.(.theta., .PHI.) Simply quantizing azimuth, .PHI., can result in artificial incoherence when .PHI. jumps between 0 and 2.pi.. In some cases, only running differences may be needed for compression and can use the update rule .DELTA..PHI..rarw.arg min.sub.x.di-elect cons.{.DELTA..PHI.,.DELTA..PHI.+2.pi.,.DELTA..PHI.-2.pi.}|x|. This can encode the signed shortest arc connecting the two input angles, avoiding artificial jumps.
[0119] Quantization. Discretization quanta for {.tau..sub.0, L, s.sub.0, .tau..sub.1, R.sub.*,T} can be given by {2 ms, 2 dB, (6.0.degree.),2.8.degree., 2 ms, 3 dB, 3}, for example. The primary arrival direction, s.sub.0, can list quanta for (.theta., .PHI.) respectively. Decay time T can be encoded as log.sub.1.05(T).
Stage Three–Rendering
[0120] The additional example implementations described in this section can be similar to the Stage Three parametric directional propagation concepts shown in FIG. 6.
[0121] FIG. 11 shows example schematic rendering circuitry 1100. FIG. can include sound event inputs 1102. For purposes of explanation, in FIG. 11 schematic rendering circuitry 1100 can be organized generally as performing per-emitter processing 1104 and global processing 1106, to produce directional rendering 1108 for a listener 1110. Here, per-emitter processing can refer to processing sound event input(s) from individual sound events (e.g., 1102(1) and 1102(2)), which may also originate from separate sound sources. In some implementations, rendering of sound by schematic rendering circuitry 1100 can be similar to rendering 612 in FIG. 6. For example, with reference to FIG. 6, schematic rendering circuitry 1100 can perform runtime rendering 612 of sound event inputs 620 utilizing the perceptual parameter fields 618 produced by Stage Two perceptual encoding 610.
[0122] The right portion of FIG. 11 (designated generally as directional rendering 1108) depicts listener 1110 and directionality of incoming rendered sounds. For example, FIG. 11 includes incoming initial sound directions 1112(1) of a rendered initial sound (such as rendered initial sound 626, FIG. 6), corresponding to sound event input 1102(1). FIG. 11 also depicts world directions 0, 1, 2, 3, 4, and 5 arranged around the listener 1110. In some cases, the world directions can be considered incoming sound reflection directions 1114 of rendered sound reflections (such as rendered sound reflections 628, FIG. 6) (only one is designated to avoid clutter on the drawing page).
[0123] In some implementations, initial sounds associated with sound event inputs 1102 can be rendered with per-emitter processing 1104, using the perceptual parameter fields (e.g., 618 described above relative to FIG. 6). Stated another way, the initial sounds can be rendered individually per sound event. Also, some aspects of sound reflections of the sound event inputs 1102 can be processed on a per-emitter (e.g., per sound event) basis, also using the perceptual parameter fields 618.
[0124] In some cases, the perceptual parameter fields 618 can be stored in a data file (introduced above relative to FIG. 6), which can be accessed and/or used by the schematic rendering circuitry 1100 to render realistic sound. In FIG. 11, the use of perceptual parameter fields is apparent through various elements shown in the per-emitter processing 1104 portion of schematic rendering circuitry 1100. In some cases, the perceptual parameter fields can contain and/or be used to compute any of: onset delay, initial loudness, initial direction, decay time, reflections delay, reflections loudness, and/or other variables, as described above relative to the description of Stage Two, for example.
[0125] In some implementations, at least some data related to sound reflections from multiple sound event inputs 1102 can be aggregated (e.g., summed) in the global processing 1106 portion of FIG. 11. In some cases, per-emitter processing 1104 can be designed to have relatively lower processing cost as compared to the global processing 1106. Alternatively or additionally, where global processing includes aggregation of at least some aspects of the sound reflections from multiple sound event inputs, an overall cost of global processing for multiple sound event inputs can be reduced. As such, global processing can be used to lower sensitivity of processing expenses in Stage Three to a number of sound event inputs and/or sound sources (e.g., increasing number of sound sources only slightly increases global processing resources).
[0126] Note that FIG. 11 presents an abbreviated view of this example of global processing 1106, in that only 6 of 18 canonical filters (e.g., directional canonical filters) of global processing 1106 are shown to avoid clutter on the drawing page. As noted, in this example, there can be three canonical filters for each world direction 0, 1, 2, 3, 4, and 5 (e.g., sound reflection direction 1114) for a total of 18 canonical filters. However, a potentially important aspect of the global processing 1106 is that increasing the number of sound sources has relatively minimal impact on the computing resources utilized to achieve global processing. For instance, a single sound source can generate a sound event that approaches the listener from direction 2, for instance. The processing of this signal can be accomplished with the three timeframe canonical filters (short, medium, and long) for direction 2. Adding additional sound events (which may also be from additional sound sources) from this same direction utilizes few additional resources. For instance, adding a hundred more sound events might double the processing resources rather than causing an exponential increase as would be experienced with previous techniques.
[0127] An example implementation of sound rendering utilizing parametric directional propagation concepts is provided below, with reference to FIG. 11.
[0128] Runtime signal processing. In some cases, per-emitter (e.g., source) processing can be determined by dynamically decoded values for the parameters (e.g., perceptual parameter fields described above relative to Stage Two) based on runtime source and listener location(s). Although the parameters can be computed on bandlimited simulations, rendering can apply them for the full audible range in some cases, thus implicitly performing frequency extrapolation.
[0129] Initial sound. Starting at the top left of FIG. 11, the mono source signal can be sent to a variable delay line to apply the initial arrival delay, .tau..sub.0. This can also naturally capture environmental Doppler shift effects based on the (potentially) shortest path through the environment. Next, a gain can be applied driven by the initial loudness, L (as 10.sup.L/20) and the resulting signal can be sent for rendering at the primary arrival direction, s.sub.0, shown on the right side of FIG. 11 (see initial sound directions 1112).
[0130] Directional canonical filters. As discussed above, to avoid the cost of per-source convolution, canonical filters can be used to incorporate directionality for sound reflections. In some cases, for (potentially) all combinations of the world axial directions S.sub.J and possible RT60 decay times {T.sub.l}={0.5 s, 1.5 s, 3 s}, a mono canonical filter can be built as a collection of delta peaks whose amplitude can decay exponentially, mixed with Gaussian white noise that can increase quadratically with time. The peak delays can be matched across all {S.sub.J} to allow coloration-free interpolation and, as discussed shortly, ensure summing localization, for example. The same pseudo-random signal can be used across {T.sub.l} with S.sub.J held fixed. However, independent noise signals can be used across directions {S.sub.J} to achieve inter-aural decorrelation, which can aid in natural, enveloping reverberation.
[0131] For each direction S.sub.J, the output across filters for various decay times {T.sub.l} can be summed and then rendered as arriving from world direction S.sub.J. This can be different from multi-channel surround encodings where the canonical directions can be fixed in the listener’s frame of reference rather than in the world. Because canonical filters can share time delays for peaks, interpolating between them across {S.sub.J} can result in summing localization, which can create the perception of reverberation arriving from an intermediate direction. This can exploit summing localization in the same way as speaker panning, discussed above.
[0132] Reflections and reverberation. The output of the onset delay line can be fed into a reflection delay line that can render the variable delay .tau..sub.1-.tau..sub.0, thus realizing the net reflection delay of .tau..sub.1 on the input signal. The output can then be scaled by the gains {10.sup.R.sup.J.sup./20} to render the directional amplitude distribution. To incorporate the decay time T, three weights can be computed corresponding to canonical decay times {T.sub.I} which can further multiply the directional gains. The results can be summed into the inputs of the 18 canonical filters (6 directions x 3 decay times). To reduce the cost of scaling and summing into 18 filter inputs, in some cases only 12 of these may be nonzero, which can correspond to the two decay times in {T.sub.I} that bracket the actual decay time T decoded. (Note that implementations employing different numbers of directions and/or decay times are contemplated).
[0133] Spatialization. Directional rendering 1108 (depicted in the right portion of FIG. 11) can be device dependent and the present concepts can be agnostic to its details. The impression can be formed that an input mono signal arrives from its associated input world direction, producing multiple signals for playback on output hardware of a user. Recall that directions can arise from the per-emitter primary arrival direction, s.sub.0, and/or from the fixed canonical directions, S.sub.J. These incoming world directions, denoted s.sub.w, can be first transformed into the listener’s reference frame, s.sub.l=R.sup.-1(s.sub.w).
[0134] In some cases, the results binaurally render using generic HRTFs for headphones. Nearest-neighbor look up can be performed in the HRTF dataset to the direction s.sub.l, and can then convolve (using partitioned, frequency-domain convolution) the input signal with the per-ear HRTFs to produce a binaural output buffer at each audio tick. To avoid popping artifacts, the audio buffer of the input signal can be cross-faded with complementary sigmoid windows and fed to HRTFs corresponding to s.sub.l at the previous and current audio tick, for example. Other spatialization approaches can easily be substituted. For example, instead of HRTFs, panning weights can be computed given s.sub.l to produce multi-channel signals for speaker playback in a stereo, 5.1 or 7.1 surround, and/or with-elevation setups.
Example System
[0135] FIG. 12 shows a system 1200 that can accomplish parametric directional propagation concepts. For purposes of explanation, system 1200 can include one or more devices 1202. The device may interact with and/or include controllers 1204 (e.g., input devices), speakers 1205, displays 1206, and/or sensors 1207. The sensors can be manifest as various 2D, 3D, and/or microelectromechanical systems (MEMS) devices. The devices 1202, controllers 1204, speakers 1205, displays 1206, and/or sensors 1207 can communicate via one or more networks (represented by lightning bolts 1208).
[0136] In the illustrated example, example device 1202(1) is manifest as a server device, example device 1202(2) is manifest as a gaming console device, example device 1202(3) is manifest as a speaker set, example device 1202(4) is manifest as a notebook computer, example device 1202(5) is manifest as headphones, and example device 1202(6) is manifest as a virtual reality head-mounted display (HMD) device. While specific device examples are illustrated for purposes of explanation, devices can be manifest in any of a myriad of ever-evolving or yet to be developed types of devices.
[0137] In one configuration, device 1202(2) and device 1202(3) can be proximate to one another, such as in a home video game type scenario. In other configurations, devices 1202 can be remote. For example, device 1202(1) can be in a server farm and can receive and/or transmit data related to parametric directional propagation concepts.
[0138] FIG. 12 shows two device configurations 1210 that can be employed by devices 1202. Individual devices 1202 can employ either of configurations 1210(1) or 1210(2), or an alternate configuration. (Due to space constraints on the drawing page, one instance of each device configuration is illustrated rather than illustrating the device configurations relative to each device 1202.) Briefly, device configuration 1210(1) represents an operating system (OS) centric configuration. Device configuration 1210(2) represents a system on a chip (SOC) configuration. Device configuration 1210(1) is organized into one or more application(s) 1212, operating system 1214, and hardware 1216. Device configuration 1210(2) is organized into shared resources 1218, dedicated resources 1220, and an interface 1222 there between.
[0139] In either configuration 1210, the device can include storage/memory 1224, a processor 1226, and/or a parametric directional propagation (PDP) component 1228. In some cases, the PDP component 1228 can be similar to the parametric directional propagation component 602 introduced above relative to FIG. 6. The PDP component 1228 can be configured to perform the implementations described above and below.
[0140] In some configurations, each of devices 1202 can have an instance of the PDP component 1228. However, the functionalities that can be performed by PDP component 1228 may be the same or they may be different from one another. In some cases, each device’s PDP component 1228 can be robust and provide all of the functionality described above and below (e.g., a device-centric implementation). In other cases, some devices can employ a less robust instance of the PDP component 1228 that relies on some functionality to be performed remotely. For instance, the PDP component 1228 on device 1202(1) can perform parametric directional propagation concepts related to Stages One and Two, described above (FIG. 6) for a given environment, such as a video game. In this instance, the PDP component 1228 on device 1202(2) can communicate with device 1202(1) to receive perceptual parameter fields 618 (FIG. 6). The PDP component 1228 on device 1202(2) can utilize the perceptual parameter fields with sound event inputs to produce rendered sound 606 (FIG. 6), which can be played by speakers 1205(1) and 1205(2) for the user.
[0141] In the example of device 1202(6), the sensors 1207 can provide information about the orientation of a user of the device (e.g., the user’s head and/or eyes relative to visual content presented on the display 1206(2)). In device 1202(6), a visual representation 1230 (e.g., visual content, graphical use interface) can be presented on display 1206(2). In some cases, the visual representation can be based at least in part on the information about the orientation of the user provided by the sensors. Also, the PDP component 1228 on device 1202(6) can receive perceptual parameter fields from device 1202(1). In this case, the PDP component 1228(6) can produce rendered sound that has accurate directionality in accordance with the representation. Stated another way, stereoscopic sound can be rendered through the speakers 1205(5) and 1205(6) in proper orientation to a visual scene or environment, to provide convincing sound to enhance the user experience.
[0142] In still another case, Stage One and Two described above can be performed relative to a virtual/augmented reality space (e.g., virtual environment), such as a video game. The output of these stages (e.g., perceptual parameter fields (618 of FIG. 6)) can be added to the video game as a plugin that also contains code for Stage Three (FIG. 11). At run time, when a sound event occurs, the plugin can apply the perceptual parameter fields to the sound event to compute the corresponding rendered sound for the sound event.
[0143] The term “device,” “computer,” or “computing device” as used herein can mean any type of device that has some amount of processing capability and/or storage capability. Processing capability can be provided by one or more processors that can execute data in the form of computer-readable instructions to provide a functionality. Data, such as computer-readable instructions and/or user-related data, can be stored on storage, such as storage that can be internal or external to the device. The storage can include any one or more of volatile or non-volatile memory, hard drives, flash storage devices, and/or optical storage devices (e.g., CDs, DVDs etc.), remote storage (e.g., cloud-based storage), among others. As used herein, the term “computer-readable media” can include signals. In contrast, the term “computer-readable storage media” excludes signals. Computer-readable storage media includes “computer-readable storage devices.” Examples of computer-readable storage devices include volatile storage media, such as RAM, and non-volatile storage media, such as hard drives, optical discs, and flash memory, among others.
[0144] As mentioned above, device configuration 1210(2) can be thought of as a system on a chip (SOC) type design. In such a case, functionality provided by the device can be integrated on a single SOC or multiple coupled SOCs. One or more processors 1226 can be configured to coordinate with shared resources 1218, such as storage/memory 1224, etc., and/or one or more dedicated resources 1220, such as hardware blocks configured to perform certain specific functionality. Thus, the term “processor” as used herein can also refer to central processing units (CPUs), graphical processing units (GPUs), field programmable gate arrays (FPGAs), controllers, microcontrollers, processor cores, or other types of processing devices.
[0145] Generally, any of the functions described herein can be implemented using software, firmware, hardware (e.g., fixed-logic circuitry), or a combination of these implementations. The term “component” as used herein generally represents software, firmware, hardware, whole devices or networks, or a combination thereof. In the case of a software implementation, for instance, these may represent program code that performs specified tasks when executed on a processor (e.g., CPU or CPUs). The program code can be stored in one or more computer-readable memory devices, such as computer-readable storage media. The features and techniques of the component are platform-independent, meaning that they may be implemented on a variety of commercial computing platforms having a variety of processing configurations.
Example Methods
[0146] Detailed example implementations of parametric directional propagation concepts have been provided above. The example methods provided in this section are merely intended to summarize the present parametric directional propagation concepts.
[0147] FIGS. 13-16 show example parametric directional propagation methods 1300-1600.
[0148] As shown in FIG. 13, at block 1302, method 1300 can receive virtual reality space data corresponding to a virtual reality space. In some cases, the virtual reality space data can include a geometry of the virtual reality space. For instance, the virtual reality space data can describe structures, such as surface(s) and/or portal(s). The virtual reality space data can also include additional information related to the geometry, such as surface texture, material, thickness, etc.
[0149] At block 1304, method 1300 can use the virtual reality space data to generate directional impulse responses for the virtual reality space. In some cases, method 1300 can generate the directional impulse responses by simulating initial sounds emanating from multiple moving sound sources and/or arriving at multiple moving listeners. Method 1300 can also generate the directional impulse responses by simulating sound reflections in the virtual reality space. In some cases, the directional impulse responses can account for the geometry of the virtual reality space.
[0150] As shown in FIG. 14, at block 1402, method 1400 can receive directional impulse responses corresponding to a virtual reality space. The directional impulse responses can correspond to multiple sound source locations and/or multiple listener locations in the virtual reality space.
[0151] At block 1404, method 1400 can compress the directional impulse responses using parameterized encoding. In some case, the compression can generate perceptual parameter fields.
[0152] At block 1406, method 1400 can store the perceptual parameter fields. For instance, method 1400 can store the perceptual parameter fields on storage of a parametric directional propagation system.
[0153] As shown in FIG. 15, at block 1502, method 1500 can receive sound event input. The sound event input can include sound source data related to a sound source and listener data related to a listener in a virtual reality space.
[0154] At block 1504, method 1500 can receive perceptual parameter fields corresponding to the virtual reality space.
[0155] At block 1506, method 1500 can use the sound event input and the perceptual parameter fields to render an initial sound at an initial sound direction. Method 1500 can also use the sound event input and the perceptual parameter fields to render sound reflections at respective sound reflection directions.
[0156] As shown in FIG. 16, at block 1602, method 1600 can generate a visual representation of a virtual reality space.
[0157] At block 1604, method 1600 can receive sound event input. In some cases, the sound event input can include a sound source location and/or a listener location in the virtual reality space.
[0158] At block 1606, method 1600 can access perceptual parameter fields associated with the virtual reality space.
[0159] At block 1608, method 1600 can produce rendered sound based at least in part on the perceptual parameter fields. In some cases, the rendered sound can be directionally accurate for the listener location and/or a geometry of the virtual reality space.
[0160] The described methods can be performed by the systems and/or devices described above relative to FIGS. 6 and/or 12, and/or by other devices and/or systems. The order in which the methods are described is not intended to be construed as a limitation, and any number of the described acts can be combined in any order to implement the methods, or an alternate method(s). Furthermore, the methods can be implemented in any suitable hardware, software, firmware, or combination thereof, such that a device can implement the methods. In one case, the method or methods are stored on computer-readable storage media as a set of instructions such that execution by a computing device causes the computing device to perform the method(s).
Additional Examples
[0161] Various examples are described above. Additional examples are described below. One example includes a system comprising a processor and storage, storing computer-readable instructions. When executed by the processor, the computer-readable instructions cause the processor to receive virtual reality space data corresponding to a virtual reality space, the virtual reality space data including a geometry of the virtual reality space. Using the virtual reality space data, the processor generates directional impulse responses for the virtual reality space by simulating initial sound wavefronts and sound reflection wavefronts emanating from multiple moving sound sources and arriving at multiple moving listeners, the directional impulse responses accounting for the geometry of the virtual reality space.
[0162] Another example can include any of the above and/or below examples where the simulating comprises a precomputed wave technique.
[0163] Another example can include any of the above and/or below examples where the simulating comprises using acoustic flux density to construct the directional impulse responses.
[0164] Another example can include any of the above and/or below examples where the directional impulse responses are nine-dimensional (9D) directional impulse responses.
[0165] Another example can include any of the above and/or below examples where the geometry includes an occluder between at least one sound source location and at least one listener location, and the directional impulse responses account for the occluder.
[0166] Another example includes a system comprising a processor and storage, storing computer-readable instructions. When executed by the processor, the computer-readable instructions cause the processor to receive directional impulse responses corresponding to a virtual reality space, the directional impulse responses corresponding to multiple sound source locations and multiple listener locations in the virtual reality space. The computer-readable instructions further cause the processor to compress the directional impulse responses using parameterized encoding to generate perceptual parameter fields, and store the perceptual parameter fields on the storage.
[0167] Another example can include any of the above and/or below examples where the parameterized encoding uses 9D parameterization that accounts for incoming directionality of the initial sounds at a listener location.
[0168] Another example can include any of the above and/or below examples where the perceptual parameter fields relate to both initial sounds and sound reflections.
[0169] Another example can include any of the above and/or below examples where the perceptual parameter fields account for a reflection delay between the initial sounds and the sound reflections.
[0170] Another example can include any of the above and/or below examples where the perceptual parameter fields account for a decay of the sound reflections over time.
[0171] Another example can include any of the above and/or below examples where an individual directional impulse response corresponds to an individual sound source location and listener location pair in the virtual reality space.
[0172] Another example includes a system comprising a processor and storage, storing computer-readable instructions. When executed by the processor, the computer-readable instructions cause the processor to receive sound event input including sound source data related to a sound source and listener data related to a listener in a virtual reality space. The computer-readable instructions further cause the processor to receive perceptual parameter fields corresponding to the virtual reality space, and using the sound event input and the perceptual parameter fields, render an initial sound at an initial sound direction and sound reflections at respective sound reflection directions.
[0173] Another example can include any of the above and/or below examples where the initial sound direction is an incoming direction of the initial sound at a location of the listener in the virtual reality space.
[0174] Another example can include any of the above and/or below examples where the perceptual parameter fields include the initial sound direction at a location of the listener and the respective sound reflection directions at the location of the listener.
[0175] Another example can include any of the above and/or below examples where the perceptual parameter fields account for an occluder in the virtual reality space between a location of the sound source and the location of the listener.
[0176] Another example can include any of the above and/or below examples where the initial sound is a first initial sound and the computer-readable instructions further cause the processor to render a second initial sound at a different initial sound direction than the first initial sound based at least in part on an occluder between the sound source and the listener in the virtual reality space.
[0177] Another example can include any of the above and/or below examples where the computer-readable instructions further cause the processor to render the initial sound on a per sound event basis.
[0178] Another example can include any of the above and/or below examples where the sound event input corresponds to multiple sound events and wherein the computer-readable instructions further cause the processor to render the sound reflections by aggregating the sound source data from the multiple sound events.
[0179] Another example can include any of the above and/or below examples where the computer-readable instructions further cause the processor to aggregate the sound source data from the multiple sound events using directional canonical filters.
[0180] Another example can include any of the above and/or below examples where the directional canonical filters group the sound source data from the multiple sound events into the respective sound reflection directions.
[0181] Another example can include any of the above and/or below examples where the sound event input corresponds to multiple sound sources and wherein the computer-readable instructions further cause the processor to aggregate the sound source data with additional sound source data related to at least one additional sound source in the virtual reality space using the directional canonical filters to render the sound reflections.
[0182] Another example can include any of the above and/or below examples where the directional canonical filters sum a portion of the sound source data corresponding to a decay time.
[0183] Another example includes a system comprising a processor and storage, storing computer-readable instructions. When executed by the processor, the computer-readable instructions cause the processor to generate a visual representation of a virtual reality space, receive sound event input that includes a sound source location and a listener location in the virtual reality space, access perceptual parameter fields associated with the virtual reality space, and produce rendered sound based at least in part on the perceptual parameter fields such that the rendered sound is directionally accurate for the listener location and a geometry of the virtual reality space.
[0184] Another example can include any of the above and/or below examples where the system is embodied on a gaming console.
[0185] Another example can include any of the above and/or below examples where the rendered sound is directionally accurate for an initial sound direction and a sound reflection direction of the rendered sound.
[0186] Another example can include any of the above and/or below examples where the geometry includes an occluder located between the sound source location and the listener location in the virtual reality space and the rendered sound is directionally accurate with respect to the occluder.
[0187] Another example can include any of the above and/or below examples where the computer-readable instructions further cause the processor to generate the visual representation and produce the rendered sound based at least in part on a voxel map for the virtual reality space.
[0188] Another example can include any of the above and/or below examples where the perceptual parameter fields are generated based at least in part on the voxel map.
[0189] Another example can include any of the above and/or below examples where the voxel map includes an occluder located between the sound source location and the listener location, and the rendered sound accounts for the occluder.
CONCLUSION
[0190] The description relates to parametric directional propagation concepts. In one example, parametric directional propagation can be used to create accurate and immersive sound renderings for video game and/or virtual reality experiences. The sound renderings can include higher fidelity, more realistic sound than available through other sound modeling and/or rendering methods. Furthermore, the sound renderings can be produced within reasonable processing and/or storage budgets.
[0191] Although techniques, methods, devices, systems, etc., pertaining to providing parametric directional propagation are described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed methods, devices, systems, etc.