domingo, 29 de enero de 2017

SACD... ¿DSD o PCM? Husmeando en HRAudio.net (aka SA-CD.net)

Una de las discusiones más frecuente en foros audiófilos es la que trata de demostrar la superioridad universal de determinados formatos de grabación y distribución de audio.

Aunque para muchos aficionados esta es una cuestión superada (lo importante no es tanto el formato como el modo en que se ha realizado la toma de sonido, la mezcla y la producción en el estudio), no resulta infrecuente que surjan encendidas y recurrentes discusiones en las que se dan cita partidarios de soportes analógicos, defensores a ultranza de lo digital, adalides de los formatos PCM de alta resolución y, cómo no, abanderados del SACD, ese formato inventado por Sony y Philips a finales del siglo pasado y que, a pesar de su escasa popularidad (poco más de 11.000 discos editados en total a lo largo de 20 años de historia), parece resistirse a morir.

A diferencia del audio codificado en PCM, que emplea un número de bits que típicamente oscila entre 16 y 32 para representar cada muestra de sonido, los discos SACD se sirven de un formato denominado DSD basado en el uso de una modulación digital por densidad de impulsos (PDM). En esencia, se trata de codificar la magnitud de cada una de las muestras de sonido utilizando una señal cuadrada de amplitud máxima constante pero anchura variable, lo que en el ámbito digital, en definitiva, no es otra cosa que un rápido flujo de bits {0,1} colocados en fila india.

Me permitiréis que utilice un fragmento extraído de un artículo ya publicado anteriormente en este blog para profundizar un poquito en esta, en principio, peculiar estrategia de codificación digital.

El formato DSD se caracteriza por emplear una representación basada en muestras de 1 solo bit y una frecuencia de muestreo muy alta, 2,8224 Mhz en el caso de un disco SACD estándar. A esto se le llama también DSD64 porque la frecuencia de muestreo es 64 veces la empleada en un CD adherido al estándar del Libro Rojo (44,1 Khz) o DSDx1 (simplemente DSD). El resultado es por tanto una señal de muy alta frecuencia pero 1 solo bit de resolución.


La codificación DSD presenta una ventaja fundamental con respecto a la PCM. Tanto el proceso de captura de audio (A/D) como el de conversión de digital a analógico (D/A), en el DAC, son mucho más simples, lo que en teoría permite preservar en mayor medida la integridad del fenómeno musical. De hecho, el segundo proceso (D/A) emplea poco más que un filtro paso bajo para reconstruir la señal analógica original. Esto supone una menor distorsión en el proceso de extremo a extremo y permite, en teoría, conservar de mejor modo la naturaleza analógica del audio capturado. El formato ofrece, además, un rango dinámico de unos 120dB (en la banda de 20 Hz a 20 Khz) y una respuesta en frecuencia que se extiende hasta los 100 Khz.

El problema es que la codificación empleada introduce cantidades industriales de ruido, que se empujan, empleando técnicas de conformación, fuera del espectro audible para que no molesten. Este ruido ultrasónico debe ser filtrado en algún punto de la reproducción (reproductor o DAC) para evitar daños en los equipos.

En este gráfico, cortesía de Stereophile, podéis comparar el espectro de un tono de prueba codificado en DSD (arriba) y PCM de 24 bits (abajo). El ruido (la joroba en la línea superior) crece mucho a partir de 20Khz:


Sí, lo habéis leído bien: el ancho de banda del formato DSD es elevado, pero más tarde, en el momento de la reproducción, es necesario aplicar un filtro para eliminar el ruido ultrasónico que lo reduce notablemente, filtro que además debe ser lo suficientemente abrupto para hacer su trabajo rápidamente, es decir, en el ancho de banda que separa la señal audible de la banda a partir de la cual comienza el ruido. Y a mayor pendiente del corte, normalmente mayor distorsión de fase que sufre la señal, distorsión que también afecta al área por debajo de los 20 Khz.

Ironías de la vida, o del formato DSD, debería decir.

