Ширхэг пиксел шижир алт

vonqo
Socraftes
Published in
6 min readDec 30, 2020

Кино театрын дэлгэцээс ухаалаг утасны дэлгэц хооронд бид юуг алддаг вэ?

Энэ асуултад тун энгийнээр “дүрсний чанар” гэж хариулж болно. Мэдээж аудио, дуугаралтыг яаж мартаж болох билээ. Гэхдээ аудиог түр орхиё.

Энэхүү нийтлэлээр аливаа кино театр, контент түгээж буй сувгууд, хууль бус интернет эх сурвалжуудыг сурталчлах, үгүйсгэхийг зориогүй бөгөөд харьцуулалт хийх, жишээ татах шаардлага гарсан болно.

Бид кино театрын дэлгэцээс эхлээд зарын самбар, зочны өрөөний зурагт, компьютерын дэлгэц, ухаалаг утас зэрэг олон янзын өөр өөр хэмжээтэй дэлгэцүүдээр дүрс хүлээн авдаг. Дэлгэц бол эх үүсвэрээс ирж буй дүрсийг гаргах талбар. Харин програмууд эх үүсвэрээс ирж буй дүрслэлийг тухайн дэлгэцэд аль болох тохиромжтой байлгахаар зохицуулдаг. Хүлээгээрэй, тохиромжтой байж чаддаг гэж үү? Хүмүүс ихэнх тохиолдолд ойшоодоггүй боловч эх үүсвэрийн тооцооллоос хамаарч үнэн хэрэгтээ нэлээд ялгаатай байдаг. Жишээ дурдвал:

  • Энгийн програмын интерфейс (Үйлдлийн систем, хэрэглээний програмууд, аппикейшн зэрэг орно)
  • Видео тоглоом, график симуляц (Хүчир график тооцоолол шаардах систем)
  • Кино болон видео контент (Интернетээр дамжих болон файлаар хадгалагдах видео)

Дээрх жишээнээс харахад өрсөлдөөнт видео тоглоом тоглож байх үед график процессороос гарах дүрсийн тоо мөн үүнийг хүлээж авч буй дэлгэцийн давтамж, дүрс дотор байх ширхэг пиксел хожих, хожигдох мөчийг шийдвэрлэх нөлөө үзүүлж болох юм. Гэхдээ бид энэ удаад видео контент тэр дундаа кино дүрсжүүлэлтийн чанар, хадгалалт, дамжуулалтын талаар илүүтэй хөндөнө.

Тэгвэл видеог цахим орчинд хэрхэн дүрсэлдэг вэ?

Видеог цахим хэлбэрээр хадгалахаас өмнө дүрсийг хальсан дээр буулгаж хадгалдаг байсныг бид мэднэ. Аудиог хүртэл хальсан дээр бичээд кассет гэж нэрлэдэг байсан шүү дээ. Харин видео файлыг уншиж, тоглуулах нь дүрс бүрийн өгөгдлийг цувуулж уншдагаараа хальстай төстэй ч дүрсийг боловсруулж харуулах явц нь цуваа зураг үзүүлэхээс нэлээд ялгаатай.

Видео файлыг бий болгох үед тодорхой дүрэм, стандартаар хадгалах бөгөөд үүнийг кодек (codec = compression + decompression) гэнэ. Кодек нь үндсэн хоёр үйлдэл хэрхэн хийгдэхийг тодорхойлно.

  1. Encoding буюу боловсруулж, кодчилон хадгалах. (Файл болгон хадгалах)
  2. Decoding буюу тайлж унших. (Файлыг задлан тоглуулах)

Орчин үед түгээмэл ашиглагддаг кодекууд хэрхэн ажилладгийг товч тайлбарлая.

H.264 AVC — Advanced Video Coding

2019 оны байдлаар видео үйлдвэрлэлийн 91%-д энэхүү кодекийг ашиглаж байна. Видео боловсруулалтын салбарын 30 жилийн хамгийн том ололт ч гэж үзэх хүмүүс бий.

Мэдээллийн технологи, компьютерын ухаан, харилцаа холбооны салбарт мэдээллийн эзлэх зайг хэмнэхийн тулд илүү их тооцооллын нөөц зарцуулах ёстой болдог.

* Тооцооллын нөөц (resource) — Тооцоолол хийхэд шаардлагатай үйлдлийн тоо болон санах ойд эзлэх зай.

Ихэнхдээ дохио боловсруулалт, долгионы хувиргалт, шифрлэлт дээр тулгуурласан алгоритмууд зураг, видео, хөгжмийн эзлэх зайг багасгадаг. Ингэж зайг багасгах үйлдлийг compression буюу шахалт хэмээн нэрлэнэ. Илүү сайн шахах тусам тооцоолол хийх алхмууд улам нарийн төвөгтэй болж, тэр хэрээр тооцооллын өртөг нэмэгддэг. Харин H.264 AVC кодек нь файлын хэмжээнээс гадна тооцооллын өртгийг хамт хэмнэж чадсан маш ухаалаг шийдэл болсон юм.

