Типы исходных данных
В этой главе описываются много типов общих данных, использующихся в файлах QuickTime.
Значения кодов языка
Некоторые элементы файла QuickTime могут быть связаны с определенным разговорным языком. Для указания языка, связанного с определенным объектом, формат файла QuickTime использует или коды языка от менеджера по Сценарию Macintosh или коды языка ISO (как указано в 6392/t ISO).
QuickTime хранит коды языка как 16-разрядные поля без знака. Все коды языка Macintosh имеют значение, которое является меньше, чем 0x400 за исключением единственного значения 0x7FFF указание неуказанного языка. Коды языка ISO являются тремя кодами символов и сохранены в 16-разрядном поле кода языка как упакованные массивы, как описано в Кодах Языка ISO. Если обработано как 16-разрядное целое число без знака, код языка ISO всегда имеет значение 0x400 или больше, если код не равен значению 0x7FFF указание Неуказанного кода языка Macintosh.
Если язык указан с помощью кода языка Macintosh, любой связанный текст использует текстовое кодирование Macintosh.
Если язык указан с помощью кода языка ISO, любой связанный текст использует текстовое кодирование Unicode. Когда Unicode используется, текст находится в UTF-8, если это не запускается с метки порядка байтов (BOM, 0xFEFF.), после чего текст находится в UTF-16. И BOM и текст UTF-16 должны быть обратным порядком байтов.
Коды языка Macintosh
Таблица 5-1 перечисляет некоторые коды языка Macintosh, поддерживаемые QuickTime.
Язык |
Значение |
Язык |
Значение |
|---|---|---|---|
Английский язык |
0 |
Грузинский язык |
52 |
Французский язык |
1 |
Молдавский язык |
53 |
Немецкий язык |
2 |
Киргизский язык |
54 |
Итальянский язык |
3 |
Tajiki |
55 |
Нидерландский язык |
4 |
Туркменский язык |
56 |
Шведский язык |
5 |
Монгольский язык |
57 |
Испанский язык |
6 |
MongolianCyr |
58 |
Датский язык |
7 |
Пушту |
59 |
Португальский язык |
8 |
Курдский язык |
60 |
Норвежский язык |
9 |
Кашмирец |
61 |
Иврит |
10 |
Sindhi |
62 |
Японский язык |
11 |
Тибетский язык |
63 |
Арабский язык |
12 |
Непальский язык |
64 |
Финский язык |
13 |
Санскрит |
65 |
Греческий язык |
14 |
Язык маратхи |
66 |
Исландский язык |
15 |
Бенгальский язык |
67 |
Мальтийский язык |
16 |
Ассамский язык |
68 |
Турецкий язык |
17 |
Gujarati |
69 |
Хорватский язык |
18 |
Язык панджаби |
70 |
Традиционные китайцы |
19 |
Язык ория |
71 |
Урду |
20 |
Малайялам |
72 |
Хинди |
21 |
Каннада |
73 |
Тайский язык |
22 |
Тамильский язык |
74 |
Корейский язык |
23 |
Язык телугу |
75 |
Литовский язык |
24 |
Сингальский |
76 |
Польский язык |
25 |
Бирманский язык |
77 |
Венгерский язык |
26 |
Кхмерский язык |
78 |
Эстонский язык |
27 |
Лаосский язык |
79 |
Латышский |
28 |
Вьетнамский язык |
80 |
Латышский язык |
28 |
Индонезийский язык |
81 |
Saami |
29 |
Тагальский язык |
82 |
Сами |
29 |
MalayRoman |
83 |
Фарерский язык |
30 |
MalayArabic |
84 |
Фарси |
31 |
Амхарский язык |
85 |
Русский язык |
32 |
Галла |
87 |
Упрощенный китайский |
33 |
Oromo |
87 |
Фламандский язык |
34 |
Язык сомали |
88 |
Ирландский язык |
35 |
Суахили |
89 |
Албанский язык |
36 |
Kinyarwanda |
90 |
Румынский язык |
37 |
Rundi |
91 |
Чешский язык |
38 |
Nyanja |
92 |
Словацкий язык |
39 |
Малагасийский язык |
93 |
Словенский язык |
40 |
Эсперанто |
94 |
Идиш |
41 |
Валлийский язык |
128 |
Сербский язык |
42 |
Баскский язык |
129 |
Македонский язык |
43 |
Каталанский язык |
130 |
Болгарский язык |
44 |
Латынь |
131 |
Украинский язык |
45 |
Язык кечуа |
132 |
Белорусский язык |
46 |
Гуарани |
133 |
Узбекский язык |
47 |
Язык аймара |
134 |
Казах |
48 |
Татарин |
135 |
Азербайджанский язык |
49 |
Уйгурский язык |
136 |
AzerbaijanAr |
50 |
Dzongkha |
137 |
Армянский язык |
51 |
JavaneseRom |
138 |
Неуказанный | 32767 |
Коды языка ISO
Поскольку коды языка, указанные 6392/t ISO, являются тремя символами долго, они должны быть упакованы для вписывания в 16-разрядное поле. Алгоритм упаковки должен отобразить каждый из этих трех символов, которые всегда являются нижним регистром, в 5-разрядное целое число и затем связывают эти целые числа в младшие значащие 15 битов 16-разрядного целого числа, оставляя старший значащий набор битов 16-разрядного целого числа для обнуления.
Один алгоритм для выполнения этой упаковки должен обработать каждый символ ISO как 16-разрядное целое число. Вычтите 0x60 из первого символа и умножьтесь 2^10 (0x400), вычтите 0x60 из второго символа и умножьтесь 2^5 (0x20), вычтите 0x60 из третьего символа и добавьте три 16-разрядных значения. Это приведет к единственному 16-разрядному значению с тремя кодами, правильно упакованными в 15 младших значащих битов и старший значащий набор битов для обнуления.
Пример: код языка ISO 'jpn' состоит из трех шестнадцатеричных значений 0x6A, 0x70, 0x6E. Вычитание 0x60 от каждого значения приводит к значениям 0xA, 0x10, 0xE, как показано в Таблице 5-2.
Символ |
Код UTF-8 |
5-разрядное значение |
Смещенное значение |
|---|---|---|---|
j |
0x6A |
0xA (01010) |
0x2800 (01010..........) |
p |
0x70 |
0x10 (10000) |
0x200 (..... 10000.....) |
n |
0x6E |
0xE (01110) |
0xE (.......... 01110) |
Первое значение смещается, 10 битов налево (умноженный на 0x400) и второе значение смещаются 5 битов налево (умноженный на 0x20). Это приводит к значениям 0x2800, 0x200, 0xE. Когда добавлено, это приводит к 16-разрядному упакованному значению кода языка 0x2A0E.
Календарная дата и временные стоимости
Фильмы в формате QuickTime хранят информацию даты и времени в формате даты Macintosh: 32-разрядное значение, указывающее число секунд, передавших с полуночи 1 января 1904.
Это значение не указывает часовой пояс. Установившаяся практика должна использовать местное время для часового пояса, где сгенерировано значение.
Строго рекомендуется, чтобы вся календарная дата и временные стоимости были сохранены с помощью времени UTC, так, чтобы все файлы имели время и дату относительно того же часового пояса.
Матрицы
Файлы QuickTime используют матрицы для описания пространственной информации о многих объектах, таких как дорожки в фильме.
Матрица преобразования определяет, как отобразить точки от одного координатного пространства в другое координатное пространство. Путем изменения содержания матрицы преобразования можно выполнить несколько стандартных операций графического дисплея, включая перевод, вращение и масштабирование. Матрица, используемая для выполнения двумерных трансформаций, описана математически 3 3 матрица.
Все значения в матрице являются 32-разрядными числами фиксированной точки, разделенными как 16,16, за исключением {u, v, w} столбец, содержащий 32-разрядные числа фиксированной точки, разделенные как 2,30. Рисунок 5-1 и рисунок 5-2 изображают, как QuickTime использует матрицы для преобразования отображаемых объектов.


