Файл NRG — это собственный формат файла образа оптического диска, первоначально созданный Nero AG для утилиты Nero Burning ROM. Он используется для хранения образов дисков. Однако, кроме Nero Burning ROM, эти файлы образов могут использоваться в различных программах. Например, Alcohol 120% или Daemon Tools могут монтировать файлы NRG на виртуальные диски для чтения.
Вопреки распространенному мнению, файлы NRG не являются ISO-образами с расширением .nrg и прикрепленным заголовком. Они могут хранить звуковые дорожки для аудио компакт-дисков, чего не могут сделать образы ISO. Формат NRG Nero является одним из немногих форматов, помимо BIN/CUE, MDF/MDS Alcohol 120% и форматов образов дисков CCD/IMG/SUB CloneCD, которые поддерживают компакт-диски смешанного режима - которые содержат дорожки аудио компакт-диска, а также дорожки данных.
Приведенная ниже спецификация формата файла является неофициальной и поэтому в ней отсутствуют некоторые данные. Также могут быть ошибки.
Формат файла NRG использует вариант формата файла обмена (IFF) и хранит данные в цепочке «фрагментов». Все целочисленные значения хранятся без знака в порядке байтов с обратным порядком байтов . Формат NRG версии 1 хранит значения как 32-битные целые числа. В Nero Burning ROM v5.5 представлен новый формат файлов NRG версии 2 с поддержкой 64-битных целых чисел.
Заголовок
Формат NRG не хранит данные в виде заголовка в начале файла. Вместо этого он прикрепляется в конце файла как нижний колонтитул. Информация об изображении хранится в виде сериализованной цепочки фрагментов IFF . Чтобы получить смещение первого фрагмента, необходимо прочитать нижний колонтитул NRG из последних 8 или 12 байт файла.
Nero footer (Version 1)
Size (bytes)
Type
Value or purpose
4
Chunk ID
"NERO"
4
32-bit
Offset of the first chunk data chain
Nero footer (Version 2)
Size (bytes)
Type
Value or purpose
4
Chunk ID
"NER5"
8
64-bit
Offset of the first chunk data chain
Фрагменты
(CUES) Лист с подсказками
Доступно во всех версиях формата файла NRG.
Фрагмент CUEX представляет собой объединение блоков фиксированного размера, каждый из которых представляет ключевую точку.
Точки индекса 0 присутствуют, даже если они идентичны точкам индекса 1. Точки индекса 0 в звуковых дорожках неверны, если Nero было предложено записать все данные подканала (в этом случае размер сектора составляет 2448 байт). Никакого индекса, кроме 0 или 1, не обнаружено, хотя формат фрагмента позволяет записывать такие ключевые точки; таким образом, количество блоков меток всегда равно 2*(#track + 1): два индекса для каждой дорожки, индекс 0 для начала и индекс 1 для конца.
Version 1
Size (bytes)
Type
Value / Purpose
4
Chunk ID
"CUES"
4
32-bit
Chunk size (bytes)
Version 2
Size (bytes)
Type
Value / Purpose
4
Chunk ID
"CUEX"
4
32bit
Chunk size (bytes)
1
8bit
Mode (values found: 0x01 for audio; 0x21 for non copyright-protected audio; 0x41 for data)
1
8bit
Track number (BCD coded; 0xAA for the lead-out area)
1
8bit
Index number (probably BCD coded)
1
8bit
Padding? (always zero found)
4
32bit
LBA position in sectors (signed integer value)
(DAOI) Информация о DAO
Доступно во всех версиях формата файла NRG.
Фрагменты DAOI хранят информацию, специфичную для сеанса диска, в двух частях. Первая часть содержит данные, специфичные только для сеанса. Вторая часть повторяет конкретную информацию о дорожке (серого цвета) один раз для каждой дорожки. Проанализируйте фрагменты SINF, чтобы получить количество дорожек для определенного сеанса.
Version 1
Size (bytes)
Type
Value / Purpose
4
Chunk ID
"DAOI"
4
32bit
Chunk size (bytes) big endian
4
32bit
Chunk size (bytes) little endian
14
UPC
4
32bit
Toc type
1
8bit
First track
1
8bit
Last track
12
ISRC
4
32bit
Sector size
4
32bit
Mode
4
32bit
Index0 (Pre gap)
4
32bit
Index1 (Start of track)
4
32bit
Index2 (End of track + 1)
Version 2
Size (bytes)
Type
Value / Purpose
4
Chunk ID
"DAOX"
4
32bit
Chunk size (bytes) big endian
4
32bit
Chunk size (bytes) (big endian already encountered; maybe also little endian on some machines)
13
Text
UPC (or NULLs)
1
8-bit
Padding? (always NULL found)
2
16-bit
Toc type (values already found: 0x0000 for audio; 0x0001 for data; 0x2001 for Mode 2/form 1 data)
1
8bit
First track in the session
1
8bit
Last track in the session
12
Text
ISRC (or NULLs)
2
16bit
Sector size in the image file (bytes)
2
16bit
Mode of the data in the image file (values already found: 0x0700 for audio; 0x1000 for audio with sub-channel; 0x0000 for data; 0x0500 for raw data; 0x0f00 for raw data with sub-channel; 0x0300 for Mode 2 Form 1 data; 0x0600 for raw Mode 2/form 1 data; 0x1100 for raw Mode 2/form 1 data with sub-channel)
2
16bit
Unknown (always 0x0001 found)
8
64bit
Index0 (Pre-gap) (bytes)
8
64bit
Index1 (Start of track) (bytes)
8
64bit
End of track + 1 (bytes)
(CDTX) CD-текст
Доступен в формате файла NRG версии 2.
Фрагмент CDTX представляет собой объединение необработанных пакетов CD-текста по 18 байт каждый.
Версия 2
Размер (байты)
Тип
Ценность/Цель
4
ID фрагмента
"CDTX"
4
32бит
Размер фрагмента (байты)
1
8бит
Тип упаковки
1
8бит
Тип упаковки (трек-номер)
1
8бит
Номер упаковки в блоке
1
8бит
Номер блока и т. д.
12
Текст
Текстовые строки, разделенные NULL
2
16бит
CRC
(ETNF) Расширенная информация о треке
Доступно во всех версиях формата файла NRG.
Фрагменты ETNF используются для хранения информации отслеживания для сеансов отслеживания сразу. Данные повторяются один раз для каждой дорожки. Проанализируйте фрагменты SINF, чтобы получить количество дорожек для определенного сеанса.
Version 1
Size (bytes)
Type
Value / Purpose
4
Chunk ID
"ETNF"
4
32bit
Chunk size (bytes)
4
32bit
Track offset in image
4
32bit
Track length (bytes)
4
32bit
Mode
4
32bit
Start lba on disc
4
?
Version 2
Size (bytes)
Type
Value / Purpose
4
Chunk ID
"ETN2"
4
32bit
Chunk size (bytes)
8
64bit
Track offset in image
8
64bit
Track length (bytes)
4
32bit
Mode (values found: 0x7 for audio; 0x0 for data; 0x3 for Mode 2 data)
4
32bit
Start lba on disc (sectors) (the start is after a lead-in of 150 sectors)
4
32bit
Unknown (only zero found)
4
32bit
Track length (sectors)
(SINF) Информация о сеансе
Доступно во всех версиях формата файла NRG.
Фрагменты информации о сеансе следует использовать для быстрого сканирования изображения на наличие сеанса и количества дорожек. Фрагменты SINF всегда перечисляются в последовательном порядке, соответствующем порядку сеансов. Чтобы получить более подробную информацию о конкретном сеансе, необходимо проанализировать соответствующий фрагмент DAOI или ETNF.
Версия 1 и 2
Размер (байты)
Тип
Ценность/Цель
4
ID фрагмента
"SINF"
4
32бит
Размер фрагмента (байты)
4
32бит
# треков в сессии
(MTYP) Тип носителя?
Доступно во всех версиях формата файла NRG.
Этот фрагмент и его использование неизвестны. Значение 1 (обратный порядок байтов) было обнаружено в образах нескольких компакт-дисков (аудио или данные; CD-ROM или CD-R).
Версия 1 и 2
Размер (байты)
Тип
Ценность/Цель
4
ID фрагмента
"MTYP"
4
32бит
Размер фрагмента (байты)
4
?
(DINF) Информация о диске?
Встречается в изображениях TAO в формате файла NRG версии 2. Встречается в образах DAO в версии формата файла NRG только в том случае, если Nero попросили не закрывать диск.
Этот фрагмент и его использование неизвестны.
Версия 2 (и 1?)
Размер (байты)
Тип
Ценность/Цель
4
ID фрагмента
"DINF"
4
32бит
Размер фрагмента (байты)
4
32бит
Неизвестно (найдено 0x1 для незакрытого диска; 0x0 в противном случае)
(TOCT) TOC T?
Встречается в изображениях TAO в формате файла NRG версии 2.
Этот фрагмент и его использование неизвестны.
Версия 2 (и 1?)
Размер (байты)
Тип
Ценность/Цель
4
ID фрагмента
"TOCT"
4
32бит
Размер фрагмента (байты)
2
Неизвестно (всегда найден ноль)
(RELO)
Встречается в изображениях TAO в формате файла NRG версии 2.
Этот фрагмент и его использование неизвестны.
Версия 2 (и 1?)
Размер (байты)
Тип
Ценность/Цель
4
ID фрагмента
"RELO"
4
32бит
Размер фрагмента (байты)
4
Неизвестно (всегда найден ноль)
(END!) Конец цепочки
Доступно во всех версиях формата файла NRG.
Конец фрагмента цепочки — это сигнал о том, что фрагментов для чтения больше нет.