H.265 HEVC — High Efficiency Video Coding

AVC -с хойш 10 жилийн дараа буюу 2013 онд улам сайжруулан, орчин үеийн технологийн боломжид нийцүүлэхээр HEVC-г хөгжүүлж эхэлжээ. HEVC нь AVC-тэй харьцуулахад файлын хэмжээг 25–50 хувь илүү бууруулах боловч, боловсруулах үйлдэл нь гурав дахин их тооцооллын өртөгтэй. Гэсэн ч энгийн хэрэглээний компьютер, гар утаснууд HEVC кодекийг ажралгүй тоглуулж дөнгөнө.

Container

Харин бидний мэдэх mp4, avi, mov, mkv гэх мэт файлын өргөтгөлүүд нь видео ямар кодек дээр бичигдсэнийг хадгалж, аудио дуугаралт, subtitle тэдгээрийн гаралтын хугацааг синхрончлон нэгтгэж бусад дагалдах мэдээлэл (metadata) -г агуулсан формат юм. Үүнийг container гэдэг.

Эдгээрээс mkv буюу матрёшка (matroska) container нь үнэ төлбөргүй, нээлттэй, ашгийн бус лицензтэй ба HEVC кодекийг дэмжих стандартыг хөгжүүлж, чөлөөтэй түгээх боломжийг олон нийтэд анх олгосон юм.

Видеог цахим орчинд дүрслэхдээ тодорхой кодекын дагуу container-т аудио болон бусад дагалдах мэдээллийн хамт багцалж хадгалдаг бол агуулагдах дүрсийн тухайд …

Секундэд дүрслэх дүрсийн тоо (FPS — Frames per second / Frame rate)

Секундэд урсах хальсны тоо гэж ч бас ойлгож болно. Зарим судлаачид хүний нүд секундэд 255 хүртэлх дүрс (frame) хүлээж авдаг гэж үздэг бол зарим нь нүд болоод тархины хөгжлөөс хамаарч хүн бүр ялгаатай ба ямартай ч 48-с дээш тооны дүрс хүлээж авдаг гэж үздэг байна. Хэдийгээр хүний нүд секундэд хэчнээн дүрс хүлээж авдаг эсэхийг яг таг тогтоогоогүй ч дэлгэц секундэд аль болох олон дүрс гаргаснаар бидний нүд дүрс хүлээж авах агшинд шинэ дүрс хүртэх боломжийг нэмэгдүүлдэг.

Видеоны секундэд дүрслэх дүрсийн тоо тогтмол байдаг бөгөөд үүнийг frame rate / fps гэж нэрлэнэ. Видео контент тэр дундаа киноны хувьд 23–25 fps тэй байдаг. Ховор тохиолдолд 30 хүрсэн байна. Орчин үеийн видео тоглоомууд 60–120 fps үзүүлэлт дунджилж, өрсөлдөөнт төрлийнх нь 200 -аас дээш гарах нь хэвийн үзэгдэл болсон. Тэгвэл яагаад видео тоглоомтой адил 60 болон түүнээс дээш fps агуулсан киног бүтээдэггүй талаар хэд хэдэн шалтгаан байдаг.

  • Дүрс хоорондын шилжилт хэт ойртсоноос болж хэт тунгалаг дүрсүүд ар араасаа цуварч хөдөлгөөний сарнилт (motion blur) -ийг байхгүй болгодог. Хөдөлгөөний сарнилт гэдэг нь хөдөлж буй объектыг фото зураг хүлээн авагч, мэдрэгч (камер, нүд) бүрэн дүрсэлж чадалгүй хөдөлгөөний чиглэлийн дагуу сарнилт үүсэх эффект юм. Бидний бодит амьдрал дээр мэдэрдэг хөдөлгөөний сарнилт кинон дээр байхгүй байгааг тархи анзаарч, бидэнд хөдөлгөөн нэг л буруу эсвэл хиймэл байна гэх тухгүй мэдрэмжийг дамжуулж эхэлдэг. Мэдээж видеог засварлаж хөдөлгөөний сарнилтыг хиймлээр бүтээх боломжтой.
  • Видео тоглоом болон үүнтэй төстэй системүүдийн хувьд тоглох агшинд шууд дүрсийг тооцож бэлдэх ба график процессорын хүчин чадлаас ихээхэн хамаардаг. Харин видео, кино бол урьдчилан бэлдсэн файл бөгөөд файлын хэмжээг хэмнэх мөн кино үйлдвэрлэлийн зардлыг хэмнэх үүднээс ~24 fps дээр киног түгээсээр байна.
  • Бид ч киног 23–25 fps үзсээр дасал болсон учир хэвийн санагддаг.
  • Киног 30–48 fps -тэй үзүүлэх туршилт хийхэд цөөн тооны дотор муухай оргих, толгой эргэх шинж тэмдгүүд илэрч байжээ.

Секундэд дамжуулах битийн тоо (Bitrate)

