Skip to main content

HDMI(draft version)

Overview
 is a compact audio/video interface for transferringuncompressed video data and compressed or uncompressed digital audio data from an HDMI-compliant source device
http://en.wikipedia.org/wiki/HDMI

HDMI driver on linux
http://lxr.free-electrons.com/source/drivers/video/hdmi.c

HDMI issue, software design
http://elinux.org/images/8/8e/HDMI_ELC_mythripk.pdf

Extended display identification data (EDID) is a data structure provided by a digital display to describe its capabilities to a video source.


Video loopback
Video playback

NguyĂȘn táșŻc hoáșĄt động cá»§a HDMI:
Gồm 3 pháș§n:
- CEC: Tháș±ng nĂ y cho phĂ©p truyền thĂŽng tin giữa Source Device (bộ phĂĄt hdmi) vĂ  Sink Device (thiáșżt bị hiển thị). ThĂŽng tin nĂ y lĂ  những lệnh cho phĂ©p điều khiển từ xa qua láșĄi giữa 2 tháș±ng.
VĂ­ dỄ: Khi nhĂ©t cĂĄi đĩa vĂ o cĂĄi đáș§u blue-ray, thĂŹ cĂĄi mĂ n hĂŹnh káșżt nối qua HDMI với tháș±ng đáș§u blue-ray sáșœ tá»± động báș­t. NgÆ°á»Łc láșĄi, cĂł thể điều khiển tháș±ng đáș§u blue-ray báș±ng cĂĄi điều khiển mĂ n hĂŹnh.

- EDID: 3 đường data, 1 đường clock. TĂ­n hiệu Ä‘Æ°á»Łc truyền đi dưới dáșĄng diff-voltage vĂ  Ä‘Æ°á»Łc chống nhiễu bởi 1 đường GND theo. Video content vĂ  audio Ä‘Æ°á»Łc truyền qua kĂȘnh nĂ y
HPD: đường nĂ y cho phĂ©p tháș±ng devices souce nháș­n biáșżt Ä‘Æ°á»Łc khi nĂ o thĂŹ tháș±ng Sink Device Ä‘Æ°á»Łc cáșŻm vĂ o


2. HDMI Protocol Overview

HDMI offers much more to consumers than traditional analog interfaces because it does more than transfer audio and video signals. The HDMI protocol allows devices to communicate settings, preferred formats, and force actions. The HDMI protocol has three sections:

CEC

The CEC (Consumer Electronics Control) is an independent feature based on a single line that is daisy chained between all of the devices on an HDMI link. The CEC line allows any device that is CEC-enabled to exchange information with any other device(s). CEC can be used to command all of the devices using a single remote control or to automatically change settings on a device when the status of another device changes (for example, if powered on or off). For instance, if a consumer places a disc into a Blu-ray Player and shuts the drawer, the HDTV automatically powers on, sets the correct video input, and turns on the surround-sound receiver. This communication is all done over the CEC line and provides a much better customer experience.

EDID

EDID (Extended Display Identification Data) is a set of data physically stored in a sink device such as an HDTV or DVR. EDID contains information about the sink's supported features and capability. A source device (like a Blu-ray Player) can access that information and adjust to the preferred or supported settings of the sink. For example, a 3D-capable Blu-ray Player would need to read the EDID table of an HDTV to ensure that it supports not only 3D content but also a common 3D structure such as the Blu-ray Player. If no common structure can be identified, then a 2D resolution and frame rate is negotiated. The communication between the source device(s) and the sink device is implemented through the DDC lines (Display Data Channel), which is an I2C bus included in the HDMI cable.

HPD

The HPD (Hot-Plug-Detect) feature is a communication mechanism between a source and a sink device that makes the source device aware that it has been connected/disconnected to/from the sink device. When an HDMI cable is inserted between the two devices, the resulting hot-plug detection instantiates a start-up communication sequence. The EDID information stored in the sink device gets read by the source device though the DDC bus, and the source device typically presents itself on the CEC link and requests basic status information from the sink device such as its power status as well as other devices on the HDMI chain.

TMDS[edit]

