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
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
http://ospforum.wordpress.com/2009/09/20/2d-graphics-using-c-in-linux-graphics-h-in-linux/
Test framebuffer
https://github.com/prpplague/fb-test-app.git
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 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
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 learnabout automake, autoconf, libtool, 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
- GTK+ – Gnome Tool Kit
- QT – The X toolkit
- SVGALIB [ #include<vgagl.h> ]
- 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.
https://github.com/prpplague/fb-test-app.git



Comments
Post a Comment