Графические режимы
Файлы QuickTime используют графические режимы, чтобы описать, как один видео или графический уровень должен быть объединен с уровнями ниже его. Графические режимы также известны как режимы передачи. Некоторые графические режимы требуют, чтобы цвет был указан для определенных операций, таких как смешивание для определения уровня смешения. QuickTime использует графические режимы, определенные QuickDraw Apple.
Наиболее распространенные графические режимы и ditherCopy, которые просто указывают, что изображение не должно смешиваться с изображением позади него, но перезаписывать его. QuickTime также определяет несколько дополнительных графических режимов.
Таблица 5-3 перечисляет дополнительные графические режимы, поддерживаемые QuickTime.
Режим |
Использование opcolor |
Код |
Описание |
|---|---|---|---|
0x0 |
Скопируйте исходное изображение по месту назначения. |
||
0x40 |
Размойте изображение (в случае необходимости), иначе сделайте копию. |
||
да |
0x20 |
Целевым пикселем замен со смешением источника и целевых пиксельных цветов, с пропорцией для каждого канала управляет тот канал в opcolor. |
|
да |
0x24 |
Если исходный пиксель не равен opcolor, заменяет целевой пиксель исходным пикселем. |
|
0x100 |
Заменяет целевой пиксель смешением источника и целевые пиксели, с пропорцией, которой управляет альфа-канал. |
||
0x101 |
Предварительно умноженный с белым означает, что компоненты цвета каждого пикселя были уже смешаны с белым пикселем, на основе их значения альфа-канала. Эффективно, это означает, что изображение было уже объединено с белым фоном. Во-первых, удалите белого из каждого пикселя и затем смешайте изображение с фактическими фоновыми пикселями. |
||
0x102 |
Предварительно умноженный с черным цветом совпадает с предварительно умноженный с белым, кроме цвета фона, с которым было смешано изображение, является черным вместо белого. |
||
да |
0x104 |
Подобный прямой альфе, но альфа-значению, используемому для каждого канала, комбинация альфа-канала и того канала в opcolor. |
|
0x103 |
(Только дорожки), дорожка нарисована вне экрана, и затем составлена на экран с помощью копии размытия |
Цвета RGB
Много атомов в формате файла QuickTime содержат значения цвета RGB. Они обычно сохранены как три последовательных 16-разрядных целых числа без знака в следующем порядке: красный, зеленый, синий.
Баланс
Значения баланса представлены как 16-разрядные числа фиксированной точки, колеблющиеся от-1.0 до +1.0. Старший разряд 8 битов содержит целочисленную часть значения; младший разряд 8 битов содержит дробную часть. Отрицательные величины взвешивают баланс к левому динамику; положительные значения подчеркивают правильный канал. Установка баланса к 0 соответствует нейтральной установке.