Update README for component/feature/build type

Added component/feature introduction.
Descriped more information for build type(full feature build and free kernel build) and also related build options.
Combined feature table for these two builds

Change-Id: I06e0ca3da883494a74af4e7ab87745ca6e65424f
diff --git a/README.md b/README.md
index 56a8331..7e9a1e1 100755
--- a/README.md
+++ b/README.md
@@ -11,27 +11,22 @@
 
 The Intel(R) Media Driver for VAAPI is distributed under the MIT license with
 portions covered under the BSD 3-clause "New" or "Revised" License.
-You may obtain a copy of the License at:
-
-https://opensource.org/licenses/MIT
-
-&
-
-https://opensource.org/licenses/BSD-3-Clause
+You may obtain a copy of the License at [MIT](https://opensource.org/licenses/MIT) & [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
 
 ## Prerequisites
 
-For Ubuntu 16.04 and above
+For Ubuntu 16.04+
 
-\# apt install autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx libgl1-mesa-dev
+```
+apt install autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx libgl1-mesa-dev
+```
 
 Equivalents for other distributions should work.
 
 ## Dependencies
 
-Libva - https://github.com/intel/libva
-
-GmmLib - https://github.com/intel/gmmlib (please check https://github.com/intel/media-driver/wiki/Comparability-with-GmmLib)
+* [Libva](https://github.com/intel/libva)
+* [GmmLib](https://github.com/intel/gmmlib)(Please check [comparability with GmmLib](https://github.com/intel/media-driver/wiki/Comparability-with-GmmLib))
 
 ## Building
 
@@ -56,7 +51,7 @@
 ```
 7. 
 ```
-$ make -j8
+$ make -j"$(nproc)"
 ```
 
 ## Install
@@ -77,135 +72,93 @@
 export LIBVA_DRIVER_NAME=iHD
 ```
 
-## Build Modes
-
-This section summarizes key driver build modes which can be used in the different environment requirements:
-
-| Build option | Default value | Dependencies | Comments |
-|-|-|-|-|
-| ENABLE_KERNELS | ON | N/A | Enable/Disable shaders during driver build |
-| ENABLE_NONFREE_KERNELS | ON | ENABLE_KERNELS=ON | Enable/disable close source shaders (kernels) during the build |
-| BUILD_KERNELS | OFF | ENABLE_KERNELS=ON, ENABLE_NONFREE_KERNELS=OFF | If enabled, rebuild open source shaders (kernels) from sources. Requires ENABLE_NONFREE_KERNELS=OFF |
-
-With the above options it is possible to build (table assumes that non-listed options have default values):
-
-| No. | Build option(s) | HW Features | Shaders (Kernels) | Comments |
-|-|-|-|-|-|
-| 1 | ENABLE_KERNELS=ON | Yes | Close source (pre-built) | **Default Build**, full feature driver |
-| 2 | ENABLE_KERNELS=OFF | Yes | None | HW features only, include HW decoder, HW VDEnc Encoder (CQP mode) |
-| 3 | ENABLE_NONFREE_KERNELS=OFF | Yes | Open source (pre-built) | **Open Source Build**, HW features available in prev. mode (ENABLE_KERNELS=ON) and features supported by open source shaders |
-| 4 | ENABLE_NONFREE_KERNELS=OFF BUILD_KERNELS=ON | Yes | Open source | **Open Source Build**, Same as ENABLE_NONFREE_KERNELS=OFF driver, but shaders are rebuilt from sources |
 
 ## Supported Platforms
 
-BDW (Broadwell)
+* BDW (Broadwell)
+* SKL (Skylake)
+* BXT (Broxton) / APL (Apollo Lake)
+* KBL (Kaby Lake)
+* CFL (Coffee Lake)
+* WHL (Whiskey Lake)
+* CML (Comet Lake)
+* ICL (Ice Lake)
 
-SKL (Skylake)
 
-BXT (Broxton) / APL (Apollo Lake)
+## Components and Features
 
-KBL (Kaby Lake)
+Media driver contains three components as below
+* **Video decoding** calls hardware-based decoder([VDBox](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf))  which provides fully-accelerated hardware video decoding to release the graphics engine for other operations.
+* **Video encoding** supports two modes, one calls hardware-based encoder([VDEnc](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf)/[Huc](https://01.org/linuxgraphics/downloads/firmware?langredirect=1)) to provide low power encoding, another one is hardware([PAK](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf))+shader(media kernel+[VME](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol04-configurations.pdf)) based encoding. User could choose the mode through VA-API.
+* **Video processing** supports several popular features by hardware-based video processor([VEBox/SFC](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol09-media_vebox.pdf)) and shader(media kernel) based solution together.
 
-CFL (Coffee Lake)
+Media driver supports two build types as below
+* **Full Feature Build** is default driver build, which supports all feature by hardware accelerator and close source shaders(media kernel binaries). Ubuntu [intel-media-va-driver-non-free](https://packages.ubuntu.com/disco/intel-media-va-driver-non-free) package is generated from this build type.
+* **Free Kernel Build**, enables fully open source shaders(media kernels) and hardware features but the features would be limited. Ubuntu [intel-media-va-driver](https://packages.ubuntu.com/disco/intel-media-va-driver) package is generated from this build type.
 
-WHL (Whiskey Lake)
 
-CML (Comet Lake)
+### Decoding/Encoding Features
 
-ICL (Ice Lake)
+| CODEC | Build Types | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL* |
+|---|---|---|---|---|---|---|---|---|---|
+| AVC | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D/Es</u><br><i>D<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> |
+| MPEG-2 | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> |
+| VC-1 | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> |
+| JPEG | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D</u><br><i>D<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> |
+| VP8 | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> |
+| HEVC 8bit | <u>Full Feature</u><br><i>Free Kernel</i> |  | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/E/Es</u><br><i>D/E<i> |
+| HEVC 8bit 422 | <u>Full Feature</u><br><i>Free Kernel</i> |  |  |  |  |  |  |  | <u>D/Es</u><br><i>D<i> |
+| HEVC 8bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> |  |  |  |  |  |  |  | <u>D/E</u><br><i>D/E<i> |
+| HEVC 10bit | <u>Full Feature</u><br><i>Free Kernel</i> |  |  | <u>D</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/E/Es</u><br><i>D/E<i> |
+| HEVC 10bit 422 | <u>Full Feature</u><br><i>Free Kernel</i> |  |  |  |  |  |  |  | <u>D/Es</u><br><i>D<i> |
+| HEVC 10bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> |  |  |  |  |  |  |  | <u>D/E</u><br><i>D/E<i> |
+| VP9 8bit | <u>Full Feature</u><br><i>Free Kernel</i> |  |  | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/E</u><br><i>D/E<i> |
+| VP9 8bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> |  |  |  |  |  |  |  | <u>D/E</u><br><i>D/E<i> |
+| VP9 10bit | <u>Full Feature</u><br><i>Free Kernel</i> |  |  |  | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/E</u><br><i>D/E<i> |
+| VP9 10bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> |  |  |  |  |  |  |  | <u>D/E</u><br><i>D/E<i> |
 
-## Driver Features
-
-### Features in Default Driver Build
-
-| CODEC | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL* |
-|---|---|---|---|---|---|---|---|---|
-| AVC | D/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es |
-| MPEG-2 | D/Es | D/Es | D | D/Es | D/Es | D/Es | D/Es | D/Es |
-| VC-1 | D | D | D | D | D | D | D | D |
-| JPEG | D | D/E | D/E | D/E | D/E | D/E | D/E | D/E |
-| VP8 | D | D | D | D/Es | D/Es | D/Es | D/Es | D/Es |
-| HEVC 8bit |  | D/Es | D/Es | D/Es | D/Es | D/Es | D/Es | D/E/Es |
-| HEVC 8bit 422 |  |  |  |  |  |  |  | D/Es |
-| HEVC 8bit 444 |  |  |  |  |  |  |  | D/E |
-| HEVC 10bit |  |  | D | D/Es | D/Es | D/Es | D/Es | D/E/Es |
-| HEVC 10bit 422 |  |  |  |  |  |  |  | D/Es |
-| HEVC 10bit 444 |  |  |  |  |  |  |  | D/E |
-| VP9 8bit |  |  | D | D | D | D | D | D/E |
-| VP9 8bit 444 |  |  |  |  |  |  |  | D/E |
-| VP9 10bit |  |  |  | D | D | D | D | D/E |
-| VP9 10bit 444 |  |  |  |  |  |  |  | D/E |
-
-D  - HW Decoding
-
-E  - HW Encoding, Low Power Encoding
-
-Es - HW + Shader Encoding
+* D  - Hardware Decoding
+* E  - Hardware Encoding, Low Power Encoding(VDEnc/Huc)
+* Es - Hardware(PAK) + Shader(media kernel+VME) Encoding
 
 \* ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
 
+For more information, please refer to
+* [Media Features Summary](https://github.com/intel/media-driver/blob/master/docs/media_features.md#media-features-summary)
+    * [Supported Decoding Output Format and Max Resolution](https://github.com/intel/media-driver/blob/master/docs/media_features.md#supported-decoding-output-format-and-max-resolution)
+    * [Supported Encoding Input Format and Max Resolution](https://github.com/intel/media-driver/blob/master/docs/media_features.md#supported-encoding-input-format-and-max-resolution)
 
-| Video Processing | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL |
-|---|---|---|---|---|---|---|---|---|
-| Blending | Y | Y | Y | Y | Y | Y | Y | Y |
-| CSC (Color Space Conversion) | Y | Y | Y | Y | Y | Y | Y | Y |
-| De-interlace | Y | Y | Y | Y | Y | Y | Y | Y |
-| De-noise | Y | Y | Y | Y | Y | Y | Y | Y |
-| Luma Key | Y | Y | Y | Y | Y | Y | Y | Y |
-| Mirroring | Y | Y | Y | Y | Y | Y | Y | Y |
-| ProcAmp (brightness,contrast,hue,saturation) | Y | Y | Y | Y | Y | Y | Y | Y |
-| Rotation | Y | Y | Y | Y | Y | Y | Y | Y |
-| Scaling | Y | Y | Y | Y | Y | Y | Y | Y |
-| Sharpening | Y | Y | Y | Y | Y | Y | Y | Y |
-| STD/E (Skin Tone Detect & Enhancement) | Y | Y | Y | Y | Y | Y | Y | Y |
-| TCC (Total Color Control) | Y | Y | Y | Y | Y | Y | Y | Y |
-| Color fill | Y | Y | Y | Y | Y | Y | Y | Y |
-| Chroma Siting |  | Y | Y | Y | Y | Y | Y | Y |
-| HDR10 Tone Mapping |  |  |  |  |  |  |  | Y |
+### Video Processing Features
 
-For detail feature information, you can access [Media Features](https://github.com/intel/media-driver/blob/master/docs/media_features.md).
+| Features | Build Types | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL |
+|---|---|---|---|---|---|---|---|---|---|
+| Blending | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| CSC<br>(Color Space Conversion) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| De-interlace | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| De-noise | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |
+| Luma Key | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| Mirroring | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| ProcAmp<br>(brightness,contrast,hue,saturation) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| Rotation | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| Scaling | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| Sharpening | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| STD/E<br>(Skin Tone Detect & Enhancement) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |
+| TCC<br>(Total Color Control) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |
+| Color fill | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| Chroma Siting | <u>Full Feature</u><br><i>Free Kernel</i> | &nbsp;<br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
+| HDR10 Tone Mapping | <u>Full Feature</u><br><i>Free Kernel</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |
+
+For more feature information, please refer to [Supported video processing csc/scaling format](https://github.com/intel/media-driver/blob/master/docs/media_features.md#supported-video-processing-cscscaling-format)
 
 
-### Features in Open Source Build
+### Build Options
 
-| CODEC | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL* |
-|---|---|---|---|---|---|---|---|---|
-| AVC | D | D/E | D/E | D/E | D/E | D/E | D/E | D/E |
-| MPEG-2 | D | D | D | D | D | D | D | D |
-| VC-1 |  |  |  |  |  |  |  |  |
-| JPEG | D | D/E | D/E | D/E | D/E | D/E | D/E | D/E |
-| VP8 | D | D | D | D | D | D | D | D |
-| HEVC 8bit |  | D | D | D | D | D | D | D/E |
-| HEVC 8bit 422 |  |  |  |  |  |  |  | D |
-| HEVC 8bit 444 |  |  |  |  |  |  |  | D/E |
-| HEVC 10bit |  |  | D | D | D | D | D | D/E |
-| HEVC 10bit 422 |  |  |  |  |  |  |  | D |
-| HEVC 10bit 444 |  |  |  |  |  |  |  | D/E |
-| VP9 8bit |  |  | D | D | D | D | D | D/E |
-| VP9 8bit 444 |  |  |  |  |  |  |  | D/E |
-| VP9 10bit |  |  |  | D | D | D | D | D/E |
-| VP9 10bit 444 |  |  |  |  |  |  |  | D/E |
+You could follow below build options to enable these two builds.
+* **Full Feature Build**: ENABLE_KERNELS=ON(Default) ENABLE_NONFREE_KERNELS=ON(Default)
+* **Free Kernel Build**: ENABLE_KERNELS=ON ENABLE_NONFREE_KERNELS=OFF
+    * If trying to use pre-built open source kernel binaries, please add BUILD_KERNELS=OFF(Default).
+    * If trying to rebuild open source kernel from source code, please add BUILD_KERNELS=ON.
 
-D  - HW Decoding
-
-E  - HW Encoding, Low Power Encoding
-
-\* ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
-
-
-| Video Processing | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL |
-|---|---|---|---|---|---|---|---|---|
-| Blending |  |  |  |  |  |  |  | Y |
-| CSC (Color Space Conversion) |  |  |  |  |  |  |  | Y |
-| De-interlace |  |  |  |  |  |  |  | Y |
-| Luma Key |  |  |  |  |  |  |  | Y |
-| Mirroring |  |  |  |  |  |  |  | Y |
-| ProcAmp (brightness,contrast,hue,saturation) |  |  |  |  |  |  |  | Y |
-| Rotation |  |  |  |  |  |  |  | Y |
-| Scaling |  |  |  |  |  |  |  | Y |
-| Sharpening |  |  |  |  |  |  |  | Y |
-| Color fill |  |  |  |  |  |  |  | Y |
-| Chroma Siting |  |  |  |  |  |  |  | Y |
 
 
 ## Known Issues and Limitations
@@ -213,9 +166,9 @@
 1. Intel(R) Media Driver for VAAPI is recommended to be built against gcc compiler v6.1
 or later, which officially supported C++11.
 
-2. SKL: Green or other incorrect color will be observed in output frames when using YV12/I420 as input format for csc/scaling/blending/rotation, etc. on Ubuntu 16.04 stock (with kernel 4.10). The issue can be addressed with the kernel patch: WaEnableYV12BugFixInHalfSliceChicken7 [commit 0b71cea29fc29bbd8e9dd9c641fee6bd75f6827](https://cgit.freedesktop.org/drm-tip/commit/?id=0b71cea29fc29bbd8e9dd9c641fee6bd75f68274)
+2. SKL: Green or other incorrect color will be observed in output frames when using YV12/I420 as input format for csc/scaling/blending/rotation, etc. on Ubuntu 16.04 stock (with kernel 4.10). The issue can be addressed with the kernel patch: [WaEnableYV12BugFixInHalfSliceChicken7](https://cgit.freedesktop.org/drm-tip/commit/?id=0b71cea29fc29bbd8e9dd9c641fee6bd75f68274)
 
-3. HuC firmware is needed for AVC low power encoding bitrate control, including CBR, VBR, etc. As of now, HuC firmware support is disabled in Linux kernels by default. Please, refer to i915 kernel mode driver documentation to learn how to enable it. Mind that HuC firmware support presents in the following kernels for the specified platforms:
+3. HuC firmware is needed for AVC/HEVC/VP9 low power encoding bitrate control, including CBR, VBR, etc. As of now, HuC firmware support is disabled in Linux kernels by default. Please, refer to i915 kernel mode driver documentation to learn how to enable it. Mind that HuC firmware support presents in the following kernels for the specified platforms:
    * APL/KBL: starting from kernel 4.11
    * CFL: starting from kernel 4.15
 
diff --git a/docs/media_features.md b/docs/media_features.md
index a647a63..e0a9453 100644
--- a/docs/media_features.md
+++ b/docs/media_features.md
@@ -1,12 +1,10 @@
 # Media Features Summary
 
-## Supported Decoding Format and Resolution
-
-Supported decoding output format and max resolution: 
+## Supported Decoding Output Format and Max Resolution
 
 (2k=2048x2048, 4k=4096x4096, 8k=8192x8192, 16k=16384x16384)
 
-| Codec      | Type     | BDW  | SKL  | BXT/APL | KBL  | CFL  | WHL  | CNL  | ICL            |
+| Codec      | Type     | BDW  | SKL  | BXT/APL | KBL  | CFL  | WHL  | CML  | ICL            |
 |------------|----------|------|------|---------|------|------|------|------|----------------|
 | AVC        |Output    | NV12 | NV12 |  NV12   | NV12 | NV12 | NV12 | NV12 | NV12           |
 |            |Max Res.  | 4k   | 4k   |  4k     | 4k   | 4k   | 4k   | 4k   | 4k             |
@@ -26,21 +24,19 @@
 | VP9  10bit |Output    |      |      |         | P010 | P010 | P010 | P010 | P010/Y410      |
 |            |Max Res.  |      |      |         | 8k   | 8k   | 8k   | 8k   | 8k             |
 
-\* JPEG output format: NV12/411P/422H/422V/444P/BGRP/RGBP/YUY2/ARGB
+* \* JPEG output format: NV12/411P/422H/422V/444P/BGRP/RGBP/YUY2/ARGB
 
 
-## Supported Encoding Format and Resolution
+## Supported Encoding Input Format and Max Resolution
 
-### HW Encoding:
-
-Supported input format and max resoultuion: 
+### Hardware Encoding, Low Power Encoding(VDEnc/Huc)
 
 (4k=4096x4096, 16k=16384x16384)
 
-| Codec      | Type       | BDW  | SKL  | BXT/APL | KBL  | CFL   |  WHL  | CNL  | ICL***         |
+| Codec      | Type       | BDW  | SKL  | BXT/APL | KBL  | CFL   |  WHL  | CML  | ICL***         |
 |------------|------------|------|------|---------|------|-------|-------|------|----------------|
-| AVC        |Input       |      |      |  NV12   | More*| More* | More* |      | More*          |
-|            |Max Res.    |      |      |  4k     | 4k   | 4k    | 4k    |      | 4k             |
+| AVC        |Input       |      | NV12 |  NV12   | More*| More* | More* | More*| More*          |
+|            |Max Res.    |      | 4k   |  4k     | 4k   | 4k    | 4k    | 4k   | 4k             |
 | JPEG       |Input/Output|      |Note**| Note**  |Note**|Note** |Note** |Note**| Note**         |
 |            |Max Res.    |      | 16k  |  16k    | 16k  | 16k   | 16k   | 16k  | 16k            |
 | HEVC 8bit  |Input       |      |      |         |      |       |       |      | NV12/AYUV      |
@@ -52,33 +48,29 @@
 | VP9  10bit |Input       |      |      |         |      |       |       |      | P010/Y410      |
 |            |Max Res.    |      |      |         |      |       |       |      | 8k             |
 
-\* KBL/CFL/ICL AVC encoding supported input formats: NV12/YUY2/YUYV/YVYU/UYVY/AYUV/ARGB
-
-\** JPEG encoding supports input format NV12/YUY2/UYVY/AYUV/ABGR/Y8 and output format YUV400/YUV420/YUV422H_2Y/YUV444/RGB24. 
-
-\*** ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
+* \* KBL/CFL/ICL AVC encoding supported input formats: NV12/YUY2/YUYV/YVYU/UYVY/AYUV/ARGB
+* \** JPEG encoding supports input format NV12/YUY2/UYVY/AYUV/ABGR/Y8 and output format YUV400/YUV420/YUV422H_2Y/YUV444/RGB24. 
+* \*** ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
 
 
-### HW+Shader Encoding:
-
-Supported input format and max resolution: 
+### Hardware(PAK) + Shader(media kernel+VME) Encoding
 
 (2k=2048x2048, 4k=4096x4096, 8k=8192x8192)
 
-| Codec      | Type       | BDW  | SKL  | BXT/APL | KBL  | CFL  |  WHL | CNL  | ICL*           |
+| Codec      | Type       | BDW  | SKL  | BXT/APL | KBL  | CFL  |  WHL | CML  | ICL*           |
 |------------|------------|------|------|---------|------|------|------|------|----------------|
 | AVC        |Input       | NV12 | NV12 |  NV12   | NV12 | NV12 | NV12 | NV12 | NV12           |
 |            |Max Res.    | 4k   | 4k   |  4k     | 4k   | 4k   | 4k   | 4k   | 4k             |
 | MPEG2      |Input       | NV12 | NV12 |         | NV12 | NV12 | NV12 | NV12 | NV12           |
 |            |Max Res.    | 2k   | 2k   |         | 2k   | 2k   | 2k   | 2k   | 2k             |
-| VP8        |Input       |      |      |         |      |      | NV12 | NV12 | NV12           |
-|            |Max Res.    |      |      |         |      |      | 4k   | 4k   | 4k             |
+| VP8        |Input       |      |      |         | NV12 | NV12 | NV12 | NV12 | NV12           |
+|            |Max Res.    |      |      |         | 4k   | 4k   | 4k   | 4k   | 4k             |
 | HEVC 8bit  |Input       |      | NV12 |  NV12   | NV12 | NV12 | NV12 | NV12 | NV12/AYUV      |
 |            |Max Res.    |      | 8k   |  8k     | 8k   | 8k   | 8k   | 8k   | 8k             |
-| HEVC 10bit |Input       |      |      |         |      |      |      | NV12 | P010/Y410      |
-|            |Max Res.    |      |      |         |      |      |      | 8k   | 8k             |
+| HEVC 10bit |Input       |      |      |         |      |      |      |      | P010/Y410      |
+|            |Max Res.    |      |      |         |      |      |      |      | 8k             |
 
-\* ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
+* \* ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
 
 ## Supported Video Processing CSC/Scaling Format
 
@@ -86,7 +78,7 @@
 |-----------------------|--------|------|------|------|------|------|------|------|------|------|
 |      BDW              | Input  |  Y   |  Y   |  Y   |      |  Y   |      |      |      |      |
 |                       | Output |  Y   |  Y   |  Y   |      |  Y   |      |      |      |      |
-|SKL/BXT/APL/KBL/CFL/WHL| Input  |  Y   |  Y   |  Y   |  Y   |  Y   |      |      |      |      |
+|SKL/BXT/KBL/CFL/WHL/CML| Input  |  Y   |  Y   |  Y   |  Y   |  Y   |      |      |      |      |
 |                       | Output |  Y   |  Y   |  Y   |      |  Y   |      |      |      |      |
 |      ICL              | Input  |  Y   |  Y   |  Y   |  Y   |  Y   |  Y   |  Y   |  Y   |  Y   |
 |                       | Output |  Y   |  Y   |  Y   |  Y   |  Y   |      |  Y   |  Y   |  Y   |
\ No newline at end of file