HDMI-CEC to the rescue
When HDMI first appeared a number of challenges needed to be solved, not only technical, but most important, patent licensing. In order to solve this issue, companies started organising themselves into patent pools, which allowed royalties to be paid not individually but in a package which includes all patents deemed necessary to build a specific product. Each company is then awarded a fraction of the overall royalty based on the number and importance of the total number os patents deemed necessary to implement the product. This practice is now fairly common on instances such as H.264 and AAC, done through MPEGLA and Via Licensing, respectively.
On HDMI case Panasonic, Hitachi, Silicon Image, Sony, Philips, Thomson and Toshiba were responsible for setting up the licensing pool, and the included AV management protocol was AV.Link, now rebranded HDMI-CEC, although it continued to be an optional feature. As for the decision on why AV.Link was chosen instead of D2B is not known, but I don’t believe it’s relevant. Philips has a very relevant number of essential patents on HDMI and AV Control, so it made no difference: the royalties would simply come, regardless of the actual implementation.
Having a deeper look at HDMI-CEC, you can clearly see it age. Although on the TMDS side, HDMI 2.0 supports up to 6Gbps, on the HDMI-CEC side it only supports a measly 400 bits per second, and only under optimal conditions. Yes, this is really a simple 90’s protocol. However, this low throughput is not a relevant for it’s intended usage, as it the information it carries it not significantly higher.
However, there is another bidirectional and mandatory data interface on HDMI: an I2C bus (recycled by VESA as DDC – Display Data Channel) at 100Kbps which is required to support both HDCP and E-EDID. On why HDMI choose to have two data buses, whereas the faster one is the mandatory one, is something which completely defies a technical logical explanation. By the way, this bus is also originally licensed to Philips (Semiconductors, now NXP), so royalties may have played a significant role here.
HDMI-CEC working
HDMI-CEC architecture has some strict rules, some of them owing to it’s age:
- There is only one root device, and that device is the TV. This closely follows HDMI architecture, and as in HDMI parlance, it’s called the sink;
- Only 12 devices can be addressed;
- There are only 6 types of defined source devices: Recording Device, Tuner, Audio System, Playback Device and the TV. CEC also defines the Unregistered Device which corresponds to any which function does not fit any of the predefined types or which cannot receive messages. However, it is able to send messages. There is one exception, though, HDMI routers are present on a CEC network, are marked as Unregistered Device, but only react to broadcast messages. All devices present on the CEC network are able to send messages.
- For each type of devices (except, for the Unregistered Device) there a limited number of devices, and this is truly arbitrary (although these number vary with each HDMI version):
- One TV (as defined above), the sink;
- One single Audio System;
- Three Recording Devices;
- Three Playback Devices;
- Four Tuner Devices.