Para tratar de paliar el problema anterior, recientemente han surgido codificaciones que elevan aún más la frecuencia de muestreo, hasta los 5,6448 Mhz (DSD128 o DSDx2), 11,2896 Mhz (DSD256 o DSDx4) y 22,5792 Mhz (DSD512 o DSDx8). De este modo el ruido producido por la modulación Delta - Sigma empleada para generar la señal de 1 bit se mueve aún más arriba y por tanto los filtros de reconstrucción pueden comenzar a trabajar en una zona más alejada del espectro audible y forzar una pendiente de atenuación más suave. No existe un estándar de discos físicos SACD de, vamos a denominar, super alta resolución, pero sí hay sellos que ofrecen descargas en DSDx128 y DSDx256.

A partir de esta breve introducción técnica podríamos enfangarnos en un interminable debate acerca de si realmente, como Philips y especialmente Sony nos contaron hace más de 20 años, la codificación DSD es más cercana al fenómeno sonoro (analógico) y por tanto suena mejor (más natural) que las estrategias basadas en PCM multibit más convencionales. Pero este artículo no va de esto, así que pasemos sobre esta cuestión sin mayor comentario admitiendo tentativamente que la codificación DSD sea efectivamente superior a la PCM multibit convencional (que ya es mucho suponer).

El problema son los detalles (últimamente no me puedo quitar esa idea de la cabeza). Y esos detalles están extraordinariamente bien explicados en este artículo técnico de Grimm Audio, en el que se hace un repaso histórico del formato y de una serie de circunstancias que han rodeado su uso en el mundo real:


Resumamos el artículo en 3 ideas:
  • Cuando los SACD comenzaron a gozar de cierta popularidad, los conversores A/D utilizados en los estudios de grabación no operaban  en un formato idéntico al DSD (1 bit / 2,8 Mhz). Por esta razón era necesario procesar digitalmente la señal capturada para recodificarla en el formato estandarizado por Sony y Philips, que no tuvieron margen de maniobra para escoger otro de mayor calidad... simplemente porque las grabaciones no hubieran cabido en el disco físico adoptado por el estándar SACD, que no olvidemos, es un simple DVD.
  • El proceso de mezcla y producción en el estudio no podía realizarse directamente sobre la señal DSD, siendo necesario convertirla a PCM para después transformarla nuevamente a DSD. Aunque con el tiempo han surgido estaciones de procesamiento de audio capaces de operar directamente sobre el flujo DSD, estas capacidades son, incluso en el momento actual, incompletas y distan mucho de lo que se puede hacer en PCM. Por ello, la gran mayoría de SACD, según el artículo, han sido editados realmente en PCM. De hecho, incluso Philips en su momento comenzó a utilizar como formato preferido el PCM a 384 Khz y 24 bits para edición en estudio, formato posteriormente rebautizado como DXD.
  • Por último, los DACs presentes en la inmensa mayoría de reproductores allá por el 1997, incluso los utilizados en los reproductores de SACD, utilizaban internamente una representación sigma - delta de tipo multibit, por lo que necesariamente se producía una recodificación digital previa a la propia conversión D/A. Aunque en estos momentos existen DACs que, supuestamente, disponen de una ruta "pura" para el tratamiento de la señal DSD, en muchos casos incluso los diagramas técnicos resultan lo suficientemente confusos como para que no resulte fácil asegurarlo, en tanto que en otros simplemente se sigue practicando una recodificación de tipo multibit en las entrañas del DAC.
En definitiva, lo que nos cuentan los chicos de Grimm es que la cadena de audio, que Sony y Philips pretendían preservar tan natural y cercana al sonido analógico original...


...se transforma habitualmente, como resultado de la recodificación practicada en algún punto desde la toma de sonido hasta nuestro amplificador, en las etapas de grabación, masterización o reproducción, en algo ya no tan simple y notablemente alejado de la, reconozcámoslo, encomiable idea original:



Pero dejemos de lado lo que pueda pasar en las tripas del DAC de un reproductor y centrémonos no obstante en otro de los aspectos de todo este asunto que el artículo nos hace cuestionar: ¿Tenemos la seguridad de que en los SACD disponibles en el mercado se ha respetado la cadena de producción, manteniendo la señal DSD íntegra, al menos hasta la estampación del policarbonato plástico del disco SACD físico? ¿Cuántos han sido creados de modo que este principio permanezca escrupulosamente inviolado?

