* сокращается пространственная избыточность путем исключения мелких деталей там где при просмотре сюжета это визуально не заметно.
* сокращается незначащая часть данных цветности (по сравнения с информацией яркости, цветовая (хроматическая) информация снижается в двое путем дискретизации)
- Квантование. Повышается информационная плотность результирующего цифрового потока путем выбора оптимального математического кода для его описания (похоже на архивирование)
1) Наиболее популярные MP3, AC3, MIDI, OGG, WAV
Прочие AA AAC AC3 (Dolby Digital) ADX AHX AIFF APE ASF AU[en] (SND) AUD DMF DTS DXD FLAC MIDI MMF (Yamaha SMAF) MOD MP1 MP2 MP3 MP4 MPC Ogg Vorbis Opus RA TTA VOC VOX[en] VQF WAV WMA XM
3) Наиболее популярные MP4, 3GP, AVI, MKV, VOB, MOV
Прочие ASF AVI (Audio Video Interleave) HDrip BIK (BinkVideo) FLV (Flash Video) Matroska (.mkv) MPEG-TS MXF (Material eXchange Format) Ogg (для Tarkin и Theora) QuickTime (.mov, .qt) RealMedia RIFF-AVI Smacker (*.smk) SWF (ShockWave File) VOB (DVD-Video File) WMV AVCHD (.mts) 3G2 3GP2 3GPP AVI_NEO_ DIVX DSM EVO F4V FLIC M2V HDMOV IFO M2P M2T M2TS M4V M1V MP4V MPV MPV2 MPV4 MTS RAM REC RM RMJ RMM RMS RMVB TP TRP MPE TTS VP6 WEBM
2)
- Подготовка или анализ. Просматривается исходный файл и подбирается наиболее оптимальный сжатия
- Сжатие.
* сокращается временная избыточность (кодируется только разностная информация, убираются повторяющиеся куски кадров, компенсация движения).
* сокращается пространственная избыточность путем исключения мелких деталей там где при просмотре сюжета это визуально не заметно.
* сокращается незначащая часть данных цветности (по сравнения с информацией яркости, цветовая (хроматическая) информация снижается в двое путем дискретизации)
- Квантование. Повышается информационная плотность результирующего цифрового потока путем выбора оптимального математического кода для его описания (похоже на архивирование)
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int n, max = 0, index1, min = 0, index2;
cin >> n;
cout << "RANDOM ARRAY:\n";
vector <int> a(n);
for (int i = 0; i < n; i++)
{
a[i] = rand() % 101;
if (a[i] > max) {
max = a[i]; index1 = i;
}
if (a[i] < min || min == 0) {
min = a[i]; index2 = i;
}
cout << a[i] << " ";
}
cout << "\nARRAY:\n";
if (index2 < index1)
{
int x;
x = index2;
index2 = index1;
index1 = x;
}
reverse(a.begin() + index1, a.begin() + index2);
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
return 0;
}