Хальсаар кино тоглуулах үед хальс урсаж байдаг бол цахим орчинд видеог тоглуулах үед битүүд урсаж байдаг. Энэхүү битийн урсгал нь тухайн видеог бичсэн энкод хэрхэн хадагласнаас хамаарч дүрс (frame) -г зурахад шаардлагатай мэдээллийг агуулсан урсгал байна. Bitrate нь тухайн видео дундажаар секундэд хэчнээн хэмжээний бит зарцуулж байгааг заадаг. Интернетийн хурдыг ч гэсэн bitrate -р хэмждэг шүү дээ. Дээр дурдсанчлан AVC кодекийг видео боловсруулалтын салбарын 30 жилийн хамгийн том ололт гэж үнэлдэг нэгэн том шалтгаан нь өмнөх кодекуудаас хамаагүй бага bitrate-ээр маш сайн дүрс гаргаж байсан юм. Харин HEVC нь AVC -с ойролцоогоор хоёр дахин бага bitrate ашиглан адилхан үр дүн гаргана. Bitrate хангалттай байх үед видеоны хэмжээ (resolution) -с үл хамаарч пикселүүдийн нарийвчилж чадах өнгөний хэмжээ, тэдгээрийн шилжилтийн оновчлол өндөр байна.

Bitrate хэт бага байх үед пикселүүд дээр өнгөний нарийвчлал алдагдаж байгаа нь илт анзаарагдана.

Even Tide — Cosmic дууны дүрсжүүлэлтийг AVC кодекоор ялгаатай bitrate үүдээр энкод хийж харьцуулья

// Энкод хийж буй комманд
ffmpeg -r 24 -f image2 -s 1920x1080 -i cosmis_%05d.png -vcodec libx264 -b [bitrate] -minrate [bitrate] -maxrate [bitrate] -bufsize 6M test.mp4

Бидний түгээмэл дүрс хүлээж авдаг сувгууд.

YouTube VP9 гэх өөрсдийн (Google) хөгжүүлсэн кодекийг ашигладаг бол, Netflix AVC болон AV1-г ашиглаж байна. Мөн эдгээр компаниуд encode хийх үед нэмэлт сайжруулалтуудыг хийж өөрсдийн хэрэгцээнд нийцүүлэхийн сацуу хэрэглэгчийн өгөгдөл дамжуулах хурд, байршил зэргээс хамаарч хэмжээ, bitrate-н уян хатан боломжийг олгодог.

Интернетээр видео шууд хүлээн авах үед HEVC ашигладаггүй нь бидний интернет хөтчүүд хараахан гүйцэд дэмжээгүй байгаа ба мөн нөгөө талаас түгээлт хийж буй платформууд видеогоо HEVC уруу хөрвүүлээгүй байгаа юм.

Blu-Ray дискнээс буулгасан 1080p хэмжээтэй, AVC кодектэй, 24mbps bitrate дунджилсан, 120 мин үргэлжлэх кино 165.6 GB зай эзэлнэ.

Үүнийг далай дээрэмчдийн захаар HEVC уруу хөрвүүлж, 1080p эсвэл 720p болгон, 5–10mbps bitrate сонголттойгоор ердөө 7–40GB хэмжээтэй файлууд болгон тарааж байна. HEVC ашигласнаар файлын хэмжээг нэлээдгүй багасгаж, дүрсийн чанарын мэдээллийг илүү бага алдагдалтай хадгалж буй жишээ юм. Эдгээр файлууд нь интернетээр шууд дамжуулж үзэхтэй харьцуулахад нэлээдгүй чанартай дүрс агуулсанд тооцогдоно.

Хэдийгээр HEVC хууль бус хэрэглээнд түгээмэл байгаа боловч ирээдүйд 4k, 8k хэмжээтэй дамжуулалт, түгээлт ихсэх үед HEVC -г зайлшгүй хэрэглэх шаардлагатай болох болов уу.

Видео контент түгээгч платформууд контент бүтээгчийн илгээсэн видеог өөрсдийн аргаар дахин энкод хийдэг. Энэ нь видео контент бүтээгчдийн хувьд шүдний өвчин болох нь олонтаа.

Дээрхи эх хувилбартай харьцуулсан зураг resolution зөрүүгүй болно
Нэг ч дуу авиагүй, чимээ гардаггүй кино байдаг бол нэг ч дүрс, зураглал ашиглаагүй кино гэж байхгүй болов уу. Харин үзэгч киног үзэх үед тухайн кино өөрт олгогдсон дэлгэц, орон зайг ашиглаж, өөрийгөө хэний бүтээл хэрхэн хийгдсэн, юу агуулсан зэргээ харуулна. Зарим киноны хувьд ширхэг пиксел ч шижир алт мэт үнэ цэнэтэй байж болох юм.

Бид өөрсдийн нийтлэлд дурдагдаж буй сэдэв/гарчгийн талаар чөлөөт нэвтэрхий толь Википедиад эх хэлээрээ хувь нэмэр оруулж, нээлттэй мэдээлэл, мэдлэгийг дэмжиж байна. Та ч гэсэн өөрийн хувь нэмрээ оруулаарай.

--

--