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.in file. 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