De entrada he examinado los libretos que acompañan a la treintena larga de SACD que tengo en casa, cosa que os invito a hacer con los vuestros. De entre ellos, solo 2 contienen alguna mención del proceso de producción:



Así es, ambos han sufrido una conversión a PCM de 96/24 en el proceso de producción.

Intrigado por esta cuestión, me dirigí hace unos días a SA-CD.net. Como algunos probablemente ya sepáis, se trata de una página web de carácter enciclopédico dedicada a la catalogación de todos y cada uno de los discos SACD editados hasta el momento (y algún que otro Blu-ray Audio). En ella podemos encontrar, en forma de fichas específicas para cada disco publicado, información extremadamente relevante: sellos, obras, músicos participantes, fecha de edición, comentarios sobre su calidad e incluso detalles relativos a su grabación y al modo en que ha sido realizada.


Existe además una nueva versión del portal, con exactamente la misma información, pero un aspecto actualizado, más moderno, en HRaudio.net.

Ninguno de los dos sitios web ofrece información de resumen que permita conocer qué porcentaje de discos son realmente DSD y, lógicamente, ir abriendo una por una las fichas de cada uno de ellos no es una opción aceptable.

Por ello, he confeccionado un pequeño script en Python que, en unas pocas horas, es capaz de analizar (parsear, en jerga de informáticos) las más de 11.000 páginas asociadas a cada uno de los trabajos catalogados en SA-CD.net (realmente interroga al nuevo sitio web en HRAudio.net) y generar información de resumen en formato de texto:

C:\Users\pablo\PycharmProjects\ParseoSACD\ParseoSACDnet.py
# Librerías necesarias
from bs4 import BeautifulSoup
import requests
import random
import time

inicio = 1 # 1
fin = 12054 # 12054 a 17/01/17

# URL base de parseo
url_base = 'www.hraudio.net/showmusic.php?title='

# Contadores de tipo de grabación
tgrabacion =    ['PCM','PCM 24/48','PCM 24/96','PCM 24/192','PCM 24/44','PCM 24/88','PCM 24/176',
                'DXD','DSD','Analogue','DESCONOCIDO','NOINFO']
ntipos = len(tgrabacion) - 2
ngrabacion = (ntipos+2)*[0]

# SACD parseados
ndiscos = 0

print()

# Introducir rango de parseo
#inicio = int(input('ID PRIMER disco en la base de datos: '))
#fin = int(input('ID ÚLTIMO disco en la base de datos: '))

print()

# Bucle de parseo
for id in range(inicio, fin+1):
    # URL base para parseo
    url = url_base + str(id)

    # Pausa en el parseo para no agobiar al servidor
    time.sleep(random.randint(1,2))

    # Capturar el hml de la pagina web y crear un objeto Response
    r = requests.get("http://" + url)
    data = r.text
    soup = BeautifulSoup(data, 'lxml')

    # Obtener título de la página, tratar de obtener título del álbum (tras "-" )
    titulo = soup.title.text[soup.title.text.index('-')+2:]

    # Obtener sección con información de la grabación
    grabacion = soup.find(id='recording_text')

    # Tratar de localizar logo SACD
    logoSACD = soup.find(alt='SACD')

    # Detectar si el URL redirige a página de inicio
    if titulo != 'High Resolution Audio':

        # ID contiene disco
        if logoSACD != None:

            # ID corresponde a disco SACD
            ndiscos = ndiscos + 1
            if grabacion != None:

                # Hay sección "Grabación", tomar primera palabra
                info = grabacion.text.split()[0]

                # Determinar si hay más información sobre resolución PCM,
                # aparece en 3er lugar
                if len(grabacion.text.split()) >= 3:
                    info2 = grabacion.text.split()[2]
                    if info2[0:3] in ['16/','24/','32/']:
                        info = info + ' ' + info2

                # Clasificar SACD en categoría
                if info in tgrabacion[0:ntipos]:

                    # Es un tipo conocido
                    i = tgrabacion.index(info)
                    ngrabacion[i] = ngrabacion[i] + 1
                else:
                    # Es un tipo desconocido
                    ngrabacion[ntipos] = ngrabacion[ntipos] + 1
            else:

                # No hay sección "Grabación"
                info ="NOINFO"

                # Conteo
                ngrabacion[ntipos+1] = ngrabacion[ntipos+1] + 1

            print(format(id,'5d'), '\t',format(url,'<41'),'\t', format(info,'<12'), '\t', titulo)
        else:

            # El disco no es SACD
            print(format(id,'5d'), '\t',format(url,'<41'),'\t','No es SACD')
    else:

        # ID vacio
        print(format(id,'5d'), '\t',format(url,'<41'),'\t','No existe')

