Pro Logic's Center Channel Extraction, Implementation questions |
Pro Logic's Center Channel Extraction, Implementation questions |
Jul 23 2011, 05:31
Post
#1
|
|
|
Group: Members Posts: 82 Joined: 11-December 06 Member No.: 38563 |
I'm trying to figure out how Pro Logic implements center channel extraction. Looking at how various different types of sine waves combine (a single one into two other ones), I guess I'll need to implement some type of FIR filter. I'm very new to this. It would be nice if this could be done on a sample-by-sample basis.
Any help? |
|
|
|
![]() |
Jul 23 2011, 09:10
Post
#2
|
|
|
Group: Members Posts: 78 Joined: 16-June 11 Member No.: 91562 |
I'm trying to figure out how Pro Logic implements center channel extraction. Looking at how various different types of sine waves combine (a single one into two other ones), I guess I'll need to implement some type of FIR filter. I'm very new to this. It would be nice if this could be done on a sample-by-sample basis. Any help? In soundtracks encoded for (theatrical) Dolby Stereo, there are only two audio channels, but with Center and Surround "matrix encoded" into them. The two channels become Lt and Rt (Left Total, Right Total). The basic matrix is C = Lt+Rt -3dB, Surround = Lt-Rt (with special noise reduction applied, and delayed). A signal identical in phase and level in both Lt and Rt will be decoded as Center only, a signal identical in level but 180 degrees out of phase will be decoded as Surround only. However, the "Logic" part of ProLogic comes from a method of reducing adjacent channel cross-talk. In the basic matrix, there is only about 3dB of separation between any two adjacent channels (left to center, right to surround, etc.) ProLogic is an advanced implementation of the original analog method of "steering" the matrix output to hype separation. In the basic matrix, a L only signal would also appear in C and S. With ProLogic, L only signals are gated out of C and S, and the ProLogic decoder will output only L under those conditions. Same thing for C to L and R. So, the signals that are sent to the left output are signals that appear only in the Lt channel. With Lt driven, you get only L out, C is shut down, as is S. It's done partially by subtracting signals, partially by level dependent dynamic gating, and is quite complex. The gating time constants were chosen to by syllabic in duration. The early implementation of the steering logic used Tate Audio chips designed for enhancing "Quad" (early 4 channel stereo), but with the speaker plan modified. Dolby Stereo decoder cards used in the first cinema decoders had rather poor separation at low levels. It wasn't great, but wasn't a big problem in large theaters. When Dolby Surround came to the home market, separation was improved by ProLogic, though it worked much the same as the Tate chips, it was refine to maintain apparent adjacent channel separation down -30dB or so. Part of ProLogic is the ability to properly decode the surround channel, in an identical manner to theater processors. S is mono in this case. Because the system was developed for optical sound on film, it had to be engineered to deal with certain imperfections in the optical pickup. High frequency phase match between Lt and Rt was impossible, so they did two things to prevent front highs from splashing into the surround. First, surround is limited to 8KHz response. Second, they (Dolby) applied a modified Dolby B-type noise reduction system to that channel. Dolby B and all forms of Dolby NR are two-ended. They must be encoded during record, decoded during play. So, any films with Dolby Stereo (matrix) surround have that type of NR already on the S channel. After the NR comes time delay. This is at least 20ms, and is there to take advantage of the precedence effect (you localize sound as coming from the direction you hear first). Delaying the S channel helps improve apparent separation between S and the front channels. The last bit you should know about he matrix is that there exists a problem in panning sound from C to S. When you try to do this, you pass through a null caused by the matrix. To avoid this, there is a 90 degree phase shift network in the encoder that shifts the phase of the S input signal so that when it appears in Lt and Rt, the signal in Lt is 90 degrees advanced, and the Rt is 90 degrees retarded. The difference is still 180, but signals that now appear in both C and S are now 90 degrees apart and no longer cancel. You can probably see why trying to figure out ProLogic with test tones won't give you much to go on. By the way, the developer of Dolby Stereo is Ioan Allen (still with Dolby), and the engineer that worked out the steering logic is Craig Todd (also still with Dolby). |
|
|
|
Jul 24 2011, 06:07
Post
#3
|
|
|
Group: Members Posts: 82 Joined: 11-December 06 Member No.: 38563 |
I am having difficulty extracting the common signal between TL and TR. I am doing this in C. Can I get a description of how to do this? Pro Logic is just an example.
This post has been edited by wswartzendruber: Jul 24 2011, 06:07 |
|
|
|
wswartzendruber Pro Logic's Center Channel Extraction Jul 23 2011, 05:31
DVDdoug QUOTE I am having difficulty extracting the common... Jul 25 2011, 18:41
dc2bluelight QUOTE (DVDdoug @ Jul 25 2011, 12:41) By c... Jul 27 2011, 09:26
wswartzendruber My goal is to implement a Pro Logic decoder with f... Jul 27 2011, 20:47
DVDdoug There's really no way to "improve" P... Jul 27 2011, 23:06
wswartzendruber QUOTE (DVDdoug @ Jul 27 2011, 18:06) Ther... Jul 28 2011, 02:26
dc2bluelight QUOTE (wswartzendruber @ Jul 27 2011, 20... Jul 28 2011, 06:10
wswartzendruber Wow, I've failed miserably in explaining what ... Jul 28 2011, 04:26
wswartzendruber Since you want an in-depth explanation, you can ha... Jul 28 2011, 07:51
DVDdoug OK... Time to start writing some experimental cod... Jul 28 2011, 18:20
dc2bluelight QUOTE (DVDdoug @ Jul 28 2011, 12:20) OK..... Jul 29 2011, 04:32
wswartzendruber I've got a working Hilbert transformer. It... Jul 31 2011, 04:24
Dynamic Sorry to resurrect a slightly old thread, but I... Aug 5 2011, 11:54
dc2bluelight Dynamic's ideas are interesting, you solve the... Aug 5 2011, 12:55![]() ![]() |
|
Lo-Fi Version | Time is now: 21st May 2013 - 04:11 |