Transition Minimized Differential Signaling (TMDS) on HDMI interleaves video, audio and auxiliary data using three different packet types, called the Video Data Period, the Data Island Period and the Control Period.[64]During the Video Data Period, the pixels of an active video line are transmitted.[64] During the Data Island period (which occurs during the horizontal and vertical blanking intervals), audio and auxiliary data are transmitted within a series of packets.[64] The Control Period occurs between Video and Data Island periods.[64]
Both HDMI and DVI use TMDS to send 10-bit characters that are encoded using 8b/10b encoding that differs from the original IBM form for the Video Data Period and 2b/10b encoding for the Control Period. HDMI adds the ability to send audio and auxiliary data using 4b/10b encoding for the Data Island Period.[64] Each Data Island Period is 32 pixels in size and contains a 32-bit Packet Header, which includes 8 bits of BCH ECC parity data for error correction and describes the contents of the packet.[65] Each Packet contains four subpackets, and each subpacket is 64 bits in size, including 8 bits of BCH ECC parity data, allowing for each Packet to carry up to 224 bits of audio data.[66] Each Data Island Period can contain up to 18 Packets.[67] Seven of the 15 Packet types described in the HDMI 1.3a specifications deal with audio data, while the other 8 types deal with auxiliary data.[65] Among these are the General Control Packet and the Gamut Metadata Packet. The General Control Packet carries information on AVMUTE (which mutes the audio during changes that may cause audio noise) and Color Depth (which sends the bit depth of the current video stream and is required fordeep color).[68][69] The Gamut Metadata Packet carries information on the color space being used for the current video stream and is required for xvYCC.[53][70][71]

Video streamming

https://sites.google.com/site/embedded247/npcourse/tim-hieu-ky-thuat-video-streaming
về báșŁn cháș„t, streaming video lĂ  quĂĄ trĂŹnh chia nhỏ file video thĂ nh cĂĄc frame, rồi láș§n lÆ°á»Łt gá»­i từng frame tới một bộ đệm trĂȘn mĂĄy tĂ­nh cá»§a người xem vĂ  hiển thị nội dung frame đó. VĂ  quĂĄ trĂŹnh nĂ y tuĂąn thá»§ cháș·t cháșœ về rĂ ng buộc theo thời gian, nĂłi khĂĄc lĂ  tuĂąn thá»§ cháș·t cháșœ theo giao thức RTSP, RTP vĂ  RTCP

CĂĄc frame nĂ y sau khi giáșŁi mĂŁ, cĂł pháșŁi lĂ  frame áșŁnh ko?

State cá»§a video streaming
http://www.csee.umbc.edu/~pmundur/courses/CMSC691C/lab5-kurose-ross.html

Video streamming với QT
https://sites.google.com/site/embedded247/npcourse/chuong-trinh-qt-streaming-video-tren-kit-Tiny6410


bmp,jpeg đều ko cĂł checksum
jpeg: lossy compress dĂčng thuáș­t toĂĄn DCT (Discrete cosin transform)
Đáș·c điểm cá»§a phĂ©p biáșżn đổi nĂ y lĂ  tĂ­n
hiệu áșŁnh trong miền khĂŽng gian chuyển sang miền táș§n số thĂŹ cĂĄc thĂ nh pháș§n DC vĂ  cĂĄc thĂ nh
pháș§n AC mang háș§u háșżt cĂĄc thĂŽng tin chứa trong áșŁnh gốc. Trong đó, DC lĂ  thĂ nh pháș§n quan
trọng nháș„t mang độchĂłi trung bĂŹnh cá»§a áșŁnh, cĂĄc thĂ nh pháș§n AC chứa cĂĄc thĂŽng tin về chi tiáșżt
cá»§a áșŁnh

Thư viện c đọc áșŁnh Jpeg

libjpeg


libbmp

Thư viện đọc áșŁnh bmp
https://code.google.com/p/libbmp/
how to install
https://code.google.com/p/libbmp/source/browse/trunk/INSTALL?r=2
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.

Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.

2. Type `make' to compile the package.

3. Optionally, type `make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.

4. Type `make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the `make install' phase executed with root
privileges.
Makefile.am is a programmer-defined file and is used by automake to generate the Makefile.infile. The ./configure script typically seen in source tarballs will use the Makefile.in to generate a Makefile.
The ./configure script itself is generated from a programmer-defined file named either configure.ac or configure.in , I prefer .ac (for AutoConf) since it differentiates it from the generated Makefile.in files and that way I can have rules such as make dist-clean which rm -f *.in . Since it is a generated file it is not typically stored in a revision system such as SVN or CVS, rather the .ac file would be.
Read more on GNU Autotools. Read about make and Makefile first, then learn
about automakeautoconflibtool, etc.

