Odin P. Morgan
Senior
Joined: 23 Feb 2015 15:37 Posts: 151 Location: OMS
|
Данная тема создаётся для обсуждения теоретической части, а в частности: вероятного формата аудио хранения в XORlib - XOROGG. На повестке дня один старый трюк, который использовался на стерео виниловых пластинках: На одной бороздке: по горизонтали кодировалась сумма сигналов двух каналов, а по вертикали их разность. Резонно предположить, что методами программной обработки, возможно записать в один аудио канал - стерео. Я долго думал о том, каким способом можно было бы закодировать стерео с учётом одного канала. Вот к чему я пришёл, или LSB Stereo (Least Significant Bit - цифровая стеганография в помощь): Заменяются последние значащие биты в первой дорожке (суммы стерео) на биты второй дорожки (разности стерео). Естественно "разность стерео" требует меньше данных для описания, поэтому легко вместится в предназначаемое ей пространство. Такой формат абсолютно спокойно будет воспроизводиться как моно PCM на любом кодеке (т.к. по-сути wav), и как стерео на кодеке LSB Stereo (или XOROGG). Из недостатков стоит отметить всё то-же самое, что и на стерео однодорожечном виниле: стерео каналы "наползают" друг на друга. Реализация в железе, достигается получением так называемого "3d mono" (попытаюсь найти схему, попадалась псевдоквадро, выводился из 3d stereo), за счёт внесения позиционных искажений в звук, с разделением его на два громкоговорителя (наушники/усилители - не суть важно сейчас). Схема довольно-таки простая аналоговая. Сам сигнал начинает декодироваться программно (возникает ощущение моно с реверберацией), и много ресурсов не жрёт. Сама запись помещается в OGG контейнер, дабы не изобретать велосипед.
|