# Imprimir resultados
print ('\nSACD:',ndiscos,'->')
for i in range(0,ntipos+2):
 print ('\t\t\t',format(tgrabacion[i]+':','<13'),format(ngrabacion[i],'5d'),'['+format(100*ngrabacion[i]/ndiscos,'0.2f')+'%]')

print()


Aquí el script en acción:


Tanto SA-CD.net como HRAudio.net están construidos utilizando HTML no demasiado bien estructurado, lo que dificulta un poquito la recogida de datos. La información relativa a la grabación aparece amontonada (si es que aparece) junto a otros detalles en una determinada sección de la página (ficha) de cada trabajo existente en el repositorio. Aunque el script intenta localizar la información relevante en las tripas del código HTML de la página, no siempre consigue interpretarla al 100%. Por ello, una vez volcada la información obtenida de modo automático en una hoja de cálculo de Google, ha sido necesario un pequeño trabajo adicional con su herramienta de filtros para refinar al máximo los datos cosechados.

Podéis consultar en línea esta hoja de calculo:

Parseo SA-CD.net (a 29/01/17)

Veréis que hay 3 pestañas en el documento:
  • Original parseado: son los datos en bruto recogidos por el script ParseoSACDnet.py. Cada fila representa un disco, cuya ficha podéis consultar en HRAudio.net sin más que hacer clic en el enlace de la columna B.
  • Refinado: Aquí se han eliminado los discos Blu-ray Audio catalogados, se han corregido algunos errores menores de parseo, etc.
  • Resumen: En esta hoja está lo interesante: una tabla dinámica y un gráfico asociado que resumen estadísticamente las características de los SACD analizados.



¿Y qué es lo que averiguamos? Pues que de la mayor parte de los SACD editados, al igual que ocurría con la pequeña muestra constituida por mis propios SACD, no hay información acerca del tipo de grabación (62,71%), lo que personalmente me resulta sospechoso. Después de todo, si la razón que da sentido a la existencia de los SACD es precisamente el uso de una estrategia de codificación superior, ¿por qué el sello discográfico obvia esta información?

Por otro lado, algo más de un 8% de los SACD han sufrido un proceso declarado de conversión a PCM (recordemos que DXD es PCM) en algún punto de su proceso de creación. Llama la atención que en algunos casos incluso a 44/24.

Algo más de un 13,5% se declaran como "analogicos". Y esto ¿qué significa? ¿Que la digitalización se ha realizado a partir de un master original analógico? Pero ¿con un conversor A/D DSD puro o no?  ¿Y cómo se ha realizado la edición en el estudio? No hay forma de saberlo.

Por último, solo en algo más de un 15% de los discos SACD contenidos en HRAudio.net se menciona el escueto término "DSD" en el área destinada a mostrar información acerca del tipo de grabación ¿Quiere decir que todo el proceso se ha mantenido en estos casos en el ámbito de la codificación DSD? Personalmente, no me atrevería a asegurarlo.

Bien, estos son los hechos. A partir de ellos cada cual extraerá sus propias conclusiones.

¿Es el SACD un formato revolucionario? En mi opinión, en absoluto, lo que no me impide reconocer que en una gran cantidad de discos editados en formato SACD (quizás en la mayoría) se ha puesto un enorme cuidado en la grabación y producción, siendo el resultado, desde un punto de vista sonoro, incuestionablemente brillante.

¿Sonarían igual de bien en PCM, incluso de 44/16, o en PCM transcodificado al vuelo a DSD64/128/256 por un reproductor capaz de hacerlo como Foobar, JRiver o HQPlayer? Probablemente... pero esto ya es cosa de cada uno.

No hay comentarios :