http://ospforum.wordpress.com/2009/09/20/2d-graphics-using-c-in-linux-graphics-h-in-linux/
I was searching Internet and found some softwares for developing graphics applications in Linux. that softwares are listed here
  1. GTK+   – Gnome Tool Kit
  2. QT  –  The X toolkit
  3. SVGALIB   [ #include<vgagl.h> ]
  4. libgraph [ #include<graphics.h> ]
GTK and QT are simple and used for high level Graphical User Interface [ GUI ] development. SVGALIB and libgraph is used for 2D graphics in Linux .  the syntax and functions are some what different for beginners  [specially the user from windows ] but most of users familiar with windows graphics.h header file in C and C++ , so we can move for libgraph which is exact one for windows graphics user . libgraph is an implementation of the Turbo C graphics API (graphics.h) on GNU/Linux using SDL [ Simple Direct Media Player ]. The library requires SDL for primitive graphics and SDL. First you need to install the following dependency packages using synaptic package manager in Ubuntu Linux to develop the graphics applications properly.

Test framebuffer
https://github.com/prpplague/fb-test-app.git

Comments

Popular posts from this blog

[STM32] How to configure Timer 1, Channel 3 is PWM 1kHz, duty cycle 20% to control BLDC motor

 To configure Timer1 for a 1 kHz PWM signal with a 20% duty cycle on an STM32H7S3L8 microcontroller, follow these steps: 1. Understand the Timer Parameters PWM Frequency : 1 kHz → Period = 1 ms. Duty Cycle : 20% → ON time = 0.2 ms. The timer’s clock frequency is derived from the APB clock (e.g., TIMCLK). Let’s assume you know the APB clock frequency. The Timer prescaler and auto-reload register (ARR) define the PWM frequency. 2. Compute Timer Parameters Formula: PWM Frequency = Timer Clock (Prescaler + 1) * (ARR + 1) \text{PWM Frequency} = \frac{\text{Timer Clock}}{\text{(Prescaler + 1) * (ARR + 1)}} PWM Frequency = (Prescaler + 1) * (ARR + 1) Timer Clock ​ For 1 kHz PWM: A R R = Timer Clock PWM Frequency ∗ ( Prescaler + 1) − 1 ARR = \frac{\text{Timer Clock}}{\text{PWM Frequency} * (\text{Prescaler + 1)}} - 1 A RR = PWM Frequency ∗ ( Prescaler + 1) Timer Clock ​ −...

[CanadaLife] Example of answers for final test in Smart Service Ontario 2024

If you have failed the final exam in the first attempt. Congratulations, you are not odd. Here, take a look and grab some corrected answers for your next attempt.  Don't waste your money and time for more failure.  Good luck bros. Quick note: remember that, the system will change the bunch of questions after each attempt. Then your next questionnaire will be different compared with the first trial. ========================================== =============FINAL TEST=================== ========================================== TIP: Here is a list of questions you did not answer correctly. *Please note: You will only be able to view this list immediately following your test attempt. ========================================== Alcohol slows down the central nervous system and impacts how a person thinks, acts, and moves. This means alcohol is a: depressant ========================================== Alcohol is metabolized in the body at a set rate. For most people, that rate is: one...

How to use ChatGPT to get your resume shortlisted?

How to use ChatGPT to get your resume shortlisted? Core steps: Chat GPT -> Resume Creator -> LinkedIn(Copy the job description to ChatGPT) -> Add your personal information -> Copy output from ChatGPT to Instaresume.io to make the template -> Goto SkillSyncer to check ATS(Applicant Tracking Software) score, point out the missing keywords. Detail ☑️In my pursuit of job #opportunities, I encountered a familiar challenge - my resume seemingly disappeared into oblivion, yielding no responses despite my diverse skill set and numerous applications. ☑️As I delved into my research, I uncovered the existence of ATS software, the automated gatekeeper of #resumes, which swiftly filtered out those lacking relevant keywords. ☑️The outcome? Not just one #company, but over a dozen organizations recognized the potential in my resume, resulting in multiple shortlists and promising #job prospects! đŸ’»If you want to supercharge your resume and unlock countless opportunities, don't miss o...